@@ -71,6 +71,70 @@ data "aws_iam_policy_document" "s3_rules_bucket_policy" {
7171 }
7272}
7373
74+ # ensure only secure transport is allowed
75+
76+ resource "aws_s3_bucket_policy" "rules_s3_bucket" {
77+ bucket = module. s3_rules_bucket . storage_bucket_id
78+ policy = data. aws_iam_policy_document . rules_s3_bucket_policy . json
79+ }
80+
81+ data "aws_iam_policy_document" "rules_s3_bucket_policy" {
82+ statement {
83+ sid = " AllowSslRequestsOnly"
84+ actions = [
85+ " s3:*" ,
86+ ]
87+ effect = " Deny"
88+ resources = [
89+ module . s3_rules_bucket . storage_bucket_arn ,
90+ " ${ module . s3_rules_bucket . storage_bucket_arn } /*" ,
91+ ]
92+ principals {
93+ type = " *"
94+ identifiers = [" *" ]
95+ }
96+ condition {
97+ test = " Bool"
98+ values = [
99+ " false" ,
100+ ]
101+
102+ variable = " aws:SecureTransport"
103+ }
104+ }
105+ }
106+
107+ resource "aws_s3_bucket_policy" "audit_s3_bucket" {
108+ bucket = module. s3_audit_bucket . storage_bucket_id
109+ policy = data. aws_iam_policy_document . audit_s3_bucket_policy . json
110+ }
111+
112+ data "aws_iam_policy_document" "audit_s3_bucket_policy" {
113+ statement {
114+ sid = " AllowSslRequestsOnly"
115+ actions = [
116+ " s3:*" ,
117+ ]
118+ effect = " Deny"
119+ resources = [
120+ module . s3_audit_bucket . storage_bucket_arn ,
121+ " ${ module . s3_audit_bucket . storage_bucket_arn } /*" ,
122+ ]
123+ principals {
124+ type = " *"
125+ identifiers = [" *" ]
126+ }
127+ condition {
128+ test = " Bool"
129+ values = [
130+ " false" ,
131+ ]
132+
133+ variable = " aws:SecureTransport"
134+ }
135+ }
136+ }
137+
74138# Attach s3 read policy to Lambda role
75139resource "aws_iam_role_policy" "lambda_s3_read_policy" {
76140 name = " S3ReadAccess"
@@ -216,7 +280,7 @@ data "aws_iam_policy_document" "s3_rules_kms_key_policy" {
216280}
217281
218282resource "aws_kms_key_policy" "s3_rules_kms_key" {
219- key_id = module. s3_rules_bucket . storage_bucket_kms_key_arn
283+ key_id = module. s3_rules_bucket . storage_bucket_kms_key_id
220284 policy = data. aws_iam_policy_document . s3_rules_kms_key_policy . json
221285}
222286
@@ -235,7 +299,6 @@ data "aws_iam_policy_document" "s3_audit_kms_key_policy" {
235299 actions = [" kms:*" ]
236300 resources = [" *" ]
237301 }
238-
239302 statement {
240303 sid = " AllowLambdaFullWrite"
241304 effect = " Allow"
@@ -254,7 +317,7 @@ data "aws_iam_policy_document" "s3_audit_kms_key_policy" {
254317}
255318
256319resource "aws_kms_key_policy" "s3_audit_kms_key" {
257- key_id = module. s3_audit_bucket . storage_bucket_kms_key_arn
320+ key_id = module. s3_audit_bucket . storage_bucket_kms_key_id
258321 policy = data. aws_iam_policy_document . s3_audit_kms_key_policy . json
259322}
260323
@@ -277,9 +340,3 @@ resource "aws_iam_role_policy" "lambda_firehose_policy" {
277340 role = aws_iam_role. eligibility_lambda_role . id
278341 policy = data. aws_iam_policy_document . lambda_firehose_write_policy . json
279342}
280-
281-
282-
283-
284-
285-
0 commit comments