s3.tf 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. resource "aws_s3_bucket" "tfstate" {
  2. bucket = var.bucket_name
  3. acl = "private"
  4. depends_on = [ var.module_depends_on ]
  5. versioning {
  6. enabled = true
  7. }
  8. # FIXME: Does this keep a cross-account dependency?
  9. #logging {
  10. #target_bucket = "dps-s3-logs"
  11. #target_prefix = "aws_terraform_s3_state_access_logs/"
  12. #}
  13. lifecycle_rule {
  14. enabled = true
  15. prefix = ""
  16. abort_incomplete_multipart_upload_days = 7
  17. noncurrent_version_transition {
  18. days = 30
  19. storage_class = "STANDARD_IA"
  20. }
  21. noncurrent_version_expiration {
  22. days = 730
  23. }
  24. }
  25. server_side_encryption_configuration {
  26. rule {
  27. apply_server_side_encryption_by_default {
  28. kms_master_key_id = aws_kms_key.tfstate.arn
  29. sse_algorithm = "aws:kms"
  30. }
  31. }
  32. }
  33. }
  34. resource "aws_s3_bucket_public_access_block" "tfstate" {
  35. bucket = aws_s3_bucket.tfstate.id
  36. block_public_acls = true
  37. block_public_policy = true
  38. ignore_public_acls = true
  39. restrict_public_buckets = true
  40. }