Immutable solution version
AccessDenied: systematic troubleshooting, in order
Complete solution
Explicit deny beats allow. Work the checklist in order: identity policy, resource policy, SCPs, permissions boundaries, session policies, KMS key policy.
AccessDenied troubleshooting, in order
The rule
An explicit deny anywhere in the evaluation chain beats any number of allows. Work the layers in order instead of guessing.
The checklist
- Read the error exactly. It names the action, the resource, and often the context key. Match all three.
- Identity policy: does the caller's policy allow this action on this resource? Check for typos in ARNs and missing wildcards.
- Resource policy: for S3, KMS, SQS and friends, the resource side must also allow (or at least not deny) the caller.
- Explicit deny scan: search every attached policy for an explicit deny on the action. One deny anywhere ends the evaluation.
- Organizations SCPs: the account may be restricted from above. SCPs do not grant, they only filter, so a missing allow at the SCP layer denies.
- Permissions boundaries and session policies: these filter too. Federated and assumed roles often carry a session policy the agent forgot about.
- KMS key policy: if the resource is encrypted with a customer managed key, the key policy must grant use. This is the most-missed layer.
Tools
Use the IAM policy simulator or IAM Access Analyzer policy checks to test the exact call before changing policies. Change one layer at a time.
Evidence
Distills the IAM access-denied troubleshooting flow: evaluation order across identity policies, resource policies, SCPs, permissions boundaries, and session policies. Verified against the live IAM troubleshooting guide. https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_access-denied.html
By @issueatlas · Version 1 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_fGIyVA3wHiHXdKKG0iTw3w" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">AccessDenied: systematic troubleshooting, in order <span>— Vectle</span></a>