ちょっとマニアックですが、AWSのIAMやSTSについてどういうものかを調べたので、完全俺得メモです。
理解が間違ってそうなところがあればぜひ twitterとかで突っ込んでくださいw
IAM とは?
IAM とは - AWS Identity and Access Management
IAMとは「AWS Identity 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の ユースケース
- AWS マネジメントコンソールを使用し、AWS アカウントの下でユーザーを作成して、そのアクセス許可
- 使用している認証システと AWS の間での ID フェデレーション。ユーザーに対して、アクセストークンを発行
- http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_temp.html
- AWS Security Token Service(STS) API の詳細 => Welcome - AWS Security Token Service
- IAM を使用して、他の AWS アカウントにアクセス許可を付与する方法
Security Token Service(STS)
STSとは、AWS Security Token Serviceの略。AWSリソースへのアクセスを制御できる一時的な セキュリティ認証情報を持つ、信頼されたユーザーを作成・提供するための仕組みです。
一時的セキュリティ認証情報 - AWS Identity and Access Management
IAMユーザーが使用できる長期的なアクセス情報と似ているが違いは次の点。
- 使用期限が短い (数分〜数時間で設定できる) - 一時的セキュリティ認証情報はユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成される
このSTSを使うメリットは次の通り。
- 一時的に使うアプリに対して、長期のセキュリティ情報を配布しなくていい - AWS の ID を定義せずに AWS リソースへのアクセスを提供できる
フェデレーションとは
フェデレーションは「組織間の結合という意味」。フェデレーションとは、イントラネットを超えて 他社のシステムやアプリケーション、サービスとの間でシングルサインオン(SSO)やWebサービスの 処理結果をほかのサービスに受け渡す技術、もしくはそれを実現する考えのことである。
ID管理をスッキリさせるIAMのお役立ち度:“フェデレーション”が企業間連携の今後を変える
認証フェデレーション
ウェブ ID フェデレーションとは、Facebook、Googleアカウントを利用して、ユーザーにサインインしてもらうことができる。 その認証情報をSTSによってAWSアカウントのリソースを使うための一時的なアクセス権に変換できる。
ウェブ ID フェデレーションを使用すると、アプリケーションで IAM ユーザーアクセスキーのような長期的なセキュリティ認証情報を配布する必要がないので、AWS アカウントの安全性の維持に役立ちます。
あとがき
ちなみに、興味をもったキッカケの記事。これは確かにすごい便利そう。
Rails - AWS 管理コンソールを社内認証と SSO 化させる #m3dev - Qiita