crl.tf 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. resource "aws_s3_bucket" "crl" {
  2. provider = aws.common # COMMON SERVICES
  3. bucket = "xdr-subordinate-crl"
  4. # CRLs are small, but regenerated every expiration/2 days, (every 3.5 days by default), so there will be a good number of versions
  5. versioning {
  6. enabled = true
  7. }
  8. # TODO: Enable S3 logging... everywhere. We don't have a C2 bucket for this.
  9. #logging {
  10. # target_bucket = module.xdr_config_logging_bucket.s3_bucket_name
  11. # target_prefix = "${var.aws_account_id}-${var.aws_region}-awsconfig/"
  12. #}
  13. lifecycle_rule {
  14. id = "CleanUp"
  15. enabled = true
  16. abort_incomplete_multipart_upload_days = 7
  17. # Clean up old versions after a year
  18. noncurrent_version_expiration {
  19. days = 365
  20. }
  21. }
  22. server_side_encryption_configuration {
  23. rule {
  24. apply_server_side_encryption_by_default {
  25. sse_algorithm = "AES256" # Default keys are fine. We don't really need encryption here.
  26. }
  27. }
  28. }
  29. tags = merge(var.standard_tags, var.tags)
  30. }
  31. data "aws_iam_policy_document" "acmpca_bucket_access" {
  32. statement {
  33. actions = [
  34. "s3:GetBucketAcl",
  35. "s3:GetBucketLocation",
  36. "s3:PutObject",
  37. "s3:PutObjectAcl",
  38. ]
  39. resources = [
  40. aws_s3_bucket.crl.arn,
  41. "${aws_s3_bucket.crl.arn}/*",
  42. ]
  43. principals {
  44. identifiers = ["acm-pca.amazonaws.com"]
  45. type = "Service"
  46. }
  47. }
  48. }
  49. resource "aws_s3_bucket_policy" "crl" {
  50. provider = aws.common # COMMON SERVICES
  51. bucket = aws_s3_bucket.crl.id
  52. policy = data.aws_iam_policy_document.acmpca_bucket_access.json
  53. }
  54. # Publicly available CRL so clients can validate
  55. #resource "aws_s3_bucket_public_access_block" "crl_bucket_block_public_access" {
  56. # provider = aws.common # COMMON SERVICES
  57. # bucket = aws_s3_bucket.crl.id
  58. # block_public_acls = false # Not supported for CRLs, see https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-error-crl-acm-ca/
  59. # block_public_policy = true
  60. # ignore_public_acls = true
  61. # restrict_public_buckets = true
  62. # depends_on = [ aws_s3_bucket.crl ]
  63. #}