ちょっとマニアックですが、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のユースケース
- 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のお役立ち度:“フェデレーション”が企業間連携の今後を変える
🐹 認証フェデレーション
Web IDフェデレーションとは、Facebook、Googleアカウントを利用して、ユーザーにサインインしてもらうことができる。
その認証情報をSTSによってAWSアカウントのリソースを使うための一時的なアクセス権に変換できる。
Web IDフェデレーションを使用すると、アプリケーションでIAMユーザーアクセスキーのような長期的なセキュリティ認証情報を配布する必要がないので、AWSアカウントの安全性の維持に役立ちます。
🐮 あとがき
ちなみに、興味をもったキッカケの記事。これはたしかにすごい便利そう。
Rails - AWS 管理コンソールを社内認証と SSO 化させる #m3dev - Qiita