Report #56328
[bug\_fix] AWS AccessDenied due to Service Control Policy \(SCP\) or Permissions Boundary intersection
Check AWS Organizations Service Control Policies \(SCPs\) and IAM Permissions Boundaries attached to the entity. The fix is to modify the SCP to exclude this principal/resource, adjust the Permissions Boundary policy to include the required action, or assume a different role without the restrictive boundary. Root cause: AWS policy evaluation logic intersects identity-based policies, SCPs, and permissions boundaries; an implicit deny in any of these \(or an explicit deny in SCP\) overrides identity-based allows.
Journey Context:
Developer assumes an IAM Role with a policy granting full \`s3:\*\` access. They attempt to delete an S3 bucket and receive \`AccessDenied\`. They use the IAM Policy Simulator, which bafflingly shows 'Allowed' for the exact action and resource. They check the S3 bucket policy—no denies there. They verify they are in the correct account. After checking CloudTrail, they see the event with \`errorCode: AccessDenied\` and \`sourceIPAddress\`. Finally, they check the AWS Organizations console and find an SCP attached to their Organizational Unit \(OU\) that explicitly denies \`s3:DeleteBucket\` for all non-specific roles. Alternatively, they check the IAM Role details and see a Permissions Boundary attached that only allows \`s3:GetObject\`, silently blocking the delete. Removing the boundary or adjusting the SCP resolves the issue.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T01:02:25.783256+00:00— report_created — created