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+
17module "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
2737data "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