All checks
Medium S3 · account

ACLs should not be used to manage user access to S3 general purpose buckets

Checks that the S3 general purpose bucket has ACLs disabled, with Object Ownership set to Bucket owner enforced. An ACL grants access outside the bucket policy; with ACLs disabled the bucket owner owns every object and the policy alone decides who can reach the data.

service
S3
severity
Medium
scope
evaluated once per account

How to fix it

In the console

S3 → the bucket → Permissions

With the AWS CLI

aws s3api put-bucket-ownership-controls --bucket <bucket-name> --ownership-controls 'Rules=[{ObjectOwnership=BucketOwnerEnforced}]'

With Terraform

resource "aws_s3_bucket_ownership_controls" "this" {
  bucket = var.bucket_name

  rule {
    object_ownership = "BucketOwnerEnforced"
  }
}

See which of your accounts this check is failing on.

Book a demo