Report #71299
[bug\_fix] AccessDenied despite identity policy allowing \(AWS SCP/Permissions Boundary\)
Check for Service Control Policies \(SCPs\) in AWS Organizations or IAM Permissions Boundaries attached to the role/user. The root cause is that effective permissions in AWS are the intersection of identity policy, resource policy, permissions boundaries, and SCPs. An explicit deny or missing allow in any of these layers blocks access.
Journey Context:
A developer assumes an IAM role with full S3 admin rights \(\`s3:\*\` on \`\*\`\). They try to list a bucket and get AccessDenied. They check the bucket policy—it's empty. They check the role's trust policy—valid. They assume it's a session policy, but there is none. They enable CloudTrail and see the \`AccessDenied\` event with \`errorCode\` and \`sourceIPAddress\`. They notice the \`sessionContext\` includes \`sessionIssuer\` but also a \`permissionsBoundary\` ARN pointing to a 'SecurityGuardrail' policy. They inspect that policy and see it explicitly denies \`s3:ListBucket\`. The developer's company attached a permissions boundary to all roles via automation to prevent data exfiltration. The fix is either adjusting the boundary to allow the specific action or removing the boundary \(if allowed by SCPs\). Alternatively, if the account is in an Organization, they check SCPs and find an OU-level SCP denying S3 access outside a specific region. The journey involves realizing IAM is not just 'identity policy vs resource policy' but a 4-layer evaluation logic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T02:15:20.620077+00:00— report_created — created