| name | aws-iam |
| description | AWS IAM deep-dive skill - principal types, policy evaluation, STS assume role, SCP guardrails, KMS key policies/grants, and AccessDenied debugging. Use when designing AWS authz/authn, cross-account access, or troubleshooting IAM/KMS/SCP AccessDenied errors. |
AWS IAM
When to use
Use this skill when you are working on:
- IAM principals (users, roles, assumed-role sessions, service principals)
- Trust policies (
sts:AssumeRole*) and cross-account access
- Identity-based vs resource-based policies
- Permission boundaries, session policies, and Organizations SCPs
- KMS key policies, grants, and
kms:Decrypt / kms:GenerateDataKey failures
- Debugging
AccessDenied in AWS (including cross-account and KMS)
What to do (workflow)
- Identify the runtime principal (often an STS assumed-role ARN)
- Identify the action + resource ARN(s) from the error or design requirement
- Determine which policy layers are in play:
- identity-based policy
- resource-based policy
- permission boundary
- session policy
- SCP (Organizations)
- Look for explicit deny first (it wins)
- For cross-account flows:
- validate the trust policy (who can assume)
- validate the permission policy (what the role can do)
- validate any resource policy (who can access the target resource)
- For KMS:
- validate key policy + IAM policy + any grant constraints
References
references/iam-authorization-model.md
references/cross-account-and-externalid.md
references/cross-service-confused-deputy.md
references/kms-key-policy-and-grants.md
references/eks-pod-identity-abac-and-lattice.md