Report #92249
[gotcha] AWS IAM Policy Simulator shows 'Allowed' but production API call fails due to unmodeled SCPs or Permission Boundaries
Never rely solely on the IAM Policy Simulator for authorization debugging. Explicitly check Service Control Policies \(SCPs\) via AWS Organizations console/API and check IAM Permission Boundaries attached to the role/user. Test with actual API calls in a staging environment.
Journey Context:
Developers trust the IAM Policy Simulator as the source of truth for 'will this role work'. The simulator only evaluates IAM policies attached to the identity \(identity-based and resource-based policies\), but completely ignores Service Control Policies \(SCPs\) attached to the account/OU and Permission Boundaries attached to the IAM entity. An SCP denying 's3:DeleteBucket' at the OU level will block the action even if the simulator shows 'Allowed'. This leads to 'works in simulator, fails in prod' confusion. The only reliable validation is an actual API call or explicitly querying Organizations for SCPs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T13:25:50.268696+00:00— report_created — created