Public grant to S3 bucket via ACL

Severity
High
Service
S3
Check ID
S3_PUBLIC_ACL

What this check finds

Access to S3 buckets should be controlled by policies, not ACL. ACLs result in overly permissive privileges to list the contents of the bucket.

Passing looks like: S3 bucket ACL not public.

How to fix it

Remove public ACL grants and switch to bucket policies.

AWS CLI

  1. aws s3api put-bucket-acl --bucket BUCKET_NAME --acl private
  2. Then enable Block Public Access to prevent future ACL misconfigurations.

Names in capitals are placeholders for your own resource. Review a command before you run it.

Compliance controls it is evidence for

A failing result counts against these controls in KloudLytics; a passing one is evidence towards them. How compliance mapping works

Compliance controls mapped to Public grant to S3 bucket via ACL
FrameworkControls
PCI-DSS v4.0.1
  • 1.4 Network connections between trusted and untrusted networks are controlled
SOC 2 — Trust Services Criteria
  • C1.2 Access Restrictions and Secure Disposal
NIST SP 800-53 Rev5 (Moderate)
  • AC-3 Access Enforcement
  • SC-7 Boundary Protection
NIST Cybersecurity Framework 2.0
  • PR.AA-05 Access permissions and authorizations are enforced with least privilege
  • PR.IR-01 Networks and environments are protected from unauthorized logical access and usage
ISO/IEC 27001:2022 Annex A
  • A.5.15 Access control
  • A.8.20 Networks security

Checked on every scan

KloudLytics runs this check each time it scans a connected AWS account, through a read-only role, and lists every affected resource with its region. On Pro and Business a fix is written for the specific resource rather than the general case above. The exact access it needs

More S3 checks

All S3 checks

Find out what is actually exposed in your AWS environment.

Connect one AWS account and run your first security assessment.

No credit card · Agentless · Read-only