質問の回答から書くと
引用した1行目の文章で[AWSアカウント:999988887777 の IAMロール:kawahara~]と記載しています。
ここでは、人を意味するためIAMロール→IAMユーザーではないでしょうか?
いいえ、ここで指しているのはkawahara
という文字列のIAMロールであって人を意味するかどうかは大きな問題ではありません。
別にhoge
でもhuga
でもJohn
でもIchiro
でもaaaaaaaaaaa
とかでも、ロールはロールであってこの文字列はロールの名前でしかありません。
この記事に語弊があるのは以下の部分です。
つまり、IAMユーザー:bob は IAMロールkawaharaの持っている権限と同等の権限を保有することができます。
「保有する」というのは正確ではなく、「IAMロールkawaharaの持っている権限を引き受けることができる」がより正確かと思います。
もし、IAMロール:kawahara がAWSアカウント:9999888777 配下のEC2インスタンスを起動する権限(この権限はユーザーベースのポリシーでIAMロールに関連づけている)を保有していれば、(AWSアカウント:123456789012の)IAMユーザー:bob も同様にAWSアカウント:999988887777配下のEC2インスタンスを起動できます
これは補足説明に書いてある以下の内容が正しく、上記は説明不足で誤解を招くものですね…。
正確には、IAMユーザー:bobが直接EC2インスタンスを起動できるわけではなく、IAMロール:kawahara にスイッチロール(kawaharaロール用のアクセストークン取得処理)した後に起動できるようになります。
上記の語弊のある記載は「わかりやすく説明した」もののようですが、残念ながらそれよりも前に書いてあるこちらの説明のほうがより正確です。言い換えることで必要な情報までカットされてしまった例ですね。
ポリシーの記載内容をざっくり言うと、当該の信頼ポリシーを関連づけたIAMロールが保有する権限を、信頼ポリシーの操作主体であるPrincipalに移譲(を許可)する、ということを記述します。 うまく説明できていないと思うので、誤解を恐れずにもっとざっくり言うと、「信頼ポリシーを関連づけたIAMロール」に「Principal(主体者)」が(権限的に)なりすませる、ということです。
この記事を理解するには、まずポイントとしてIAMで使用するポリシーには権限を設定するためのIAMポリシーのほか、その権限をどこから呼び出せるかを設定するための信頼ポリシーの2つがあるということに注意しましょう
コンソール上では日本語だと信頼関係と記載されていますね。
IAMにはAssumeRoleという、あるユーザやロールの権限を使って、別のロールの権限を引き受けることができる機能があります。
ここでいう信頼ポリシーは、例えばあるロールAの権限をAssumeRoleで引き受けたいときに、ロールAの権限を移譲して使用することができるユーザ・ロールなどを制限するために設定します。
AWSのサービスに渡すロールも内部的にはこのAssumeRoleで権限を呼び出していると思われますね(信頼ポリシーにロールを使うサービスを指定するので)
IAMを理解するにはこのAssumeRoleを理解することが一つのキモになりますね。
クラスメソッドさんのブログには他にもIAM周りについて詳しく解説したものがあるので、それらも読みつつ実際に設定しながら理解を深めるといいでしょう。
以下はその一例です。多分他にもまだあります。
AWS初心者にIAM Policy/User/Roleについてざっくり説明する
IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた
IAMロール徹底理解 〜 AssumeRoleの正体
読んでるだけでは中々イメージが沸かないと思うので、実際に自分でAssumeRoleを試してみるといいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/15 13:41 編集