Cloud Security Maturity Model·AWS v3.0.0

Drag to explore · pinch to zoom

Quick Wins Data protection

c1.12 Block public access to storage

Turn on S3 Block Public Access at the account level everywhere, and block public access for AMIs and EBS snapshots too. Enforce it with SCPs so it cannot be silently turned off.

Implementation guidance

S3 Block Public Access

S3 Block Public Access (BPA) blocks public access to your buckets at the account level (the default for new accounts) and at the bucket level. If your organization does not need public buckets, enable account-level BPA in every account. Where one account genuinely needs a public bucket, keep BPA on for every other bucket in that account. Account-level BPA overrides bucket policies, so it is a hard backstop against a misconfigured policy.

Enforce it with a Service Control Policy so no one can remove BPA where it is not needed, and use AWS Security Hub CSPM controls S3.1 and S3.8 to spot accounts and buckets where BPA is off.

Turn it on with the CLI

Enable all four account-level Block Public Access settings (run in each account, with its account id):

aws s3control put-public-access-block \
  --account-id 111122223333 \
  --public-access-block-configuration \
  BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true

Verify what is currently set:

aws s3control get-public-access-block --account-id 111122223333

Do not forget AMIs and EBS snapshots

Public access is not only an S3 problem. Also block public access for AMIs and for EBS snapshots unless you have a clear, reviewed reason to share them — a public AMI or snapshot can leak an entire machine image or disk.

If you must publish content

To serve public content (for example a static website), do not open the bucket. Put it behind an Amazon CloudFront distribution with AWS WAF so you keep BPA on and add protection in front.

How to validate

  • Is S3 Block Public Access enabled at the account level in every account in the organization?
  • Have you enabled block public access for AMIs and EBS snapshots?
  • Is an SCP preventing removal of BPA where it is not needed?
  • For any bucket that must be public: is it justified, and is BPA still on for all the other buckets in that account? Could CloudFront + WAF serve it instead?

Threats addressed

  • ATT&CK Exfiltration a misconfigured S3 bucket, public AMI, or public EBS snapshot can expose data or an entire machine image to anyone on the internet. Account-level Block Public Access removes that class of mistake.

AWS services

Amazon S3 AWS Security Hub Amazon CloudFront

Pricing

No additional charge

Amazon S3 Block Public Access is offered at no additional charge.

Framework mappings

AWS CAF

Well-Architected

NIST CSF

References