見出し画像

【PART7 IAMポリシー FIN】ぜんぜんわからなかったIAMについてまとめてみました

こんにちはこぐまです。
ぜんぜんわからなかったIAMシリーズ7回目です。
(記事を書きながら統一性を図るために適宜修正をしております。じっくり理解していきたい方は、ぜひマガジン登録をしていただき今一度最初から読んで頂ければと思っています。よろしくお願いいたします!)

もう一度復習です。

ポリシーは、ただの手紙です。
その手紙の呼び方がたくさんありますが、大きく分けて3種類あります。
①手紙の使用用途での呼び方
②手紙の作り方での呼び方
③手紙を渡す(アタッチする)ときの呼び方

前回は「②手紙の作り方での呼び方」について記載しました。
手紙の作り方では大きく分けると「管理ポリシー」「インラインポリシー」があり、「①手紙の使用用途での呼び方」「②手紙の作り方での呼び方」がどう関係しているかを考えてみました。

今回は呼び方の最後「③手紙を渡す(アタッチする)ときの呼び方」について記載していきたいと思います。

「③手紙を渡す(アタッチする)ときの呼び方」は3パターン

最初に③での呼び方を列挙すると、以下の3パターンとなります。カッコ内は日本語での表示です。(現在のIAMコンソールでの表示も後ほど紹介しますが、英語表記のほうが若干統一感があります。)
AWSを少し触っていれば、なんとなく耳にした言葉も多いのかなと思います。

Permissions policies(「許可ポリシー」または「権限ポリシー」)
Permissions boundary(「許可の境界」または「境界ポリシー」)
Trust policies(「信頼ポリシー」)

③の呼び方は、「IAMアイデンティティ」および①での呼び方によって決まる

上記3パターンの呼び方が何によって決まるのかというと、前々回紹介した
「①手紙の使用用途での呼び方」と「IAMアイデンティティ(ユーザ、グループ、ロール)」によって決まります。

例を挙げると、「IAMユーザ」に「1,アイデンティティベースのポリシー」として使用した場合、それは③では「Permissions policies(許可ポリシー)」と呼ぶ・・みたいな感じです。
以下、順番に整理していきます。

③の呼び方その1 IAMアイデンティティ「IAMユーザ」にアタッチするとき

まずはIAMユーザに対して考えます。

あるポリシーを、ある「IAMユーザ」にアタッチするとき、「①手紙の使用用途での呼び方」で考えると、
「1.アイデンティティベースのポリシー」としてアタッチする場合と、
「3.アクセス許可の境界」としてアタッチする場合があります。

ここで、
「1.アイデンティティベースのポリシー」としてアタッチする場合は、そのポリシーを「Permissions policies(許可ポリシー)」と呼びます。
「3.アクセス許可の境界」としてアタッチする場合は、そのポリシーを
「Permissions boundary(境界ポリシー)」と呼びます。

実際にコンソールでは以下の場所で確認できます。

「ユーザー」→IAMユーザを選択→「アクセス権限」タブで確認できる。
上側が「Permission policies」下側が「Permissions boundary」である。
ここでは「Permission policies」として「test-inline-policy」という名前のインラインポリシーが、「Permissions boundary」として「kogumatest-exe-asuume-policy」という名前の管理ポリシーがアタッチされていることがわかる。

③の呼び方その2  IAMアイデンティティ「IAMグループ」にアタッチするとき

次に、IAMグループに対して考えます。

あるポリシーを、ある「IAMグループ」にアタッチするとき、「①手紙の使用用途での呼び方」で考えると、
「1.アイデンティティベースのポリシー」としてアタッチする場合があります。(※)
ここで、
「1.アイデンティティベースのポリシー」としてアタッチする場合は、そのポリシーを「Permissions policies(許可ポリシー)」と呼びます。

実際にコンソールでは以下の場所で確認できます。

「UserGroups」→IAMグループを選択→「許可」タブで確認できる。
ここでは、「koguma-group」という名前のIAMグループに許可ポリシーとして「AdministratorAccess」という名前の管理ポリシー(ジョブ機能)と、
「testpolicy」という名前のインラインポリシーがアタッチされていることがわかる。

(※)
IAMグループでは「3.アクセス許可の境界」は設定できません。

③の呼び方その3  IAMアイデンティティ「IAMロール」にアタッチするとき

あるポリシーを、ある「IAMロール」にアタッチするとき、「①手紙の使用用途での呼び方」で考えると、
「1.アイデンティティベースのポリシー」としてアタッチする場合と、
「2.リソースベースのポリシー」としてアタッチする場合と、
「3.アクセス許可の境界」としてアタッチする場合があります。

ここで、
「1.アイデンティティベースのポリシー」としてアタッチする場合は、そのポリシーを「Permissions policies(許可ポリシー)」と呼びます。
「2.リソースベースのポリシー」としてアタッチする場合は、そのポリシーを「Trust policies(信頼ポリシー)」と呼びます。
「3.アクセス許可の境界」としてアタッチする場合は、そのポリシーを
「Permissions boundary(境界ポリシー)」と呼びます。

実際にコンソールでは以下の場所で確認できます。

「ロール」→ロールを選択→「許可」タブから確認できる。
ここで確認できるのは、許可ポリシーと許可の境界。(IAMユーザと同じ)
信頼ポリシーは、「信頼関係」というタブから確認できる。AWSにおいて「信頼ポリシー」という言葉自体はよく使われるにもかかわらず、文言として確認できるのは緑ラインの部分しかない。
タブに明に「信頼ポリシー」と書かれていたらいいのに・・と思う。
IAMロールについては別途記載しようと思います。

ここまでで、IAMポリシーの3種類の呼び方のお話は終わりです。
ポリシーは、ただの手紙です。
その手紙の呼び方がたくさんありますが、大きく分けて3種類あります。
①手紙の使用用途での呼び方
②手紙の作り方での呼び方
③手紙を渡す(アタッチする)ときの呼び方
ここまで①~③を紹介してきました。
最初に例として挙げた以下のポリシーラッシュの文章も、今なら理解できるのではないでしょうか・・?

(例1)
IAMユーザー「koguma」に「①アイデンティティベースのポリシー」として「②インラインポリシー」を「③権限ポリシー」としてアタッチする。
(例2)
IAMロール「testrole」に「①リソースベースのポリシー」として、「②AWS管理ポリシー」を「③信頼ポリシー」としてアタッチする。

そして・・上記文章の間違いにも気づかれましたか?
はい、例2が間違ってました・・
「リソースベースのポリシー」には、「AWS管理ポリシー」は使えません。
「インラインポリシー」のみでしたね。なので正しくは以下となります。

IAMロール「testrole」に「①リソースベースのポリシー」として、「②インラインポリシー」を「③信頼ポリシー」としてアタッチする。

でした。
ここまで読んでいただき、ありがとうございました。

まとめ(線がごちゃごちゃしているので、また改めて整理するかもです。)


この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?