resource "aws_kms_key" "kms_key" {
  description = "KMS key to encrypt/decrypt sensitive values in ows-text-campaigns (e.g. Twilio API tokens)"

  enable_key_rotation     = true
  deletion_window_in_days = 30

  tags = module.default_tags.tags
}

resource "aws_kms_alias" "kms_key_alias" {
  name          = "alias/${var.environment}-${var.service_name}-key"
  target_key_id = aws_kms_key.kms_key.key_id
}

data "aws_iam_policy_document" "ows_text_campaigns_kms_policy_document" {
  statement {
    actions = [
      "kms:DescribeKey",
      "kms:Encrypt",
      "kms:Decrypt",
    ]

    resources = [
      aws_kms_key.kms_key.arn,
    ]
  }
}

resource "aws_iam_policy" "ows_text_campaigns_kms_policy" {
  name   = "KMS-${var.environment}-${var.service_name}-policy"
  policy = data.aws_iam_policy_document.ows_text_campaigns_kms_policy_document.json
}
