AWS Security Hub · S3
S3.24: A Multi-Region Access Point can expose data publicly
Written and reviewed by Emnode · Last reviewed
What does AWS Security Hub S3.24 check?
S3.24 checks that all four Block Public Access settings are enabled on each S3 Multi-Region Access Point. It reports FAILED if any of BlockPublicAcls, IgnorePublicAcls, BlockPublicPolicy or RestrictPublicBuckets is disabled on the MRAP.
Why does S3.24 matter?
An MRAP concentrates access to buckets across several Regions behind one endpoint, so a weakened BPA setting there can expose data globally through a single point — hence the Critical rating. Like ordinary access points, MRAP block-public-access settings are enabled by default and cannot be changed after creation, so a non-compliant MRAP reflects a deliberate creation-time choice.
How do I fix S3.24?
- List MRAPs and read each one's PublicAccessBlock configuration.
- Lock down the underlying buckets first with bucket-level Block Public Access.
- Because MRAP BPA is immutable, delete and recreate the MRAP with all four settings enabled, then cut traffic over.
- Enforce account-level BPA and an SCP so the finding cannot return.
Remediation script · bash
# Close the highest-impact public exposure first: databases.
for db in $(aws rds describe-db-instances \
--query 'DBInstances[?PubliclyAccessible==`true`].DBInstanceIdentifier' --output text); do
aws rds modify-db-instance --db-instance-identifier "$db" \
--no-publicly-accessible --apply-immediately
echo "$db: public access removed"
done
# Ratchet S3 shut at the account level so no bucket can be made public again.
aws s3control put-public-access-block --account-id 123456789012 \
--public-access-block-configuration \
'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true' Full walkthrough (console steps, edge cases and verification) in the lesson Block public access to AWS resources.
Is S3.24 a false positive?
There is no flag to flip — MRAP BPA settings are immutable after creation, so the only fix is delete-and-recreate, not an edit.
More S3 controls
- S3.1 Account-level S3 public access is not fully blocked
- S3.2 Public S3 buckets expose data to anyone on the internet
- S3.3 Buckets can be written to by anyone on the internet
- S3.5 S3 is accepting unencrypted HTTP requests
- S3.6 Bucket policy grants broad access to other AWS accounts
- S3.8 Buckets can still be made public; Block Public Access is off
- S3.9 No S3 access logs, so reads and writes go unaudited
- S3.10 Versioned buckets should have lifecycle configurations
- S3.11 Buckets should have event notifications enabled
- S3.12 ACLs should not be used to manage bucket access
- S3.13 Buckets have no lifecycle rules and grow forever
- S3.15 Buckets should have Object Lock enabled