Check ID:
Provider: AWS
Service:
Severity: CRITICAL
Categories:
Resource type:
s3_bucket_public_list_aclProvider: AWS
Service:
s3Severity: CRITICAL
Categories:
internet-exposedResource type:
AwsS3BucketWhat this check verifies
Amazon S3 buckets are evaluated for public listing via ACLs. Grants ofREAD, READ_ACP, or FULL_CONTROL to the AllUsers or AuthenticatedUsers groups are identified. Effective Block Public Access at account or bucket level (notably IgnorePublicAcls and RestrictPublicBuckets) is considered in the evaluation.
Risk
Public listability reveals object names, counts, and structure, enabling reconnaissance and targeted scraping.READ_ACP exposes permission details for further abuse. With FULL_CONTROL, attackers could alter ACLs and disrupt access, undermining confidentiality and risking integrity and availability.
Recommendation
Enable account-level S3 Block Public Access (BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy, RestrictPublicBuckets).
- Remove ACL grants to
AllUsers/AuthenticatedUsers; apply least privilege with IAM/bucket policies. - Favor private patterns (VPC endpoints, CloudFront OAC, presigned URLs) and disable ACLs via Object Ownership.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement-staging/knowledge-base/aws/S3/s3-bucket-public-read-access.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_public_list_acl. 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