Check provider logo

S3 bucket has Block Public Access with IgnorePublicAcls and RestrictPublicBuckets enabled at bucket or account level

s3_bucket_level_public_access_block

Severityhigh
Services3
by Prowler

Amazon S3 buckets are evaluated for Block Public Access settings, ensuring ignore_public_acls and restrict_public_buckets are enabled at the bucket or account scope.

Account-wide protections, when present, are treated as effective for the bucket.

Risk

Absent S3 Block Public Access, public ACLs or broad policies can grant Internet or cross-account access.

  • Data disclosure (confidentiality)
  • Object overwrite or uploads (integrity)
  • Deletion or outages from misuse (availability)
Run this check with Prowler CLI

prowler aws --checks s3_bucket_level_public_access_block

Recommendation

Enable Block Public Access at account and bucket levels with block_public_acls, ignore_public_acls, block_public_policy, and restrict_public_buckets set to true. Apply least privilege and defense in depth. If public access is required, narrowly scope policies to fixed principals and conditions.

Remediation

CLI

aws s3api put-public-access-block --bucket <BUCKET_NAME> --public-access-block-configuration IgnorePublicAcls=true,RestrictPublicBuckets=true

Native IaC
Terraform
Other
  1. In AWS Console, open S3 and select the target bucket
  2. Go to Permissions > Block public access (bucket settings)
  3. Enable only:
    • Ignore public ACLs
    • Restrict public buckets
  4. Click Save changes
  5. (Alternatively, to apply account-wide) S3 > Account settings > Block Public Access: enable the same two options and Save

Source Code

Resource Type

AwsS3Bucket

References