Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
s3_bucket_acl_prohibitedProvider: AWS
Service:
s3Severity: MEDIUM
Categories:
identity-accessResource type:
AwsS3BucketWhat this check verifies
Amazon S3 buckets are evaluated for Object Ownership set toBucketOwnerEnforced, which disables bucket and object ACLs. Buckets using any other ownership setting indicate that ACLs remain enabled.
Risk
With ACLs enabled, access can bypass centralized policy controls, impacting confidentiality and integrity.- Unintended public or cross-account reads/writes
- Object-writer ownership blocking bucket-owner governance
- Per-object grants hinder auditing, enabling data exfiltration or tampering
Recommendation
Disable ACLs by setting Object Ownership toBucketOwnerEnforced and manage access with IAM and bucket policies under least privilege. Centralize authorization, review policies regularly, and use organizational guardrails to prevent re-enabling ACLs. Migrate ACL-based grants into policies before the change.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = s3_bucket_acl_prohibited. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks