interview-prep

Three layers of access control:

  1. IAM policies — identity-based, control who in the AWS account can do what
  2. Bucket policy — resource-based, attached to the bucket, controls cross-account and public access
  3. ACLs (legacy) — older, mostly disabled by default now via Block Public Access

Block Public Access (BPA) is the safety net — turned on by default, blocks any policy or ACL that would make the bucket public, even if you write one accidentally.

Common 403 troubleshooting flow:

  1. Check the bucket policy
  2. Check the IAM policy of the requesting identity
  3. Check BPA settings
  4. Check KMS key policy if the object is encrypted with SSE-KMS
  5. Check VPC endpoint policy if accessing via VPC endpoint

My notes