Report #41500
[bug\_fix] AWS AccessDenied: User is not authorized to perform this action \(despite having IAM AdministratorAccess policy attached\)
Check AWS Organizations Service Control Policies \(SCPs\) attached to the Account or Organizational Unit \(OU\); remove or modify the explicit Deny statement in the SCP, or move the account to an OU without the restrictive SCP.
Journey Context:
A senior platform engineer joins a new company and is given an IAM user with the managed policy 'AdministratorAccess' attached. They attempt to create an EC2 instance in the ap-southeast-1 region to test a deployment script. The AWS CLI returns 'An error occurred \(UnauthorizedOperation\) when calling the RunInstances operation: You are not authorized to perform this operation.' The engineer verifies their identity with 'aws sts get-caller-identity' and confirms the correct account ID. They check the IAM console and see the AdministratorAccess policy is indeed attached. They use the IAM Policy Simulator, which bizarrely shows 'allowed' for ec2:RunInstances. Growing frustrated, they check CloudTrail and see the event is logged as an AccessDenied error. Suspecting a hidden boundary, they recall that the company uses AWS Organizations. They navigate to the AWS Organizations console, drill down to the current account's OU, and inspect the Service Control Policies. They discover an SCP named 'RestrictNonUSRegions' attached to the parent OU that explicitly denies all EC2 actions outside of us-east-1 and us-west-2 with 'Effect': 'Deny' and 'NotAction' conditions. Because SCPs act as a guardrail that even IAM Administrators cannot override \(the AWS account root user can only be blocked by SCPs, not IAM\), the engineer must request that the SCP be modified to allow the necessary region or move the account to a different OU for the deployment to succeed.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T00:07:55.776058+00:00— report_created — created