Skip to content

Commit f0f30d1

Browse files
authored
[NDR-343] Allow workspaces to access SSM parameters belonging to the persistent workspace for that environment. (#551)
1 parent 344e0bf commit f0f30d1

File tree

6 files changed

+23
-3
lines changed

6 files changed

+23
-3
lines changed

infrastructure/main.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,12 @@ data "aws_ssm_parameter" "apim_url" {
7979
name = "/repo/${var.environment}/user-input/apim-api-url"
8080
}
8181

82+
data "terraform_remote_state" "shared" {
83+
backend = "s3"
84+
85+
config = {
86+
bucket = local.shared_terraform_state_bucket
87+
key = "env:/${var.shared_infra_workspace}/ndr/terraform.tfstate"
88+
region = "eu-west-2"
89+
}
90+
}

infrastructure/policies.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ resource "aws_iam_policy" "mtls_access_ssm_policy" {
121121
"kms:Decrypt",
122122
],
123123
Resource = [
124-
module.pdm_encryption_key.kms_arn
124+
local.common_name_kms_key_arn
125125
]
126126
}
127127
]

infrastructure/preprod.tfvars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
environment = "pre-prod"
2+
shared_infra_workspace = "pre-prod"
23
owner = "nhse/ndr-team"
34
domain = "national-document-repository.nhs.uk"
45
certificate_domain = "pre-prod.national-document-repository.nhs.uk"

infrastructure/prod.tfvars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
environment = "prod"
2+
shared_infra_workspace = "prod"
23
owner = "nhse/ndr-team"
34
domain = "national-document-repository.nhs.uk"
45
certificate_domain = "national-document-repository.nhs.uk"

infrastructure/test.tfvars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
environment = "test"
2+
shared_infra_workspace = "ndr-test"
23
owner = "nhse/ndr-team"
34
domain = "access-request-fulfilment.patient-deductions.nhs.uk"
45
certificate_domain = "ndr-test.access-request-fulfilment.patient-deductions.nhs.uk"

infrastructure/variable.tf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,10 @@ locals {
274274

275275
apim_api_url = "https://${var.apim_environment}api.service.nhs.uk/national-document-repository/FHIR/R4"
276276

277-
truststore_bucket_id = local.is_sandbox ? "ndr-dev-${var.truststore_bucket_name}" : module.ndr-truststore[0].bucket_id
278-
truststore_uri = "s3://${local.truststore_bucket_id}/${var.ca_pem_filename}"
277+
truststore_bucket_id = local.is_sandbox ? "ndr-dev-${var.truststore_bucket_name}" : module.ndr-truststore[0].bucket_id
278+
truststore_uri = "s3://${local.truststore_bucket_id}/${var.ca_pem_filename}"
279+
shared_terraform_state_bucket = "ndr-${var.environment}-terraform-state-${data.aws_caller_identity.current.account_id}"
280+
common_name_kms_key_arn = local.is_sandbox ? data.terraform_remote_state.shared.outputs.pdm_kms_key_arn : module.pdm_encryption_key.kms_arn
279281
}
280282

281283
variable "nrl_api_endpoint_suffix" {
@@ -321,3 +323,9 @@ variable "ssh_key_management_dry_run" {
321323
type = bool
322324
default = false
323325
}
326+
327+
variable "shared_infra_workspace" {
328+
description = "Workspace that owns shared infra like SSM and KMS"
329+
type = string
330+
default = "ndr-dev"
331+
}

0 commit comments

Comments
 (0)