Skip to content

Commit 7921a8b

Browse files
committed
construct bucket name outside mod
1 parent 86752e2 commit 7921a8b

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
locals {
22
csi = "${var.csi}-${var.module}"
33

4+
csi_global = replace(
5+
format(
6+
"%s-%s-%s-%s-%s",
7+
var.project,
8+
var.aws_account_id,
9+
var.region,
10+
var.environment,
11+
var.component,
12+
),
13+
"_",
14+
"",
15+
)
16+
417
repo_root = abspath("${path.module}/../../../..")
518
lambdas_source_code_dir = abspath("${local.repo_root}/lambdas")
619
pdfjs_layer_zip = abspath("${local.lambdas_source_code_dir}/layers/pdfjs/dist/layer/pdfjs-layer.zip")

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1+
locals {
2+
# required to avoid a circular dependency between policy and bucket
3+
download_bucket_name = "download"
4+
download_bucket_arn = "arn:aws:s3:::${local.csi_global}-${download_bucket_name}"
5+
}
6+
17
module "s3bucket_download" {
28
source = "git::https://github.com/NHSDigital/nhs-notify-shared-modules.git//infrastructure/modules/s3bucket?ref=v2.0.2"
39

4-
name = "download"
10+
name = local.download_bucket_name
511

612
aws_account_id = var.aws_account_id
713
region = var.region
@@ -11,9 +17,7 @@ module "s3bucket_download" {
1117

1218
kms_key_arn = var.kms_key_arn
1319

14-
policy_documents = flatten([
15-
var.cloudfront_distribution_arn != null ? [data.aws_iam_policy_document.s3bucket_download[0].json] : []
16-
])
20+
policy_documents = []
1721

1822
public_access = {
1923
block_public_acls = true
@@ -23,6 +27,12 @@ module "s3bucket_download" {
2327
}
2428
}
2529

30+
resource "aws_s3_bucket_policy" "download_bucket_policy" {
31+
count = var.cloudfront_distribution_arn != null ? 1 : 0
32+
33+
bucket = module.s3bucket_download.id
34+
policy = data.aws_iam_policy_document.s3bucket_download[0].json
35+
}
2636

2737
data "aws_iam_policy_document" "s3bucket_download" {
2838
count = var.cloudfront_distribution_arn != null ? 1 : 0
@@ -36,8 +46,8 @@ data "aws_iam_policy_document" "s3bucket_download" {
3646
]
3747

3848
resources = [
39-
module.s3bucket_download.arn,
40-
"${module.s3bucket_download.arn}/*",
49+
local.download_bucket_arn,
50+
"${local.download_bucket_arn}/*",
4151
]
4252

4353
principals {

0 commit comments

Comments
 (0)