123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- data "aws_iam_policy_document" "key" {
- statement {
- actions = ["kms:*"]
- effect = "Allow"
- resources = ["*"]
- principals {
- type = "AWS"
- identifiers = ["arn:${local.partition}:iam::${local.account_id}:root"]
- }
- }
- statement {
- actions = ["kms:GenerateDataKey*"]
- effect = "Allow"
- resources = ["*"]
- condition {
- test = "StringLike"
- variable = "kms:EncryptionContext:aws:cloudtrail:arn"
- values = local.kms_key_encrypt_resources
- }
- principals {
- type = "Service"
- identifiers = ["cloudtrail.amazonaws.com"]
- }
- }
- statement {
- actions = [
- "kms:Encrypt*",
- "kms:Decrypt*",
- "kms:ReEncrypt*",
- "kms:GenerateDataKey*",
- "kms:Describe*",
- ]
- effect = "Allow"
- resources = ["*"]
- principals {
- type = "Service"
- identifiers = ["logs.${var.region}.amazonaws.com"]
- }
- }
- statement {
- actions = ["kms:Describe*"]
- effect = "Allow"
- resources = ["*"]
- principals {
- type = "Service"
- identifiers = ["cloudtrail.amazonaws.com"]
- }
- }
- }
- resource "aws_kms_key" "this" {
- deletion_window_in_days = 7
- description = "CloudTrail Encryption Key"
- enable_key_rotation = true
- policy = data.aws_iam_policy_document.key.json
- tags = merge(
- {
- "Name" = "cloudtrail-key"
- },
- var.tags
- )
- }
- resource "aws_kms_alias" "this" {
- name = "alias/cloudtrail_key"
- target_key_id = aws_kms_key.this.id
- }
|