IAMロールと信頼関係
資格試験では、キーワードとイメージを掴むことに集中していましたが、実際に使ってみて少し理解できた気がしましたので、それを備忘録として残しておきます。
今回のシチュエーション
今回は、Elastic Beanstalkに触った時に、EC2インスタンスプロファイルが必要となり、ロールを作成することになりました。
IAM>ロール>ロールを作成という順で操作を進め、エンティティタイプは「AWSのサービス」を選択し、ユースケースで「EC2」を選択しました。
ロールの構成
今回は大きく2点で整理します。
許可ポリシー
このロールで何を許可したいか・・・という目線でポリシーをアタッチします。
ロールを勉強したとき、この考えはすぐに理解できましたので、触ってみても、すんなり認識できました。
信頼関係
信頼ポリシーとも言うようです。
資格勉強では、正直イメージができず、表面的(こういうものだという感じで)な理解で、これまで来ました。
今回のケースでは、EC2をユースケースとし、具体的なシチュエーションをもとにしているので理解が深まりました。
自分なりの解釈
まず着目する点は「Principal」です。ここは「誰に」を指定する部分と認識すると分かりやすい気がしました。
そして次に着目するのは「Action」の「sts:AssumeRole」です。「sts:AssumeRole」は「このロールを引き受けさせるぜ」と解釈すると分かりやすいです。
これらを総じると、今回のケースでは、「EC2に、このロールを引き受けさせるぜ」という意味になります。
そして、「このロール」とは前述の許可ポリシーの設定に他なりませんので、「許可ポリシーで設定した内容を、EC2に引き受けさせる」ということになります。
この内容で作ったIAMロールをEC2に付与するとなれば、何となく意味が分かります。
インスタンスプロファイルとIAMロール
今回のケースで、インスタンスプロファイルというキーワードがありましたので蛇足です。
資格試験でもインスタンスプロファイルというキーワードは出てきてましたが、正直理解が浅いままでした。
以下の説明を見つけましたので、備忘として残します。
EC2はIAMロールのコンテナとしてインスタンスプロファイルを使用します。
IAMコンソールを使用してIAMロールを作成するとロールと同名でインスタンスプロファイルが作成されます。
つまり、EC2においては、IAMロールの別名的な位置付けと解釈すれば良いようです。