You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.8 KiB
HCL
72 lines
1.8 KiB
HCL
resource "aws_s3_bucket" "cloudtrail_bucket" {
|
|
bucket_prefix = "${var.prefix}-cloudtrail-"
|
|
acl = "private"
|
|
force_destroy = var.force_destroy_bucket
|
|
|
|
tags = var.tags
|
|
|
|
server_side_encryption_configuration {
|
|
rule {
|
|
apply_server_side_encryption_by_default {
|
|
sse_algorithm = "AES256"
|
|
}
|
|
}
|
|
}
|
|
|
|
lifecycle_rule {
|
|
id = "archive_glacier"
|
|
enabled = var.lifecycle_enabled
|
|
prefix = var.lifecycle_prefix
|
|
|
|
transition {
|
|
days = var.lifecycle_glacier_transition_days
|
|
storage_class = "GLACIER"
|
|
}
|
|
|
|
expiration {
|
|
days = var.lifecycle_object_expiration
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "aws_s3_bucket_policy" "cloudtrail_bucket_policy" {
|
|
bucket = aws_s3_bucket.cloudtrail_bucket.id
|
|
|
|
policy = <<POLICY
|
|
{
|
|
"Version": "2012-10-17",
|
|
"Statement": [
|
|
{
|
|
"Sid": "AWSCloudTrailAclCheck",
|
|
"Effect": "Allow",
|
|
"Principal": {
|
|
"Service": "cloudtrail.amazonaws.com"
|
|
},
|
|
"Action": "s3:GetBucketAcl",
|
|
"Resource": "${aws_s3_bucket.cloudtrail_bucket.arn}"
|
|
},
|
|
{
|
|
"Sid": "AWSCloudTrailWrite",
|
|
"Effect": "Allow",
|
|
"Principal": {
|
|
"Service": "cloudtrail.amazonaws.com"
|
|
},
|
|
"Action": "s3:PutObject",
|
|
"Resource": "${aws_s3_bucket.cloudtrail_bucket.arn}/*",
|
|
"Condition": {
|
|
"StringEquals": {
|
|
"s3:x-amz-acl": "bucket-owner-full-control"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
POLICY
|
|
}
|
|
|
|
resource "aws_cloudwatch_log_group" "cloudtrail_log_group" {
|
|
name = aws_s3_bucket.cloudtrail_bucket.id
|
|
retention_in_days = var.cloudwatch_log_retention
|
|
tags = var.tags
|
|
}
|