Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
s3_account_level_public_access_blocksProvider: AWS
Service:
s3Severity: HIGH
Categories:
internet-exposedResource type:
AwsS3AccountPublicAccessBlockWhat this check verifies
Amazon S3 account-level Block Public Access is assessed forignore_public_acls and restrict_public_buckets to confirm centralized blocking of ACL-based public access and limiting buckets with public policies to in-account principals.
Risk
Absent these settings, public ACLs and broad bucket policies may grant internet or cross-account access. This risks:- Confidentiality: bulk data exfiltration
- Integrity: object overwrite/tampering
- Availability: malicious deletions or malware hosting, triggering takedowns
Recommendation
Turn on account-level Block Public Access (prefer enabling all four:block_public_acls, ignore_public_acls, block_public_policy, restrict_public_buckets) to enforce least privilege. For legitimate access, use private buckets with CloudFront, VPC endpoints, or presigned URLs. Regularly review policies with IAM Access Analyzer.
Remediation
- CLI
- Terraform
- Native IaC
- Dashboard steps
References
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_account_level_public_access_blocks. 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