AWS IAM RoleとAssumeRoleの違い

目次

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のひとつです。

関連の記事

AWS スイッチロールで別アカウントにログイン

△上に戻る