投稿

ラベル(アクセス制御)が付いた投稿を表示しています

IAM ポリシーの基本構造:Effect・Action・Resource・Condition の違いを完全解説

IAM ポリシーの JSON を初めて読んだとき、 Effect ・ Action ・ Resource ・ Condition の四つの要素が何を制御しているのか、それぞれの境界がどこにあるのかが掴みにくい。本記事では、IAM ポリシーの基本構造を実際の運用経験をもとに解説し、よくある誤解と正しいモデルを整理する。 TL;DR:IAM ポリシー基本構造の早見表 要素 役割 必須 典型的な値の例 Effect 許可か拒否かを決定する ✅ Allow / Deny Action 対象の API アクションを指定する ✅ s3:GetObject Resource アクションを適用するリソースを限定する ✅ arn:aws:s3:::my-bucket/* Condition 追加の条件が満たされた場合のみ Statement を有効化する ❌ aws:SourceIp など IAM ポリシーの仕組み:評価モデルを理解する IAM ポリシーは、AWS がリクエストを受け取ったときに評価される一連のルールセットだ。ポリシーは一つ以上の Statement で構成され、各 Statement が「誰が・何を・どのリソースに・どんな条件で・許可または拒否するか」を定義する。AWS はリクエストを評価する際、すべての適用可能なポリシーを収集し、以下の優先順位で判定する。 graph TD A["リクエスト受信"] --> B{"明示的 Deny (いずれかのポリシー)"} B -- "あり" --> C["拒否 (Explicit Deny)"] B -- "なし" --> D{"明示的 Allow (いずれかのポリシー)"} D -- "あり" --> E["許可"] D -- "なし" --> F["拒否 (Implicit De...