Skip to content

Instantly share code, notes, and snippets.

@talentdeficit
Last active April 20, 2020 03:42
Show Gist options
  • Save talentdeficit/968510a3f5e1e969ae7e96685a10fe9b to your computer and use it in GitHub Desktop.
Save talentdeficit/968510a3f5e1e969ae7e96685a10fe9b to your computer and use it in GitHub Desktop.
kms
resource "aws_kms_key" "key" {
description = "${var.cluster_name} internal authentication key"
}
data "aws_iam_policy_document" "generate_data_key_permissions" {
statement {
actions = ["kms:GenerateDataKey"]
resources = ["${aws_kms_key.key.arn}"]
}
}
resource "aws_iam_policy" "generate_data_key_permissions" {
name = "${var.cluster_name}-generate-data-key-policy"
path = "/"
description = "allow kms:GenerateDataKey"
policy = data.aws_iam_policy_document.generate_data_key_permissions.json
}
data "aws_iam_policy_document" "decrypt_permissions" {
statement {
actions = ["kms:Decrypt"]
resources = ["${aws_kms_key.key.arn}"]
}
}
resource "aws_iam_policy" "decrypt_data_key_permissions" {
name = "${var.cluster_name}-decrypt-data-key-policy"
path = "/"
description = "allow kms:Decrypt"
policy = data.aws_iam_policy_document.decrypt_permissions.json
}
output "kms_key_arn" {
value = aws_kms_key.key.arn
}
output "kms_generate_data_key_policy_arn" {
value = aws_iam_policy.generate_data_key_permissions.arn
}
output "kms_decrypt_policy_arn" {
value = aws_iam_policy.decrypt_data_key_permissions.arn
}
provider "aws" {
region = "us-east-2"
}
module "kms" {
source = "../../modules/kms"
cluster_name = "test1"
}
variable "cluster_name" {
description = "the cluster this key belongs to"
type = string
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment