Report #49535
[bug\_fix] AccessDenied: User is not authorized to perform action with an explicit deny in a permissions boundary
Update the IAM permissions boundary policy attached to the user/role to explicitly include the required actions \(e.g., \`s3:GetObject\`\), or request the organization admin to modify the boundary. The root cause is that AWS permissions boundaries are a guardrail mechanism that limits maximum permissions regardless of identity-based policies; they evaluate separately and both must permit the action. An explicit deny in a boundary overrides any allow in an identity policy.
Journey Context:
Developer creates IAM policy allowing \`s3:\*\` on a specific bucket. Attaches policy to user. User still gets AccessDenied. Developer checks CloudTrail, sees the explicit deny message mentioning permissions boundary. Developer confused because they never set a boundary. Realizes the user was created via an automation framework \(AWS Control Tower/Organizations\) that attaches a default permissions boundary to all IAM entities. The IAM policy simulator shows 'allowed' but real API calls fail. The error occurs because permissions boundaries act as a maximum privilege ceiling; even if identity policy allows action, the boundary must also allow it \(it's an implicit deny if not explicitly allowed in boundary\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T13:37:32.343574+00:00— report_created — created