Skip to content

Commit 1413b02

Browse files
committed
CCM-11586: secure logging bucket
1 parent f02cafc commit 1413b02

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

infrastructure/terraform/components/api/s3_bucket_logging.tf

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,43 @@ resource "aws_s3_bucket" "logging" {
33
tags = merge(local.default_tags, { "Enable-Backup" = var.enable_backups }, { "Enable-S3-Continuous-Backup" = var.enable_backups }, { "SKIP_S3_AUDIT" = "true" })
44
}
55

6+
resource "aws_s3_bucket_ownership_controls" "logging" {
7+
bucket = aws_s3_bucket.logging.id
8+
9+
rule {
10+
object_ownership = "BucketOwnerPreferred"
11+
}
12+
}
13+
14+
resource "aws_s3_bucket_server_side_encryption_configuration" "logging" {
15+
bucket = aws_s3_bucket.logging.id
16+
17+
rule {
18+
apply_server_side_encryption_by_default {
19+
sse_algorithm = "aws:kms"
20+
kms_master_key_id = module.kms.key_id
21+
}
22+
bucket_key_enabled = true
23+
}
24+
}
25+
26+
resource "aws_s3_bucket_public_access_block" "logging" {
27+
depends_on = [
28+
aws_s3_bucket_policy.logging
29+
]
30+
31+
bucket = aws_s3_bucket.logging.id
32+
33+
block_public_acls = true
34+
block_public_policy = true
35+
ignore_public_acls = true
36+
restrict_public_buckets = true
37+
}
38+
39+
###
40+
# Bucket logging definitions past here
41+
###
42+
643
resource "aws_s3_bucket_logging" "truststore" {
744
bucket = aws_s3_bucket.truststore.id
845

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
resource "aws_s3_bucket_policy" "logging" {
2+
bucket = aws_s3_bucket.logging.id
3+
policy = data.aws_iam_policy_document.logging.json
4+
}
5+
6+
data "aws_iam_policy_document" "logging" {
7+
statement {
8+
effect = "Deny"
9+
actions = ["s3:*"]
10+
resources = [
11+
aws_s3_bucket.logging.arn,
12+
"${aws_s3_bucket.logging.arn}/*",
13+
]
14+
15+
principals {
16+
type = "AWS"
17+
identifiers = ["*"]
18+
}
19+
20+
condition {
21+
test = "Bool"
22+
variable = "aws:SecureTransport"
23+
values = [
24+
false
25+
]
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)