AWSのIAM & STSの基礎知識


ちょっとマニアックですが、AWSのIAMやSTSについてどのようなものかを調べたので、完全俺得メモです。
理解が間違ってそうなところがあればぜひTwitterとかで突っ込んでくださいw


🚌 IAMとは?

IAM とは - AWS Identity and Access Management

IAMとは「AWS Idエンティティand Access Management」の略で、AWSのアカウントがもつ権限を一部他人に付与できるしくみ。

🍮 IAMの機能

機能としては次のようなものがある。

- AWS アカウントへのアクセスの共有できる
  - 他の人に「自分のAWS」のリソース管理や利用のための権限を付与
- アクセス権限を詳細に設定できる
  - どのリソースをどこまで利用できるかといったことを細く設定できる
- 多要素認証(MFA)
  - パスワード/アクセスキー以外にも、特別に設定されたデバイスからのコードの入力も必要にすることができる
- ID フェデレーション
  - 他の認証に基づいたユーザーに対して、自分のAWSアカウントに対して一時的なアクセス権を付与できる
- 保証のための ID 情報
  - IAM IDに基づいたログを AWS CloudTrail で残すことができる
- 多くの AWS サービスと連携
  - 数多くの AWS サービスがIAMと連携している

🐞 IAMへのアクセス

次のいずれかの方法でIAMを使うことができます。

- AWS マネジメントコンソール
- AWS コマンドラインツール
  - AWS Command Line Interface (AWS CLI)
    - AWS サービスを管理するための統合ツール
    - **[aws/aws-cli - GitHub](https://github.com/aws/aws-cli)**
  - AWS Tools for Windows PowerShell
    - Windows PowerShell スクリプト環境でAWSサービスを管理できる
- AWS SDK
  - Java、Python、Ruby、.NET、iOS、Android などのライブラリとサンプルコードで構成された ソフトウェア開発キット(SDK)
- IAM HTTPS API
  - サービスに HTTPS リクエストを直接発行できる IAM HTTPS API

🐯 IAMのユースケース

😼 Security Token Service(STS)

STSとは、AWS Security Token Serviceの略。AWSリソースへのアクセスを制御できる一時的なセキュリティ認証情報をもつ、信頼されたユーザーを作成・提供するためのしくみです。

一時的セキュリティ認証情報 - AWS Identity and Access Management

IAMユーザーが使用できる長期的なアクセス情報と似ているが違いは次の点。

- 使用期限が短い (数分〜数時間で設定できる)
- 一時的セキュリティ認証情報はユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成される

このSTSを使うメリットは次のとおり。

- 一時的に使うアプリに対して、長期のセキュリティ情報を配布しなくていい
- AWS の ID を定義せずに AWS リソースへのアクセスを提供できる

🎉 フェデレーションとは

フェデレーションは「組織間の結合という意味」。フェデレーションとは、イントラネットを超えて
他社のシステムやアプリケーション、サービスとの間でシングルサインオン(SSO)やWebサービスの
処理結果をほかのサービスに受け渡す技術、もしくはそれを実現する考えのことである。

ID管理をスッキリさせるIAMのお役立ち度:“フェデレーション”が企業間連携の今後を変える

🐹 認証フェデレーション

Web IDフェデレーションとは、Facebook、Googleアカウントを利用して、ユーザーにサインインしてもらうことができる。
その認証情報をSTSによってAWSアカウントのリソースを使うための一時的なアクセス権に変換できる。

Web IDフェデレーションを使用すると、アプリケーションでIAMユーザーアクセスキーのような長期的なセキュリティ認証情報を配布する必要がないので、AWSアカウントの安全性の維持に役立ちます。

🐮 あとがき

ちなみに、興味をもったキッカケの記事。これはたしかにすごい便利そう。

Rails - AWS 管理コンソールを社内認証と SSO 化させる #m3dev - Qiita

🤔 次読む記事

Creating a URL that Enables Federated Users to Access the AWS Management Console (Custom Federation Broker) - AWS Identity and Access Management

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍