π‘οΈ AWS S3 Bucket ACL allows public read or write accessπ’
- Contextual name: π‘οΈ Bucket ACL allows public read or write accessπ’
- ID:
/ce/ca/aws/s3/bucket-public-acl - Tags:
- π’ Policy with categories
- π’ Policy with type
- π’ Production policy
- Policy Type:
COMPLIANCE_POLICY - Policy Categories:
SECURITY
Logicβ
- π§ prod.logic.yamlπ’
- π AWS S3 Bucket
- π AWS S3 Bucket - object.extracts.yaml
- π§ͺ test-data.json
Similar Policiesβ
- AWS Security Hub: [S3.2] S3 general purpose buckets should block public read access
- AWS Security Hub: [S3.3] S3 general purpose buckets should block public write access
Descriptionβ
Descriptionβ
This policy identifies AWS S3 Buckets that do not have Block Public ACLs enabled and whose Access Control List (ACLs) grants such public permissions as
READ,WRITE,READ_ACP,WRITE_ACP, orFULL_CONTROL. Access is considered public if any of these permissions are granted to either the AllUsers group (anyone on the Internet) or the AuthenticatedUsers group (any AWS account holder).Rationaleβ
Granting public access through ACLs poses a serious security risk. Public read access can lead to unintentional exposure of sensitive data, while public write access may allow unauthorized users to modify, delete, or upload objects. Such exposure can result in data breaches, service disruptions, or unexpected costs due to malicious uploads or misuse.
Auditβ
This policy flags an AWS S3 Bucket as
INCOMPLIANTif:
Block Public ACLsis not set to Yes, and- The
Access Control Policygrants any of the following permissions: READ, WRITE, READ_ACP, WRITE_ACP, or FULL_CONTROL to either grantee:... see more
Remediationβ
Remediationβ
Disable Public Access for S3 Bucket ACLβ
Enable S3 Block Public Accessβ
Enabling Block Public Access provides a centralized and comprehensive mechanism to prevent public access to your S3 buckets. These settings override any existing ACLs or bucket policies that might otherwise allow public access.
From Command Lineβ
To enable Block Public Access on the bucket, run the following command:
aws s3api put-public-access-block \
--bucket {{bucket-name}} \
--public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"Apply the
privateCanned ACLβApplying the
privatecanned ACL removes all public access grants and ensures that only the bucket owner has full control.aws s3api put-bucket-acl \
--bucket {{bucket-name}} \
--acl private