AWS IAM: 評価は「明示 Deny → 明示 Allow → 暗黙 Deny」
IAM(および SCP・Permissions Boundary が絡む場合も)は、最終的に「明示的な Deny があれば拒否、なければ明示 Allow があれば許可、どちらもなければ暗黙 Deny」の順で整理すると解ける。
どんなときに使う?
- SAA などで「このポリシーの組み合わせで通るか?」を問われたとき
- SCP・Permissions Boundary・セッションポリシーが重なって頭が混乱したとき
- 「Allow したのに動かない」原因を切り分けるとき
やり方
判定の軸を次の順に固定する。
- 明示 Deny があるか(どのレイヤでも)→ あれば拒否で終了
- なければ 明示 Allow があるか → あれば許可
- どちらもなければ 暗黙 Deny(デフォルト拒否)
SCP や Permissions Boundary が入っても、「Deny が勝つ」「Allow が揃わないと通らない」という骨格は同じ。レイヤごとに「この操作は全レイヤで拒否されていないか/必要な Allow が揃っているか」をチェックする。
注意点
- Identity ポリシーだけ見て「Allow した」と思っても、SCP や Boundary が削っていることがある
- リソースベースポリシー(バケットポリシー等)が絡むと交差が複雑になる。まずは明示 Deny の有無から潰す
- 投稿は試験・設計の整理用メモ。細かい評価ロジックは AWS 公式の Policy Evaluation Logic を確認する