動機づけ
AWS認定試験の学習をしている際にAssumeRoleについての問題で行き詰まり、なかなか理解が難しく、それについて調べていくうちに記事にしようと思いました。
AssumeRoleとは
ここで、簡単にAssumeRoleとはなんぞやというお話をします。
まずは画像を見るとわかりやすいと思います。
まずはIAMユーザーがSTS(一時的な認証情報を発行してくれるサービス)に対してIAMロール(ここではS3バケット内のオブジェクトを読み取るための権限)が欲しいとリクエストを送り、認証情報を返してもらいます。
画像でいう帽子のようなものがIAMロールです。
この少年は帽子を被ることによってS3を読み取ることができる力を手に入れたということになります。
※実際には、IAMロールと同じ力を一時的に得るといった形になります。
これらの説明から、AssumeRoleとは、IAMロールを引き受けるためのアクションを表します。
AssumeRoleを使ってどんなことができるのか
画像の通り、2つのアカウントA, Bがあります。
前提条件として、アカウントAにはLambda関数を実行するロールを、アカウントBにはS3バケットアクセスロールを作成します。
アカウントBにおけるIAMユーザーがアカウントAのlambda実行ロールを代行(AssumeRole)し、lambda関数を実行します。
そしてアカウントBのS3バケットアクセスロールをアカウントAが代行(AssumeRole)し、lambda関数がS3バケットにアクセスできるようになる。
このようなことが実現可能になります。
【補足】
こちらではアカウントBにおけるIAMユーザーがlambda関数を実行していますが、もちろんAssumeRoleを使わずアカウントAにおけるIAMユーザーがlambda関数を実行することも可能です。
最後に
最近AWSにおける学習を進めており、一つ一つのサービスを実際に触ってみたり、組み合わせてみたり、点と点が繋がる面白さを味わっています。
認定試験ではAWS CLF, SAAを取得しました。
SAA取得後、CloudTech というサブスク型のAWSにおけるオンラインスクールに出会い、気軽に入会してみました。認定試験における画像解説がとてもわかりやすく、ハンズオンも豊富にあり、より一層AWS学習が楽しくなっていきそうです!
気になる方は是非入会してみてください!