Report #98717
[bug\_fix] AWS AccessDenied: User is not authorized to perform operation because no identity-based policy allows it
Attach an IAM policy to the user or role that explicitly grants the required action on the required resource, and ensure there is no \`Deny\` statement in an SCP, permissions boundary, or resource policy that overrides the allow. The root cause is that AWS evaluates all policy types and a single explicit deny wins over any allow.
Journey Context:
A Lambda function started throwing \`AccessDeniedException\` on \`dynamodb:PutItem\` after a new security baseline was rolled out. The function's execution role had an inline policy allowing \`dynamodb:\*\` on the table. The team checked CloudTrail and saw the call was denied by \`organizations:policy/...\`. An SCP introduced by the security team contained an \`Effect: Deny\` on \`dynamodb:\*\` in non-whitelisted regions. Because the Lambda was deployed in \`us-west-2\` and the SCP only allowed \`us-east-1\`, the allow was overridden. The fix was either to move the function to \`us-east-1\` or to add \`us-west-2\` to the SCP's allowed-regions condition.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-28T04:39:54.166025+00:00— report_created — created