質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1180閲覧

とある記事にあるIAMロールとIAMユーザーの記述への疑問

ketuge

総合スコア27

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/10/15 08:40

記事

上記の記事中の「IAMロールの信頼ポリシー」という項目で

例えば、この信頼ポリシーをAWSアカウント:999988887777 の IAMロール:kawaharaに関連づけたとします。 すると、この場合、AWSアカウント:999988887777 の kawahara ロールの権限を、AWSアカウント:123456789012 の IAMユーザー:bob に謙譲許可することを意味します。つまり、IAMユーザー:bob は IAMロールkawaharaの持っている権限と同等の権限を保有することができます。 もし、IAMロール:kawahara がAWSアカウント:9999888777 配下のEC2インスタンスを起動する権限(この権限はユーザーベースのポリシーでIAMロールに関連づけている)を保有していれば、(AWSアカウント:123456789012の)IAMユーザー:bob も同様にAWSアカウント:999988887777配下のEC2インスタンスを起動できます。

自分の認識では、「IAMユーザーは、人へ。IAMロールは、ec2などのリソースへ。」
というイメージを持っているのですが、
引用した1行目の文章で**[AWSアカウント:999988887777 の IAMロール:kawahara~]**と記載しています。
ここでは、人を意味するためIAMロール→IAMユーザーではないでしょうか?

はたまた、2,3行目では**[AWSアカウント:123456789012 の IAMユーザー:bob に謙譲許可~]**
のようにIAMユーザーと記述しています。わざわざ変えて表現しているのに違和感があります。
作者の間違いなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

質問の回答から書くと

引用した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 09:22

編集2021/10/15 17:27
yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ketuge

2021/10/15 13:41 編集

いつもご回答誠にありがとうございます... 信頼関係について知見がなく理解に苦しんでおりましたが、イメージをつかむことができました。 ご指摘いただいたAssumeRoleについて理解をして、実際にjsonで定義して試してみます。 割当と委任についても見直します。 この方に投げ銭できればなぁ....
guest

0

自分の認識では、「IAMユーザーは、人へ。IAMロールは、ec2などのリソースへ。」

というイメージを持っているのですが

いえ、ロールを人間が使うユーザーに割り当てることも可能です。

ロールを使用して、通常は AWS リソースへのアクセス権のないユーザー、アプリケーション、サービスにそのアクセス権を委任できます。(AWS公式より、強調は引用者)


IAMユーザーと記述しています。わざわざ変えて表現しているのに違和感があります。

ユーザーにロールを割当てるので、何が不自然なのかが理解できません。

投稿2021/10/15 08:43

編集2021/10/15 08:43
maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/10/15 08:44

> ここでは、人を意味するためIAMロール→IAMユーザーではないでしょうか? 人を意味して「いません」。たまたまロールの名前がkawaharaだっただけです。
yu_1985

2021/10/15 09:01

> ロールを人間が使うユーザーに割り当てることも可能 それはちょっと違います。 ユーザに割り当てることができるのは「ポリシー」であって「ロール」ではないです。 ここは「割当」ではなくて「委任」と書いているのがポイントです。AssumeRoleを使った権限の移譲のことを指していると思われますね。 ちょっとこれは回答に書きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問