# S3 Bucket for Backups resource "aws_s3_bucket" "backups" { bucket = "${var.project_name}-backups" force_destroy = true tags = { Name = "${var.project_name}-backups" } } resource "aws_s3_bucket_versioning" "backups" { bucket = aws_s3_bucket.backups.id versioning_configuration { status = "Enabled" } } resource "aws_s3_bucket_server_side_encryption_configuration" "backups" { bucket = aws_s3_bucket.backups.id rule { apply_server_side_encryption_by_default { sse_algorithm = "AES256" } } } resource "aws_s3_bucket_lifecycle_configuration" "backups" { bucket = aws_s3_bucket.backups.id rule { id = "backup-retention" status = "Enabled" filter { prefix = "backups/" } transition { days = 30 storage_class = "GLACIER" } expiration { days = 90 } noncurrent_version_expiration { noncurrent_days = 30 } } }