Internet accessible S3 bucket via policy
- Severity
- High
- Service
- S3
- Check ID
- S3_PUBLIC_POLICY
What this check finds
This S3 bucket allows more public access than simply GetObject. These public privileges should be reduced.
Passing looks like: S3 bucket not publicly exposed via policy.
How to fix it
Remove or restrict the public statements in the bucket policy. Limit access to specific IAM principals.
AWS CLI
If the policy should be removed entirely:
aws s3api delete-bucket-policy --bucket BUCKET_NAME
Names in capitals are placeholders for your own resource. Review a command before you run it.
AWS console
S3 → Bucket → Permissions → Bucket Policy → Edit.
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
| Framework | Controls |
|---|---|
| PCI-DSS v4.0.1 |
|
| HIPAA Security Rule |
|
| SOC 2 — Trust Services Criteria |
|
| NIST SP 800-53 Rev5 (Moderate) |
|
| NIST Cybersecurity Framework 2.0 |
|
| ISO/IEC 27001:2022 Annex A |
|
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
- HighPublic grant to S3 bucket via ACL
- MediumS3 bucket does not require SSL/HTTPS for all requests
- MediumS3 bucket has incomplete multipart uploads consuming storage
- LowS3 Block Public Access does not block all access types
- LowS3 Block Public Access is not enabled for the account
- LowS3 bucket does not have server-access logging enabled
- LowS3 bucket with versioning enabled does not have MFA delete configured
- LowVPC with private subnets has no S3 endpoint