AssumeRole(アシュームロール)とは?
ロールを引き受けることができるIAMの機能のことです。イメージ的には企業のセキュリティカード見たいな感じです。自分がフリーランスであっても契約をして企業で働いても良いということになったらカードを受け取って自由に入退室できるようになります。
また、複数のAssumeRoleを掛け持ち、重ね掛けすることもできます。
仕組み
AssumeRoleを実行する際はSTSを介している。
STSとは、特定のAWSのリソースを使用するために、一時的な認証情報を発行する事ができるAWSのサービスです。
スイッチロールとの違い
基本的にはAssumeRoleとスイッチロールは文脈的にはほぼ同じことを指しています。厳密にいえばAssumeRoleはAWSの用意するAPIの名前であり、スイッチロールは「Roleを引き受けて権限をスイッチする作業」のことを指しています。
スイッチロールという目的のためにAssumeRole APIを発行するというような意味合いになります。
具体例
EC2に対してS3を操作することができるAssumeRoleを付与する。
設定
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } |
出来上がったロールの中の「信頼関係」という設定の中に「"Action": "sts:AssumeRole"」という設定項目があります。これでEC2は何かしらの権限を行使することができるようになります。
設定対象
- EC2
- IAMユーザー
EC2だけでなく普通にIAMユーザーにも同じようにAssumeRoleは設定することが可能です。
メリット
いちいち、EC2を操作するたびにIAMユーザーを毎回発行するのはめんどくさい。アクセスするたびにAssumeRoleで一時トークンを発行してやった方が作業が早い。
開発者からしたらログインを毎回し直す必要がないので楽。(この場合、SwitchRoleという機能を使う。裏側ではAssumeRoleが使われている。)
この記事へのコメントはありません。