目次
IAM RoleとAssumeRoleの違いのまとめ
定義 | 役割 | 用途例 | |
---|---|---|---|
IAM Role | 権限をまとめた箱 | どんな権限を与えるかを記述 AWSに固定的に存在 |
EC2などサービスに割り当てる |
AssumeRole | 権限をまとめた箱を引き受ける行為 | 実際に権限を借りる 一時的な認証情報を得る |
ユーザーや他のロールが実際に利用する |
IAM Roleとは
「このロールを使う人は、このポリシーに書かれた権限を持つ」と定義するものです。
「誰がこのロールを使えるか(信頼ポリシー)」と「どんな操作ができるか(権限ポリシー)」の2つを持っています。
例:
「このロールを使えばS3バケットに読み書きできる」
AssumeRoleとは
IAM Roleを実際に使うための行為(API)です。
IAMユーザーや別のIAMロールが「そのロールになりきる」ためにsts:AssumeRoleを呼び出すことで、一時的な認証情報が発行されます。
その認証情報を使って「IAM Roleの権限」でAWS操作が可能になります。
例:
クロスアカウントアクセス
「Aアカウントのユーザーが、BアカウントのS3にアクセスするためにBのロールをAssumeRoleする」
IAM Role Switching (コンソールの「ロールの切り替え」)
コンソール画面のロールの切り替えも
実態はSTSのAssumeRole APIを裏で実行しています。
sts:AssumeRoleのstsとは
STS (Security Token Service) は、AWSが提供する 一時的な認証情報(クレデンシャル)を発行するサービス です。
通常のIAMユーザー/ロールのアクセスキーは「固定的」ですが、STSで発行されるのは 数分〜数時間だけ有効な一時キーです。
これを使うことで、長期的なキーを配布せずに安全にAWSリソースへアクセスできます。
AssumeRoleは、stsのAPIのひとつです。
関連の記事