Skip to content

Commit b1bb98a

Browse files
committed
Merge branch 'feature/CCM-9037_internal-bucket' into feature/CCM-8585-upload-pdf-backend-squash
2 parents 239f4c6 + b27b4b9 commit b1bb98a

17 files changed

+75
-33
lines changed

infrastructure/terraform/components/acct/module_s3bucket_access_logs.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ data "aws_iam_policy_document" "s3bucket_access_logs" {
9292
]
9393

9494
resources = [
95-
module.s3bucket_lambda_artefacts.arn,
95+
module.s3bucket_access_logs.arn,
9696
]
9797

9898
principals {
@@ -112,7 +112,7 @@ data "aws_iam_policy_document" "s3bucket_access_logs" {
112112
]
113113

114114
resources = [
115-
"${module.s3bucket_lambda_artefacts.arn}/*",
115+
"${module.s3bucket_access_logs.arn}/*",
116116
]
117117

118118
principals {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module "kms_sandbox" {
2+
source = "git::https://github.com/NHSDigital/nhs-notify-shared-modules.git//infrastructure/modules/kms?ref=v1.0.8"
3+
4+
count = var.support_sandbox_environments ? 1 : 0
5+
6+
aws_account_id = var.aws_account_id
7+
component = var.component
8+
environment = var.environment
9+
project = var.project
10+
region = var.region
11+
12+
name = "sandbox"
13+
deletion_window = var.kms_deletion_window
14+
alias = "alias/${local.csi}-sandbox"
15+
}

infrastructure/terraform/components/acct/variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,15 @@ variable "initial_cli_secrets_provision_override" {
7070
# Usage like:
7171
# ... -a apply -- -var initial_cli_secrets_provision_override={\"github_pat\":\"l0ngstr1ng"}
7272
}
73+
74+
variable "kms_deletion_window" {
75+
type = string
76+
description = "When a kms key is deleted, how long should it wait in the pending deletion state?"
77+
default = "30"
78+
}
79+
80+
variable "support_sandbox_environments" {
81+
type = bool
82+
description = "Does this account support dev sandbox environments?"
83+
default = false
84+
}

infrastructure/terraform/components/app/module_backend_api.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ module "backend_api" {
1818
enable_backup = var.destination_vault_arn != null ? true : false
1919

2020
enable_letters = var.enable_letters
21+
22+
kms_key_arn = module.kms.key_arn
2123
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
data "aws_kms_key" "sandbox" {
2+
key_id = "${var.project}-main-acct-sandbox"
3+
}

infrastructure/terraform/components/sandbox/module_backend_api.tf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,18 @@ module "backend_api" {
66
aws_account_id = var.aws_account_id
77
region = var.region
88
group = var.group
9+
component = var.component
910
csi = local.csi
1011
log_retention_in_days = var.log_retention_in_days
1112

12-
shared_kms_key_arn = module.kms.key_arn
1313

1414
cognito_config = {
1515
USER_POOL_ID = aws_cognito_user_pool.sandbox.id
1616
USER_POOL_CLIENT_ID = aws_cognito_user_pool_client.sandbox.id
1717
}
1818

1919
enable_letters = true
20+
21+
kms_key_arn = data.aws_kms_key.sandbox.arn
22+
dynamodb_kms_key_arn = data.aws_kms_key.sandbox.arn
2023
}

infrastructure/terraform/modules/backend-api/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ No requirements.
1717
| <a name="input_enable_letters"></a> [enable\_letters](#input\_enable\_letters) | Enable letters feature flag | `bool` | n/a | yes |
1818
| <a name="input_environment"></a> [environment](#input\_environment) | The name of the tfscaffold environment | `string` | n/a | yes |
1919
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonmous with account short-name) | `string` | n/a | yes |
20+
| <a name="input_kms_key_arn"></a> [kms\_key\_arn](#input\_kms\_key\_arn) | KMS Key ARN | `string` | n/a | yes |
2021
| <a name="input_log_retention_in_days"></a> [log\_retention\_in\_days](#input\_log\_retention\_in\_days) | The retention period in days for the Cloudwatch Logs events to be retained, default of 0 is indefinite | `number` | `0` | no |
2122
| <a name="input_project"></a> [project](#input\_project) | The name of the tfscaffold project | `string` | n/a | yes |
2223
| <a name="input_region"></a> [region](#input\_region) | The AWS Region | `string` | n/a | yes |

infrastructure/terraform/modules/backend-api/dynamodb_table_templates.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ resource "aws_dynamodb_table" "templates" {
2626

2727
server_side_encryption {
2828
enabled = true
29-
kms_key_arn = aws_kms_key.dynamo.arn
29+
kms_key_arn = local.dynamodb_kms_key_arn
3030
}
3131

32-
tags = {
33-
"NHSE-Enable-Dynamo-Backup" = var.enable_backup ? "True": "False"
34-
}
32+
tags = {
33+
"NHSE-Enable-Dynamo-Backup" = var.enable_backup ? "True" : "False"
34+
}
3535

3636
lifecycle {
3737
ignore_changes = [

infrastructure/terraform/modules/backend-api/kms_key_dynamo.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
resource "aws_kms_key" "dynamo" {
2+
count = var.dynamodb_kms_key_arn == "" ? 1 : 0
23
description = "CMK for encrypting dynamodb data"
34
deletion_window_in_days = 14
45
enable_key_rotation = true

infrastructure/terraform/modules/backend-api/locals.tf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
locals {
2-
csi = "${var.csi}-${var.component}"
2+
csi = "${var.csi}-${var.component}"
33

44
lambdas_source_code_dir = abspath("${path.module}/../../../../lambdas")
55

@@ -22,4 +22,6 @@ locals {
2222
list_template = "src/templates/list.ts"
2323
template_client = "src/index.ts"
2424
}
25+
26+
dynamodb_kms_key_arn = var.dynamodb_kms_key_arn == "" ? aws_kms_key.dynamo[0].arn : var.dynamodb_kms_key_arn
2527
}

0 commit comments

Comments
 (0)