@@ -14,32 +14,6 @@ locals {
14
14
} : {}
15
15
}
16
16
17
- data "aws_caller_identity" "this" {}
18
- data "aws_canonical_user_id" "this" {}
19
-
20
- locals {
21
- cloudfront_canonical_user_id = " c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0"
22
-
23
- default_grants = [
24
- {
25
- type = " CanonicalUser"
26
- id = data.aws_canonical_user_id.this.id
27
- permissions = [" FULL_CONTROL" ]
28
- }
29
- ]
30
- cloudfront_grant = {
31
- type = " CanonicalUser"
32
- id = local.cloudfront_canonical_user_id
33
- permissions = [" FULL_CONTROL" ]
34
- }
35
-
36
- grants = concat (
37
- local. default_grants ,
38
- var. delivery_cloudfront_enabled ? [local . cloudfront_grant ] : [],
39
- var. grants
40
- )
41
- }
42
-
43
17
44
18
# ##################################################
45
19
# S3 Bucket for archive
@@ -50,24 +24,6 @@ resource "aws_s3_bucket" "this" {
50
24
bucket = var. name
51
25
force_destroy = var. force_destroy
52
26
53
- acceleration_status = var. transfer_acceleration_enabled ? " Enabled" : " Suspended"
54
-
55
- versioning {
56
- enabled = var. versioning_enabled
57
- mfa_delete = var. mfa_delete_enabled
58
- }
59
-
60
- dynamic "grant" {
61
- for_each = length (local. grants ) > 1 ? local. grants : []
62
-
63
- content {
64
- type = try (grant. value . type , null )
65
- id = try (grant. value . id , null )
66
- uri = try (grant. value . uri , null )
67
- permissions = try (grant. value . permissions , [])
68
- }
69
- }
70
-
71
27
dynamic "lifecycle_rule" {
72
28
for_each = var. lifecycle_rules
73
29
@@ -113,23 +69,6 @@ resource "aws_s3_bucket" "this" {
113
69
}
114
70
}
115
71
116
- dynamic "logging" {
117
- for_each = var. logging_s3_bucket != null ? [" go" ] : []
118
-
119
- content {
120
- target_bucket = var. logging_s3_bucket
121
- target_prefix = try (var. logging_s3_key_prefix , null )
122
- }
123
- }
124
-
125
- server_side_encryption_configuration {
126
- rule {
127
- apply_server_side_encryption_by_default {
128
- sse_algorithm = " AES256"
129
- }
130
- }
131
- }
132
-
133
72
tags = merge (
134
73
{
135
74
" Name" = local.metadata.name
@@ -141,58 +80,44 @@ resource "aws_s3_bucket" "this" {
141
80
142
81
143
82
# ##################################################
144
- # IAM Policy for S3 Bucket
83
+ # Server Side Encryption for S3 Bucket
145
84
# ##################################################
146
85
147
- data "aws_iam_policy_document" "this" {
148
- source_policy_documents = concat (
149
- var. tls_required ? [data . aws_iam_policy_document . tls_required . json ] : [],
150
- var. delivery_cloudtrail_enabled ? [data . aws_iam_policy_document . cloudtrail . json ] : [],
151
- var. delivery_config_enabled ? [data . aws_iam_policy_document . config . json ] : [],
152
- var. delivery_elb_enabled ? [data . aws_iam_policy_document . elb . json ] : [],
153
- )
154
- }
155
-
156
- resource "aws_s3_bucket_policy" "this" {
157
- bucket = aws_s3_bucket. this . id
158
- policy = data. aws_iam_policy_document . this . json
86
+ locals {
87
+ sse_algorithm = {
88
+ " AES256" = " AES256"
89
+ " AWS_KMS" = " aws:kms"
90
+ }
159
91
}
160
92
161
-
162
- # ##################################################
163
- # Object Ownership for S3 Bucket
164
- # ##################################################
165
-
166
- resource "aws_s3_bucket_ownership_controls" "this" {
167
- bucket = aws_s3_bucket. this . id
93
+ # TODO: `expected_bucket_owner`
94
+ # TODO: `bucket_key_enabled`
95
+ # TODO: `rule.apply_server_side_encryption_by_default.kms_master_key_id`
96
+ resource "aws_s3_bucket_server_side_encryption_configuration" "this" {
97
+ bucket = aws_s3_bucket. this . bucket
168
98
169
99
rule {
170
- object_ownership = var. object_ownership
100
+ apply_server_side_encryption_by_default {
101
+ sse_algorithm = local. sse_algorithm [" AES256" ]
102
+ }
171
103
}
172
104
}
173
105
174
106
175
107
# ##################################################
176
- # Public Access Block for S3 Bucket
108
+ # IAM Policy for S3 Bucket
177
109
# ##################################################
178
110
179
- resource "aws_s3_bucket_public_access_block" "this" {
180
- count = var. public_access_block_enabled ? 1 : 0
111
+ data "aws_iam_policy_document" "this" {
112
+ source_policy_documents = concat (
113
+ var. tls_required ? [data . aws_iam_policy_document . tls_required . json ] : [],
114
+ var. delivery_cloudtrail_enabled ? [data . aws_iam_policy_document . cloudtrail . json ] : [],
115
+ var. delivery_config_enabled ? [data . aws_iam_policy_document . config . json ] : [],
116
+ var. delivery_elb_enabled ? [data . aws_iam_policy_document . elb . json ] : [],
117
+ )
118
+ }
181
119
120
+ resource "aws_s3_bucket_policy" "this" {
182
121
bucket = aws_s3_bucket. this . id
183
-
184
- # Block new public ACLs and uploading public objects
185
- block_public_acls = true
186
- # Retroactively remove public access granted through public ACLs
187
- ignore_public_acls = true
188
- # Block new public bucket policies
189
- block_public_policy = true
190
- # Retroactivley block public and cross-account access if bucket has public policies
191
- restrict_public_buckets = true
192
-
193
- # To avoid OperationAborted: A conflicting conditional operation is currently in progress
194
- depends_on = [
195
- aws_s3_bucket . this ,
196
- aws_s3_bucket_policy . this ,
197
- ]
122
+ policy = data. aws_iam_policy_document . this . json
198
123
}
0 commit comments