ebs-kms-key.tf 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. locals {
  2. # For the default EBS key, we allow the entire account access
  3. root_arn = "arn:${var.aws_partition}:iam::${var.aws_account_id}:root"
  4. }
  5. module "ebs_root_encrypt_decrypt" {
  6. source = "../../submodules/kms/ebs-key"
  7. name = "ebs_root_encrypt_decrypt"
  8. alias = "alias/ebs_root_encrypt_decrypt"
  9. description = "encrypt and decrypt root volume" # updated to match legacy
  10. tags = merge(local.standard_tags, var.tags)
  11. key_admin_arns = var.extra_ebs_key_admins
  12. key_user_arns = concat([local.root_arn], var.extra_ebs_key_users)
  13. key_attacher_arns = concat([local.root_arn], var.extra_ebs_key_attachers)
  14. standard_tags = local.standard_tags
  15. aws_account_id = var.aws_account_id
  16. aws_partition = var.aws_partition
  17. is_legacy = var.is_legacy
  18. depends_on = [aws_iam_service_linked_role.AWSServiceRoleForAutoScaling]
  19. }
  20. # Note: The following wasn't configured in tf11
  21. resource "aws_ebs_default_kms_key" "ebs_root_encrypt_decrypt" {
  22. key_arn = module.ebs_root_encrypt_decrypt.key_arn
  23. }
  24. resource "aws_ebs_encryption_by_default" "encryptbydefault" {
  25. enabled = true
  26. }
  27. resource "aws_kms_grant" "ASG_access_to_EBS_Default_CMK" {
  28. name = "ASG_access_to_EBS_Default_CMK"
  29. key_id = module.ebs_root_encrypt_decrypt.key_arn
  30. grantee_principal = aws_iam_service_linked_role.AWSServiceRoleForAutoScaling.arn
  31. operations = [
  32. "Decrypt",
  33. "Encrypt",
  34. "GenerateDataKey",
  35. "GenerateDataKeyWithoutPlaintext",
  36. "ReEncryptFrom",
  37. "ReEncryptTo",
  38. "CreateGrant",
  39. "RetireGrant",
  40. "DescribeKey",
  41. ]
  42. depends_on = [aws_iam_service_linked_role.AWSServiceRoleForAutoScaling]
  43. }