Skip to content

Commit 88e5ba4

Browse files
committed
When adding versioning, add a lifecycle to remove old versions.
1 parent 0369afb commit 88e5ba4

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

tools/storage-advisor/src/s3Issues.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,29 @@ resource "aws_s3_bucket_versioning" "{{ .BucketResourceName }}" {
315315
status = "Enabled"
316316
}
317317
}
318+
resource "aws_s3_bucket_lifecycle_configuration" "{{ .BucketResourceName }}" {
319+
bucket = "{{ .Bucket }}"
320+
rule {
321+
id = "remove old versions"
322+
status = "Enabled"
323+
324+
// Usually, two weeks are enough to detect any data corruption or
325+
// unplanned deletions. After that, expire old versions
326+
noncurrent_version_expiration {
327+
noncurrent_days = 14
328+
}
329+
330+
// Expire delete marker after non-current versions have expired
331+
expiration {
332+
expired_object_delete_marker = true
333+
}
334+
335+
// Remove left-over objects from multi-part uploads that were not completed
336+
abort_incomplete_multipart_upload {
337+
days_after_initiation = 1
338+
}
339+
}
340+
}
318341
`
319342
results := make([]Finding, 0, len(buckets))
320343
for i := range buckets {

0 commit comments

Comments
 (0)