Skip to content

Commit 2c0c7f5

Browse files
authored
CCM-9868: splunk subscription (#475)
1 parent 5968282 commit 2c0c7f5

24 files changed

+105
-9
lines changed

infrastructure/terraform/components/app/module_backend_api.tf

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ module "backend_api" {
1818

1919
enable_backup = var.destination_vault_arn != null ? true : false
2020

21-
enable_letters = var.enable_letters
22-
enable_proofing = var.enable_proofing
23-
letter_suppliers = var.letter_suppliers
21+
enable_letters = var.enable_letters
22+
enable_proofing = var.enable_proofing
23+
letter_suppliers = var.letter_suppliers
24+
log_destination_arn = "arn:aws:logs:${var.region}:${var.observability_account_id}:destination:nhs-notify-main-acct-firehose-logs"
25+
log_subscription_role_arn = local.acct.log_subscription_role_arn
26+
2427
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ No requirements.
2121
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonmous with account short-name) | `string` | n/a | yes |
2222
| <a name="input_kms_key_arn"></a> [kms\_key\_arn](#input\_kms\_key\_arn) | KMS Key ARN | `string` | n/a | yes |
2323
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br/> enable_polling = bool<br/> default_supplier = optional(bool)<br/> }))</pre> | n/a | yes |
24+
| <a name="input_log_destination_arn"></a> [log\_destination\_arn](#input\_log\_destination\_arn) | Destination ARN to use for the log subscription filter | `string` | `""` | no |
2425
| <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 |
26+
| <a name="input_log_subscription_role_arn"></a> [log\_subscription\_role\_arn](#input\_log\_subscription\_role\_arn) | The ARN of the IAM role to use for the log subscription filter | `string` | `""` | no |
2527
| <a name="input_module"></a> [module](#input\_module) | The variable encapsulating the name of this module | `string` | `"api"` | no |
2628
| <a name="input_parent_acct_environment"></a> [parent\_acct\_environment](#input\_parent\_acct\_environment) | Name of the environment responsible for the acct resources used | `string` | n/a | yes |
2729
| <a name="input_project"></a> [project](#input\_project) | The name of the tfscaffold project | `string` | n/a | yes |

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,12 @@ resource "aws_cloudwatch_log_group" "api_gateway_access" {
22
name = "/aws/api-gateway/${aws_api_gateway_rest_api.main.id}/${var.environment}/access-logs"
33
retention_in_days = var.log_retention_in_days
44
}
5+
6+
resource "aws_cloudwatch_log_subscription_filter" "api_gateway_access" {
7+
count = var.log_destination_arn != "" ? 1 : 0
8+
name = replace(aws_cloudwatch_log_group.api_gateway_access.name, "/", "-")
9+
log_group_name = aws_cloudwatch_log_group.api_gateway_access.name
10+
filter_pattern = ""
11+
destination_arn = var.log_destination_arn
12+
role_arn = var.log_subscription_role_arn
13+
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,12 @@ resource "aws_cloudwatch_log_group" "api_gateway_execution" {
55
)
66
retention_in_days = var.log_retention_in_days
77
}
8+
9+
resource "aws_cloudwatch_log_subscription_filter" "api_gateway_execution" {
10+
count = var.log_destination_arn != "" ? 1 : 0
11+
name = replace(aws_cloudwatch_log_group.api_gateway_execution.name, "/", "-")
12+
log_group_name = aws_cloudwatch_log_group.api_gateway_execution.name
13+
filter_pattern = ""
14+
destination_arn = var.log_destination_arn
15+
role_arn = var.log_subscription_role_arn
16+
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ module "authorizer_lambda" {
1919
USER_POOL_ID = var.cognito_config["USER_POOL_ID"],
2020
USER_POOL_CLIENT_ID = var.cognito_config["USER_POOL_CLIENT_ID"],
2121
}
22+
log_destination_arn = var.log_destination_arn
23+
log_subscription_role_arn = var.log_subscription_role_arn
2224
}
2325

2426
module "authorizer_build" {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ module "create_letter_template_lambda" {
1616
environment_variables = local.backend_lambda_environment_variables
1717

1818
execution_role_policy_document = data.aws_iam_policy_document.create_letter_template_lambda_policy.json
19+
log_destination_arn = var.log_destination_arn
20+
log_subscription_role_arn = var.log_subscription_role_arn
1921
}
2022

2123
data "aws_iam_policy_document" "create_letter_template_lambda_policy" {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ module "create_template_lambda" {
1515
environment_variables = local.backend_lambda_environment_variables
1616

1717
execution_role_policy_document = data.aws_iam_policy_document.create_template_lambda_policy.json
18+
log_destination_arn = var.log_destination_arn
19+
log_subscription_role_arn = var.log_subscription_role_arn
1820
}
1921

2022
data "aws_iam_policy_document" "create_template_lambda_policy" {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ module "delete_template_lambda" {
1515
environment_variables = local.backend_lambda_environment_variables
1616

1717
execution_role_policy_document = data.aws_iam_policy_document.delete_template_lambda_policy.json
18+
log_destination_arn = var.log_destination_arn
19+
log_subscription_role_arn = var.log_subscription_role_arn
1820
}
1921

2022
data "aws_iam_policy_document" "delete_template_lambda_policy" {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ module "get_template_lambda" {
1515
environment_variables = local.backend_lambda_environment_variables
1616

1717
execution_role_policy_document = data.aws_iam_policy_document.get_template_lambda_policy.json
18+
log_destination_arn = var.log_destination_arn
19+
log_subscription_role_arn = var.log_subscription_role_arn
1820
}
1921

2022
data "aws_iam_policy_document" "get_template_lambda_policy" {

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ module "lambda_copy_scanned_object_to_internal" {
1010
log_retention_in_days = var.log_retention_in_days
1111
source_code_hash = module.build_template_lambda.zips[local.backend_lambda_entrypoints.copy_scanned_object_to_internal].base64sha256
1212

13-
environment_variables = local.backend_lambda_environment_variables
13+
environment_variables = local.backend_lambda_environment_variables
14+
log_destination_arn = var.log_destination_arn
15+
log_subscription_role_arn = var.log_subscription_role_arn
1416
}
1517

1618
data "aws_iam_policy_document" "copy_scanned_object_to_internal" {

0 commit comments

Comments
 (0)