IAMポリシー評価ロジック(SCPとの関係)難易度 標準無料
IAMユーザー alice には、s3:* を対象バケットに対して許可するIAMポリシーがアタッチされている。一方、alice が所属するアカウントは AWS Organizations のあるOUに属しており、そのOUには次のSCPが適用されている。
{
"Effect": "Deny",
"Action": "s3:DeleteObject",
"Resource": "*"
}
alice が対象バケットのオブジェクトを DeleteObject しようとした場合の結果として最も適切なものを選べ。(単一選択)
- AIAMポリシーで
s3:*を許可しているため、DeleteObjectは成功する。SCPはIAMユーザー個人には影響しない - BSCPの明示的Denyにより
DeleteObjectは拒否される。IAMポリシー側でどれだけ広くAllowしていても、SCPの範囲外の操作は実行できない - CSCPは管理アカウント(Organizationsの管理者アカウント)にのみ適用され、メンバーアカウントの
aliceには影響しないためDeleteObjectは成功する - DSCPが効くのは権限境界(permission boundary)を設定したIAMエンティティに対してだけなので、
aliceに権限境界が無ければDeleteObjectは成功する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済
解説
AWSのポリシー評価では、あらゆる形の明示的Deny(explicit deny)が最優先で効く。 評価対象になり得るポリシー(IAMアイデンティティベースポリシー、リソースベースポリシー、権限境界、SCP、セッションポリシー)のうち 1つでもDenyがあれば、他にAllowがいくつあっても最終結果はDenyになる。
SCPはAWS Organizationsの機能で、アカウント(メンバーアカウント)に対する権限の“上限(guardrail)”を定める。
SCPで s3:DeleteObject を明示的にDenyしているので、たとえ alice のIAMポリシーが s3:* を許可していても、
SCPの範囲内に収まらない操作は実行できない。結果、alice の DeleteObject 呼び出しは拒否される。
- ASCPはメンバーアカウントに属するすべてのプリンシパル(IAMユーザー・ロール含む)に及ぶ。IAMのAllowより明示的Denyが優先されるため誤り。
- C逆。SCPはメンバーアカウントに適用するための仕組みで、管理アカウント自体には適用されない。
- DSCPと権限境界は別の仕組み。SCPは権限境界の有無に関わらず、対象アカウントの全プリンシパルの実効権限の上限になる。
ひっかけ: 「IAMポリシーで
s3:* を許可しているのだから削除できるはず」という直感(A)が典型的なひっかけ。
SCPはIAMポリシーより上位のガードレールであり、明示的Denyは常にAllowに勝つ。
また「SCPは管理アカウントにのみ効く(C)」という誤解にも注意(SCPはメンバーアカウントに適用され、管理アカウント自体には適用されない)。公式ドキュメント・関連IAM User Guide ― Policy evaluation logic↗AWS Organizations User Guide ― Service control policies (SCPs)↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)