Skip to content

Commit de45e7e

Browse files
Merge branch 'main' into PRMP-1416
2 parents 6a35097 + d4b9848 commit de45e7e

File tree

5 files changed

+157
-63
lines changed

5 files changed

+157
-63
lines changed

infrastructure/README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
| Name | Version |
1010
|------|---------|
11-
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.77.0 |
11+
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.66.0 |
1212

1313
## Modules
1414

@@ -49,6 +49,9 @@
4949
| <a name="module_data-collection-lambda"></a> [data-collection-lambda](#module\_data-collection-lambda) | ./modules/lambda | n/a |
5050
| <a name="module_delete-doc-ref-gateway"></a> [delete-doc-ref-gateway](#module\_delete-doc-ref-gateway) | ./modules/gateway | n/a |
5151
| <a name="module_delete-doc-ref-lambda"></a> [delete-doc-ref-lambda](#module\_delete-doc-ref-lambda) | ./modules/lambda | n/a |
52+
| <a name="module_delete-document-object-alarm"></a> [delete-document-object-alarm](#module\_delete-document-object-alarm) | ./modules/lambda_alarms | n/a |
53+
| <a name="module_delete-document-object-alarm-topic"></a> [delete-document-object-alarm-topic](#module\_delete-document-object-alarm-topic) | ./modules/sns | n/a |
54+
| <a name="module_delete-document-object-lambda"></a> [delete-document-object-lambda](#module\_delete-document-object-lambda) | ./modules/lambda | n/a |
5255
| <a name="module_delete_doc_alarm"></a> [delete\_doc\_alarm](#module\_delete\_doc\_alarm) | ./modules/lambda_alarms | n/a |
5356
| <a name="module_delete_doc_alarm_topic"></a> [delete\_doc\_alarm\_topic](#module\_delete\_doc\_alarm\_topic) | ./modules/sns | n/a |
5457
| <a name="module_document-manifest-job-gateway"></a> [document-manifest-job-gateway](#module\_document-manifest-job-gateway) | ./modules/gateway | n/a |
@@ -175,8 +178,12 @@
175178
| [aws_backup_vault.backup_vault](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/backup_vault) | resource |
176179
| [aws_cloudwatch_event_rule.bulk_upload_metadata_schedule](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_rule) | resource |
177180
| [aws_cloudwatch_event_rule.bulk_upload_report_schedule](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_rule) | resource |
181+
| [aws_cloudwatch_event_rule.data_collection_schedule](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_rule) | resource |
182+
| [aws_cloudwatch_event_rule.statistical_report_schedule](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_rule) | resource |
178183
| [aws_cloudwatch_event_target.bulk_upload_metadata_schedule_event](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_target) | resource |
179184
| [aws_cloudwatch_event_target.bulk_upload_report_schedule_event](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_target) | resource |
185+
| [aws_cloudwatch_event_target.data_collection_schedule_event](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_target) | resource |
186+
| [aws_cloudwatch_event_target.statistical_report_schedule_event](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_event_target) | resource |
180187
| [aws_cloudwatch_log_group.mesh_log_group](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |
181188
| [aws_cloudwatch_log_metric_filter.error_log_metric_filter](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_metric_filter) | resource |
182189
| [aws_cloudwatch_log_metric_filter.inbox_message_count](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_metric_filter) | resource |
@@ -191,6 +198,7 @@
191198
| [aws_iam_policy.cloudwatch_log_query_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
192199
| [aws_iam_policy.copy_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
193200
| [aws_iam_policy.dynamodb_policy_scan_bulk_report](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
201+
| [aws_iam_policy.dynamodb_stream_delete_object_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
194202
| [aws_iam_policy.dynamodb_stream_manifest](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
195203
| [aws_iam_policy.dynamodb_stream_stitch_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
196204
| [aws_iam_policy.kms_mns_lambda_access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
@@ -216,6 +224,14 @@
216224
| [aws_iam_role.sns_failure_feedback_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
217225
| [aws_iam_role.splunk_sqs_forwarder](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
218226
| [aws_iam_role.stitch_presign_url_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
227+
| [aws_iam_role_policy.ecs_execution](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
228+
| [aws_iam_role_policy.mesh_ecr_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
229+
| [aws_iam_role_policy.mesh_kms_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
230+
| [aws_iam_role_policy.mesh_logs_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
231+
| [aws_iam_role_policy.mesh_sns_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
232+
| [aws_iam_role_policy.mesh_ssm_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
233+
| [aws_iam_role_policy.sns_failure_feedback](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
234+
| [aws_iam_role_policy.splunk_access_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |
219235
| [aws_iam_role_policy_attachment.backup_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
220236
| [aws_iam_role_policy_attachment.create_post_presign_url](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
221237
| [aws_iam_role_policy_attachment.cross_account_backup_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
@@ -225,6 +241,15 @@
225241
| [aws_iam_role_policy_attachment.lambda_stitch-lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
226242
| [aws_iam_role_policy_attachment.manifest_presign_url](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
227243
| [aws_iam_role_policy_attachment.nrl_get_doc_presign_url](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
244+
| [aws_iam_role_policy_attachment.ods_weekly_app_config](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
245+
| [aws_iam_role_policy_attachment.ods_weekly_cloudwatch_log_query_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
246+
| [aws_iam_role_policy_attachment.ods_weekly_document_reference_dynamodb_table](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
247+
| [aws_iam_role_policy_attachment.ods_weekly_document_store](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
248+
| [aws_iam_role_policy_attachment.ods_weekly_lloyd_george_reference_dynamodb_table](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
249+
| [aws_iam_role_policy_attachment.ods_weekly_lloyd_george_store](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
250+
| [aws_iam_role_policy_attachment.ods_weekly_ssm_access_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
251+
| [aws_iam_role_policy_attachment.ods_weekly_statistical_reports_store](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
252+
| [aws_iam_role_policy_attachment.ods_weekly_statistics_dynamodb_table](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
228253
| [aws_iam_role_policy_attachment.ods_weekly_update_ecs_execution](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
229254
| [aws_iam_role_policy_attachment.policy_audit_search-patient-details-lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
230255
| [aws_iam_role_policy_attachment.policy_audit_token_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
@@ -237,13 +262,17 @@
237262
| [aws_iam_role_policy_attachment.s3_restore_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
238263
| [aws_iam_role_policy_attachment.stitch_presign_url](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
239264
| [aws_lambda_event_source_mapping.bulk_upload_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
265+
| [aws_lambda_event_source_mapping.document_reference_dynamodb_stream](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
240266
| [aws_lambda_event_source_mapping.dynamodb_stream_manifest](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
241267
| [aws_lambda_event_source_mapping.dynamodb_stream_stitch](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
268+
| [aws_lambda_event_source_mapping.lloyd_george_dynamodb_stream](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
242269
| [aws_lambda_event_source_mapping.mns_notification_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
243270
| [aws_lambda_event_source_mapping.nems_message_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
244271
| [aws_lambda_event_source_mapping.nrl_pointer_lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_event_source_mapping) | resource |
245272
| [aws_lambda_permission.bulk_upload_metadata_schedule_permission](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
246273
| [aws_lambda_permission.bulk_upload_report_schedule_permission](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
274+
| [aws_lambda_permission.data_collection_schedule_permission](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
275+
| [aws_lambda_permission.statistical_report_schedule_permission](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |
247276
| [aws_s3_bucket.logs_bucket](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket) | resource |
248277
| [aws_s3_bucket_lifecycle_configuration.doc-store-lifecycle-rules](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_lifecycle_configuration) | resource |
249278
| [aws_s3_bucket_lifecycle_configuration.lg-lifecycle-rules](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_lifecycle_configuration) | resource |

infrastructure/api.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ module "api_endpoint_url_ssm_parameter" {
154154
name = "api_endpoint"
155155
description = "api endpoint url for ${var.environment}"
156156
resource_depends_on = aws_api_gateway_deployment.ndr_api_deploy
157-
value = aws_api_gateway_deployment.ndr_api_deploy.invoke_url
157+
value = "https://${aws_api_gateway_base_path_mapping.api_mapping.domain_name}"
158158
type = "SecureString"
159159
owner = var.owner
160160
environment = var.environment

infrastructure/audit.tf

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,31 @@ resource "aws_iam_role" "splunk_sqs_forwarder" {
1818
name = "${var.environment}_splunk_sqs_forwarder_role"
1919
description = "Role to allow Repo to integrate with Splunk"
2020
assume_role_policy = data.aws_iam_policy_document.splunk_trust_policy.json
21-
inline_policy {
22-
name = "${var.environment}_splunk_access_policy"
23-
policy = jsonencode({
24-
Version = "2012-10-17"
25-
Statement = [
26-
{
27-
Effect = "Allow"
28-
Action = [
29-
"sqs:GetQueueAttributes",
30-
"sqs:ListQueues",
31-
"sqs:ReceiveMessage",
32-
"sqs:GetQueueUrl",
33-
"sqs:SendMessage",
34-
"sqs:DeleteMessage"
35-
]
36-
Resource = [
37-
module.sqs-splunk-queue[0].sqs_arn,
38-
]
39-
},
40-
]
41-
})
42-
}
21+
}
22+
23+
resource "aws_iam_role_policy" "splunk_access_policy" {
24+
name = "${var.environment}_splunk_access_policy"
25+
count = local.is_sandbox ? 0 : 1
26+
role = aws_iam_role.splunk_sqs_forwarder[0].id
27+
policy = jsonencode({
28+
Version = "2012-10-17"
29+
Statement = [
30+
{
31+
Effect = "Allow"
32+
Action = [
33+
"sqs:GetQueueAttributes",
34+
"sqs:ListQueues",
35+
"sqs:ReceiveMessage",
36+
"sqs:GetQueueUrl",
37+
"sqs:SendMessage",
38+
"sqs:DeleteMessage"
39+
]
40+
Resource = [
41+
module.sqs-splunk-queue[0].sqs_arn,
42+
]
43+
},
44+
]
45+
})
4346
}
4447

4548
resource "aws_iam_policy" "lambda_audit_splunk_sqs_queue_send_policy" {

infrastructure/ecs.tf

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,6 @@ module "ndr-ecs-fargate-ods-update" {
9999
resource "aws_iam_role" "ods_weekly_update_task_role" {
100100
count = local.is_sandbox ? 0 : 1
101101
name = "${terraform.workspace}_ods_weekly_update_task_role"
102-
managed_policy_arns = [
103-
module.lloyd_george_reference_dynamodb_table.dynamodb_policy,
104-
aws_iam_policy.ssm_access_policy.arn,
105-
module.statistics_dynamodb_table.dynamodb_policy,
106-
module.statistical-reports-store.s3_object_access_policy,
107-
module.ndr-app-config.app_config_policy_arn,
108-
module.ndr-lloyd-george-store.s3_list_object_policy,
109-
module.ndr-document-store.s3_list_object_policy,
110-
module.document_reference_dynamodb_table.dynamodb_policy,
111-
aws_iam_policy.cloudwatch_log_query_policy.arn
112-
]
113102
assume_role_policy = jsonencode(
114103
{
115104
"Version" : "2012-10-17",
@@ -127,4 +116,58 @@ resource "aws_iam_role" "ods_weekly_update_task_role" {
127116
]
128117
}
129118
)
119+
}
120+
121+
resource "aws_iam_role_policy_attachment" "ods_weekly_lloyd_george_reference_dynamodb_table" {
122+
count = local.is_sandbox ? 0 : 1
123+
role = aws_iam_role.ods_weekly_update_task_role[0].name
124+
policy_arn = module.lloyd_george_reference_dynamodb_table.dynamodb_policy
125+
}
126+
127+
resource "aws_iam_role_policy_attachment" "ods_weekly_ssm_access_policy" {
128+
count = local.is_sandbox ? 0 : 1
129+
role = aws_iam_role.ods_weekly_update_task_role[0].name
130+
policy_arn = aws_iam_policy.ssm_access_policy.arn
131+
}
132+
133+
resource "aws_iam_role_policy_attachment" "ods_weekly_statistics_dynamodb_table" {
134+
count = local.is_sandbox ? 0 : 1
135+
role = aws_iam_role.ods_weekly_update_task_role[0].name
136+
policy_arn = module.statistics_dynamodb_table.dynamodb_policy
137+
}
138+
139+
resource "aws_iam_role_policy_attachment" "ods_weekly_statistical_reports_store" {
140+
count = local.is_sandbox ? 0 : 1
141+
role = aws_iam_role.ods_weekly_update_task_role[0].name
142+
policy_arn = module.statistical-reports-store.s3_object_access_policy
143+
}
144+
145+
resource "aws_iam_role_policy_attachment" "ods_weekly_app_config" {
146+
count = local.is_sandbox ? 0 : 1
147+
role = aws_iam_role.ods_weekly_update_task_role[0].name
148+
policy_arn = module.ndr-app-config.app_config_policy_arn
149+
}
150+
151+
resource "aws_iam_role_policy_attachment" "ods_weekly_lloyd_george_store" {
152+
count = local.is_sandbox ? 0 : 1
153+
role = aws_iam_role.ods_weekly_update_task_role[0].name
154+
policy_arn = module.ndr-lloyd-george-store.s3_list_object_policy
155+
}
156+
157+
resource "aws_iam_role_policy_attachment" "ods_weekly_document_store" {
158+
count = local.is_sandbox ? 0 : 1
159+
role = aws_iam_role.ods_weekly_update_task_role[0].name
160+
policy_arn = module.ndr-document-store.s3_list_object_policy
161+
}
162+
163+
resource "aws_iam_role_policy_attachment" "ods_weekly_document_reference_dynamodb_table" {
164+
count = local.is_sandbox ? 0 : 1
165+
role = aws_iam_role.ods_weekly_update_task_role[0].name
166+
policy_arn = module.document_reference_dynamodb_table.dynamodb_policy
167+
}
168+
169+
resource "aws_iam_role_policy_attachment" "ods_weekly_cloudwatch_log_query_policy" {
170+
count = local.is_sandbox ? 0 : 1
171+
role = aws_iam_role.ods_weekly_update_task_role[0].name
172+
policy_arn = aws_iam_policy.cloudwatch_log_query_policy.arn
130173
}

0 commit comments

Comments
 (0)