Ensure that your Amazon S3 buckets can't be accessed for WRITE actions by anonymous users in order to protect your S3 data against unauthorized access. An Amazon S3 bucket that grants public WRITE (UPLOAD/DELETE) access, can allow everyone on the Internet to add, delete, and replace objects within the S3 bucket without restrictions.
This rule can help you with the following compliance standards:
- PCI
- APRA
- MAS
- NIST4
For further details on compliance standards supported by Conformity, see here.
This rule can help you work with the AWS Well-Architected Framework.
This rule resolution is part of the Conformity Security & Compliance tool for AWS.
Granting public WRITE access to your Amazon S3 buckets can allow anonymous users to perform unauthorized operations on your buckets. Using this overly permissive Access Control List (ACL) configuration can lead to S3 data loss or unexpected charges on your AWS cloud bill. To meet security and compliance requirements, avoid granting WRITE (UPLOAD/DELETE) permissions to the "Everyone (public access)" grantee in production.
Audit
To determine if your Amazon S3 buckets are configured to allow public WRITE access, perform the following actions:
Remediation / Resolution
To deny public WRITE access to your Amazon S3 buckets using Access Control Lists (ACLs), perform the following actions:
Note: An S3 bucket can be deemed compliant if implements either"AccessControl": "Private"
or sets the "PublicAccessBlockConfiguration"
feature options to true
. The following CloudFormation template uses both for added security. References
- AWS Documentation
- Amazon S3 FAQs
- Access control list (ACL) overview
- Configuring ACLs
- Identity and access management in Amazon S3
- AWS Command Line Interface (CLI) Documentation
- s3api
- list-buckets
- get-bucket-acl
- put-bucket-acl
- CloudFormation Documentation
- AccessControl
- Terraform Documentation
- AWS Provider