Skip to content

Commit 41d5b5c

Browse files
committed
NRL-693 add kms key encryption for sns topic
1 parent 0a0f7bc commit 41d5b5c

File tree

4 files changed

+41
-3
lines changed

4 files changed

+41
-3
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
resource "aws_iam_policy" "lambda-errors-topic-kms-read-write" {
2+
name = "${var.name_prefix}-lambda-errors-topic-kms-read-write"
3+
description = "Encrypt and decrypt with the lambda errors sns topic kms key"
4+
policy = jsonencode({
5+
Version = "2012-10-17"
6+
Statement = [
7+
{
8+
Action = [
9+
"kms:Decrypt",
10+
"kms:DescribeKey",
11+
"kms:Encrypt",
12+
"kms:GenerateDataKey"
13+
]
14+
Effect = "Allow"
15+
Resource = [
16+
aws_kms_key.lambda-errors-topic-key.arn
17+
]
18+
}
19+
]
20+
})
21+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
resource "aws_kms_key" "lambda-errors-topic-key" {
2+
description = "Lambda errors SNS topic table KMS key"
3+
deletion_window_in_days = var.kms_deletion_window_in_days
4+
5+
}
6+
7+
resource "aws_kms_alias" "lambda-errors-topic-alias" {
8+
name = "alias/${var.name_prefix}-lambda-errors-topic-table-key"
9+
target_key_id = aws_kms_key.lambda-errors-topic-key.key_id
10+
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
resource "aws_sns_topic" "sns_topic" {
2-
name = "${var.name_prefix}--lambda-errors-sns-topic"
2+
name = "${var.name_prefix}--lambda-errors-sns-topic"
3+
kms_master_key_id = aws_kms_key.lambda-errors-topic-key.key_id
34
}
45

56
resource "aws_sns_topic_subscription" "sns_subscription" {
6-
for_each = toset(data.aws_secretsmanager_secret_version.emails.secret_string)
7+
for_each = nonsensitive(toset(tolist(jsondecode(data.aws_secretsmanager_secret_version.emails.secret_string))))
78
topic_arn = aws_sns_topic.sns_topic.arn
89
protocol = "email"
9-
endpoint = each.value
10+
endpoint = sensitive(each.value)
1011
}

terraform/account-wide-infrastructure/modules/lambda-errors-metric-alarm/vars.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,9 @@ variable "name_prefix" {
5454
type = string
5555
description = "The prefix to apply to all resources in the module."
5656
}
57+
58+
variable "kms_deletion_window_in_days" {
59+
type = number
60+
description = "The duration in days after which the key is deleted after destruction of the resource."
61+
default = 7
62+
}

0 commit comments

Comments
 (0)