S3 bucket allows public policy This product is not supported for your selected
Datadog site . (
).
Id: terraform-aws-s3-bucket-with-public-policy
Provider: AWS
Platform: Terraform
Severity: High
Category: Access Control
Learn More Description S3 buckets should block public policies to prevent unauthorized access to bucket contents. When the block_public_policy attribute is set to false or not defined in the aws_s3_bucket_public_access_block resource, attackers could potentially attach public policies to the bucket, exposing sensitive data to the internet. To secure your S3 bucket, ensure that block_public_policy is set to true, as shown in the following example:
resource "aws_s3_bucket_public_access_block" "example" {
bucket = aws_s3_bucket . example . id
block_public_acls = true
block_public_policy = true
ignore_public_acls = false
}
Compliant Code Examples resource "aws_s3_bucket" "negative1" {
bucket = "example"
}
resource "aws_s3_bucket_public_access_block" "negative2" {
bucket = aws_s3_bucket . example . id
block_public_acls = true
block_public_policy = true
ignore_public_acls = false
}
module "s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "3.7.0"
bucket = "my-s3-bucket"
acl = "private"
restrict_public_buckets = true
block_public_acls = true
block_public_policy = true
versioning = {
enabled = true
}
policy = < < POLICY
{
"Version" : "2012-10-17" ,
"Id" : "MYBUCKETPOLICY" ,
"Statement" : [
{
"Sid" : "IPAllow" ,
"Effect" : "Deny" ,
"Action" : "s3:*" ,
"Resource" : "arn:aws:s3:::my_tf_test_bucket/*" ,
"Condition" : {
"IpAddress" : { "aws:SourceIp" : "8.8.8.8/32" }
}
}
]
}
POLICY
}
Non-Compliant Code Examples resource "aws_s3_bucket" "positive1" {
bucket = "example"
}
resource "aws_s3_bucket_public_access_block" "positive2" {
bucket = aws_s3_bucket . example . id
block_public_acls = true
block_public_policy = false
ignore_public_acls = false
}
// comment
// comment
// comment
// comment
// comment
resource "aws_s3_bucket_public_access_block" "positive3" {
bucket = aws_s3_bucket . example . id
block_public_acls = true
ignore_public_acls = false
}
module "s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "3.7.0"
bucket = "my-s3-bucket"
acl = "private"
restrict_public_buckets = true
block_public_acls = true
block_public_policy = false
versioning = {
enabled = true
}
policy = < < POLICY
{
"Version" : "2012-10-17" ,
"Id" : "MYBUCKETPOLICY" ,
"Statement" : [
{
"Sid" : "IPAllow" ,
"Effect" : "Deny" ,
"Action" : "s3:*" ,
"Resource" : "arn:aws:s3:::my_tf_test_bucket/*" ,
"Condition" : {
"IpAddress" : { "aws:SourceIp" : "8.8.8.8/32" }
}
}
]
}
POLICY
}
module "s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "3.7.0"
bucket = "my-s3-bucket"
acl = "private"
restrict_public_buckets = true
block_public_acls = true
versioning = {
enabled = true
}
policy = < < POLICY
{
"Version" : "2012-10-17" ,
"Id" : "MYBUCKETPOLICY" ,
"Statement" : [
{
"Sid" : "IPAllow" ,
"Effect" : "Deny" ,
"Action" : "s3:*" ,
"Resource" : "arn:aws:s3:::my_tf_test_bucket/*" ,
"Condition" : {
"IpAddress" : { "aws:SourceIp" : "8.8.8.8/32" }
}
}
]
}
POLICY
}