Skip to content

Commit b123d20

Browse files
CCM-10283: Fixes
1 parent 1a0f9a7 commit b123d20

File tree

16 files changed

+84
-23
lines changed

16 files changed

+84
-23
lines changed

infrastructure/terraform/components/acct/module_sandbox_kms.tf

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,40 @@ data "aws_iam_policy_document" "kms" {
5555
}
5656
}
5757

58+
statement {
59+
sid = "AllowSES"
60+
effect = "Allow"
61+
62+
principals {
63+
type = "Service"
64+
65+
identifiers = [
66+
"ses..amazonaws.com",
67+
]
68+
}
69+
70+
actions = [
71+
"kms:Encrypt*",
72+
"kms:Decrypt*",
73+
"kms:ReEncrypt*",
74+
"kms:GenerateDataKey*",
75+
"kms:Describe*"
76+
]
77+
78+
resources = [
79+
"*",
80+
]
81+
82+
condition {
83+
test = "ArnLike"
84+
variable = "aws:SourceArn"
85+
86+
values = [
87+
"arn:aws:ses:${var.region}:${var.aws_account_id}:receipt-rule-set:*",
88+
]
89+
}
90+
}
91+
5892
statement {
5993
sid = "AllowLogDeliveryEncrypt"
6094
effect = "Allow"

infrastructure/terraform/components/app/module_backend_api.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ module "backend_api" {
2828

2929
send_to_firehose = true
3030

31-
email_domain = local.root_domain_name
32-
ses_domain_identity_arns = module.ses.domain_identity_arns
31+
email_domain = module.ses.domain
3332

3433
mock_letter_supplier_name = local.mock_letter_supplier_name
3534
use_sftp_letter_supplier_mock = lookup(var.letter_suppliers, local.mock_letter_supplier_name, null) != null

infrastructure/terraform/components/sandbox/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ No requirements.
1515
| <a name="input_environment"></a> [environment](#input\_environment) | The name of the tfscaffold environment | `string` | n/a | yes |
1616
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonymous with account short-name) | `string` | n/a | yes |
1717
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | When a kms key is deleted, how long should it wait in the pending deletion state? | `string` | `"30"` | no |
18-
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br/> email_addresses = list(string)<br/> enable_polling = bool<br/> default_supplier = optional(bool)<br/> }))</pre> | <pre>{<br/> "WTMMOCK": {<br/> "default_supplier": true,<br/> "email_addresses": [<br/> "[email protected]"<br/> ],<br/> "enable_polling": true<br/> }<br/>}</pre> | no |
18+
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br/> email_addresses = list(string)<br/> enable_polling = bool<br/> default_supplier = optional(bool)<br/> }))</pre> | <pre>{<br/> "WTMMOCK": {<br/> "default_supplier": true,<br/> "email_addresses": [<br/> "template-submitted-recipient@sandbox.templates.dev.nhsnotify.national.nhs.uk"<br/> ],<br/> "enable_polling": true<br/> }<br/>}</pre> | no |
1919
| <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 |
2020
| <a name="input_parent_acct_environment"></a> [parent\_acct\_environment](#input\_parent\_acct\_environment) | Name of the environment responsible for the acct resources used, affects things like DNS zone. Useful for named dev environments | `string` | `"main"` | no |
2121
| <a name="input_project"></a> [project](#input\_project) | The name of the tfscaffold project | `string` | n/a | yes |

infrastructure/terraform/components/sandbox/module_backend_api.tf

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,7 @@ module "backend_api" {
2727
enable_event_stream = true
2828

2929
email_domain = "sandbox.${local.acct.dns_zone["name"]}"
30-
ses_domain_identity_arns = [data.aws_ses_domain_identity.sandbox_ses.arn]
3130

3231
mock_letter_supplier_name = local.mock_letter_supplier_name
3332
use_sftp_letter_supplier_mock = lookup(var.letter_suppliers, local.mock_letter_supplier_name, null) != null
3433
}
35-
36-
data "aws_ses_domain_identity" "sandbox_ses" {
37-
domain = "sandbox.${local.acct.dns_zone["name"]}"
38-
}

infrastructure/terraform/components/sandbox/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ variable "letter_suppliers" {
7272

7373
default = {
7474
"WTMMOCK" = {
75-
email_addresses = ["[email protected]"]
75+
email_addresses = ["template-submitted-recipient@sandbox.templates.dev.nhsnotify.national.nhs.uk"]
7676
enable_polling = true
7777
default_supplier = true
7878
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ No requirements.
3232
| <a name="input_project"></a> [project](#input\_project) | The name of the tfscaffold project | `string` | n/a | yes |
3333
| <a name="input_region"></a> [region](#input\_region) | The AWS Region | `string` | n/a | yes |
3434
| <a name="input_send_to_firehose"></a> [send\_to\_firehose](#input\_send\_to\_firehose) | Flag indicating whether logs should be sent to firehose | `bool` | n/a | yes |
35-
| <a name="input_ses_domain_identity_arns"></a> [ses\_domain\_identity\_arns](#input\_ses\_domain\_identity\_arns) | SES Domain Identity ARNs | `list(string)` | n/a | yes |
3635
| <a name="input_use_sftp_letter_supplier_mock"></a> [use\_sftp\_letter\_supplier\_mock](#input\_use\_sftp\_letter\_supplier\_mock) | Flag indicating whether mock letter supplier is enabled | `bool` | n/a | yes |
3736
## Modules
3837

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ locals {
4848
TEMPLATES_DOWNLOAD_BUCKET_NAME = module.s3bucket_download.id
4949
TEMPLATES_TABLE_NAME = aws_dynamodb_table.templates.name
5050
ENABLE_PROOFING = var.enable_proofing
51-
TEMPLATE_SUBMITTED_SENDER_EMAIL_ADDRESS = "template-submitted@${var.email_domain}"
51+
TEMPLATE_SUBMITTED_SENDER_EMAIL_ADDRESS = local.template_submitted_sender_email_address
5252
SUPPLIER_RECIPIENT_EMAIL_ADDRESSES = jsonencode({ for k, v in var.letter_suppliers : k => v.email_addresses })
5353
}
5454

@@ -57,4 +57,5 @@ locals {
5757
][0], "")
5858

5959
sftp_environment = "${var.group}-${var.environment}-${var.component}"
60+
template_submitted_sender_email_address = "template-submitted-recipient@${var.email_domain}"
6061
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ data "aws_iam_policy_document" "submit_template_lambda_policy" {
7171

7272
actions = ["ses:SendRawEmail"]
7373

74-
resources = var.ses_domain_identity_arns
74+
resources = ["arn:aws:ses:${var.region}:${var.aws_account_id}:identity/${local.template_submitted_sender_email_address}",
75+
"arn:aws:ses:${var.region}:${var.aws_account_id}:identity/${var.email_domain}"]
7576
}
7677
}

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,3 @@ variable "use_sftp_letter_supplier_mock" {
143143
type = bool
144144
description = "Flag indicating whether mock letter supplier is enabled"
145145
}
146-
147-
variable "ses_domain_identity_arns" {
148-
type = list(string)
149-
description = "SES Domain Identity ARNs"
150-
}

infrastructure/terraform/modules/ses/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ No requirements.
2828

2929
| Name | Description |
3030
|------|-------------|
31-
| <a name="output_domain_identity_arns"></a> [domain\_identity\_arns](#output\_domain\_identity\_arns) | n/a |
31+
| <a name="output_domain"></a> [domain](#output\_domain) | n/a |
3232
<!-- vale on -->
3333
<!-- markdownlint-enable -->
3434
<!-- END_TF_DOCS -->

0 commit comments

Comments
 (0)