Amazon S3 AccessDenied
Start with who is calling, what action is being attempted, and which resource is affected.
Diagnose
- Identify the IAM principal or workload role.
- Identify the exact action:
GetObject,PutObject,ListBucket, and so on. - Confirm the object/bucket ARN is the one your policy actually targets.
- Inspect identity policies and bucket policies for both allows and explicit denies.
- If SSE-KMS is involved, verify the caller can use the required KMS key.
- Check ownership and cross-account requirements.
Fix → Verify → Prevent
Avoid * permissions as a shortcut. Make the smallest policy change that explains the evidence, repeat the failed operation, and retain a policy test or runbook entry for future incidents.