File tree Expand file tree Collapse file tree 3 files changed +39
-14
lines changed
Expand file tree Collapse file tree 3 files changed +39
-14
lines changed Original file line number Diff line number Diff line change @@ -44,7 +44,8 @@ module "landing_zone" {
4444 local . share_kms_key_with_housing_reporting_role ,
4545 local . share_kms_key_with_academy_account
4646 ]
47- include_backup_policy_tags = false
47+ include_backup_policy_tags = false
48+ expired_object_delete_marker = true
4849}
4950
5051module "raw_zone" {
Original file line number Diff line number Diff line change @@ -156,3 +156,9 @@ variable "include_backup_policy_tags" {
156156 type = bool
157157 default = true
158158}
159+
160+ variable "expired_object_delete_marker" {
161+ description = " Whether to delete expired object delete markers. Only applies to versioned buckets."
162+ type = bool
163+ default = false
164+ }
Original file line number Diff line number Diff line change @@ -167,27 +167,45 @@ resource "aws_s3_bucket_versioning" "bucket" {
167167}
168168
169169resource "aws_s3_bucket_lifecycle_configuration" "bucket" {
170- count = var. expire_objects_days != null ? 1 : 0
170+ count = ( var. expire_objects_days != null || var . expired_object_delete_marker ) ? 1 : 0
171171 bucket = aws_s3_bucket. bucket . id
172172
173- rule {
174- id = " expire-older-objects"
175- status = " Enabled"
173+ # Rule for expiring objects by days
174+ dynamic "rule" {
175+ for_each = var. expire_objects_days != null ? [1 ] : []
176+ content {
177+ id = " expire-older-objects"
178+ status = " Enabled"
176179
177- filter {}
180+ filter {}
178181
179- expiration {
180- days = var. expire_objects_days
181- }
182+ expiration {
183+ days = var. expire_objects_days
184+ }
182185
183- noncurrent_version_expiration {
184- noncurrent_days = var. expire_noncurrent_objects_days
185- }
186+ noncurrent_version_expiration {
187+ noncurrent_days = var. expire_noncurrent_objects_days
188+ }
186189
187- abort_incomplete_multipart_upload {
188- days_after_initiation = var. abort_multipart_days
190+ abort_incomplete_multipart_upload {
191+ days_after_initiation = var. abort_multipart_days
192+ }
189193 }
194+ }
195+
196+ # Rule for deleting expired object delete markers
197+ dynamic "rule" {
198+ for_each = var. expired_object_delete_marker ? [1 ] : []
199+ content {
200+ id = " delete-expired-delete-markers"
201+ status = " Enabled"
190202
203+ filter {}
204+
205+ expiration {
206+ expired_object_delete_marker = true
207+ }
208+ }
191209 }
192210}
193211
You can’t perform that action at this time.
0 commit comments