lacework-global-50
2.1.5 Ensure that S3 Buckets are configured with 'Block public access (bucket settings)' (Automated)
Profile Applicability
• Level 1
Description
Amazon S3 provides Block public access (bucket settings)
and Block public access (account settings)
to help you manage public access to Amazon S3 resources. By default, S3 buckets and objects are created with public access disabled. However, an IAM principal with sufficient S3 permissions can enable public access at the bucket and/or object level. While enabled, Block public access (bucket settings)
prevents an individual bucket, and its contained objects, from becoming publicly accessible. Similarly, Block public access (account settings)
prevents all buckets, and contained objects, from becoming publicly accessible across the entire account.
Rationale
Amazon S3 Block public access (bucket settings)
prevents the accidental or malicious public exposure of data contained within the respective bucket(s).
Amazon S3 Block public access (account settings)
prevents the accidental or malicious public exposure of data contained within all buckets of the respective AWS account.
Whether blocking public access to all or some buckets is an organizational decision that should be based on data sensitivity, least privilege, and use case.
Impact
When you apply Block Public Access settings to an account, the settings apply to all AWS Regions globally. The settings might not take effect in all Regions immediately or simultaneously, but they eventually propagate to all Regions.
Audit
If utilizing Block Public Access (bucket settings)
From Console
- Login to AWS Management Console and open the Amazon S3 console using https://console.aws.amazon.com/s3/
- Select the Check box next to the Bucket.
- Click on 'Edit public access settings'.
- Ensure that block public access settings are set appropriately for this bucket
- Repeat for all the buckets in your AWS account.
From Command Line
- List all of the S3 Buckets
aws s3 ls
- Find the public access setting on that bucket
aws s3api get-public-access-block --bucket <name-of-the-bucket>
Output if Block Public access is enabled:
{
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": true,
"IgnorePublicAcls": true,
"BlockPublicPolicy": true,
"RestrictPublicBuckets": true
}
}
If the output reads false
for the separate configuration settings then proceed to the remediation.
If utilizing Block Public Access (account settings)
From Console
- Login to AWS Management Console and open the Amazon S3 console using https://console.aws.amazon.com/s3/
- Choose
Block public access (account settings)
- Ensure that block public access settings are set appropriately for your AWS account.
From Command Line
To check Public access settings for this account status, run the following command,
aws s3control get-public-access-block --account-id <ACCT_ID> --region <REGION_NAME>
Output if Block Public access is enabled:
{
"PublicAccessBlockConfiguration": {
"IgnorePublicAcls": true,
"BlockPublicPolicy": true,
"BlockPublicAcls": true,
"RestrictPublicBuckets": true
}
}
If the output reads false
for the separate configuration settings then proceed to the remediation.
Remediation
If utilizing Block Public Access (bucket settings)
From Console
- Login to AWS Management Console and open the Amazon S3 console using https://console.aws.amazon.com/s3/
- Select the Check box next to the Bucket.
- Click on 'Edit public access settings'.
- Click 'Block all public access'
- Repeat for all the buckets in your AWS account that contain sensitive data.
From Command Line
- List all of the S3 Buckets
aws s3 ls
- Set the Block Public Access to true on that bucket
aws s3api put-public-access-block --bucket <name-of-bucket> --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
If utilizing Block Public Access (account settings)
From Console
If the output reads true
for the separate configuration settings then it is set on the account.
- Login to AWS Management Console and open the Amazon S3 console using https://console.aws.amazon.com/s3/
- Choose
Block Public Access (account settings)
- Choose
Edit
to change the block public access settings for all the buckets in your AWS account - Choose the settings you want to change, and then choose
Save
. For details about each setting, pause on thei
icons. - When you're asked for confirmation, enter
confirm
. Then ClickConfirm
to save your changes.
From Command Line
To set Block Public access settings for this account, run the following command:
aws s3control put-public-access-block
--public-access-block-configuration BlockPublicAcls=true, IgnorePublicAcls=true, BlockPublicPolicy=true, RestrictPublicBuckets=true
--account-id <value>
References
https://docs.aws.amazon.com/AmazonS3/latest/user-guide/block-public-access-account.html