11locals {
2- # aws_managed_rules_prefix_arn = "arn:aws:network-firewall:${data.aws_region.current.name}:aws-managed:stateful-rulegroup"
3- aws_managed_rules_prefix_arn = " arn:aws:network-firewall:us-east-2:aws-managed:stateful-rulegroup" // TODO - review this region
4-
5- // TODO - Review these rules
6- firewall_managed_rules = distinct (concat ([
7- " AbusedLegitMalwareDomainsStrictOrder" ,
8- " BotNetCommandAndControlDomainsStrictOrder" ,
9- " AbusedLegitBotNetCommandAndControlDomainsStrictOrder" ,
10- " MalwareDomainsStrictOrder" ,
11- " ThreatSignaturesIOCStrictOrder" ,
12- " ThreatSignaturesPhishingStrictOrder" ,
13- " ThreatSignaturesBotnetWebStrictOrder" ,
14- " ThreatSignaturesEmergingEventsStrictOrder" ,
15- " ThreatSignaturesDoSStrictOrder" ,
16- " ThreatSignaturesMalwareWebStrictOrder" ,
17- " ThreatSignaturesExploitsStrictOrder" ,
18- " ThreatSignaturesWebAttacksStrictOrder" ,
19- " ThreatSignaturesScannersStrictOrder" ,
20- " ThreatSignaturesBotnetStrictOrder" ,
21- " ThreatSignaturesMalwareStrictOrder" ,
22- " ThreatSignaturesMalwareCoinminingStrictOrder" ,
23- " ThreatSignaturesFUPStrictOrder" ,
24- " ThreatSignaturesSuspectStrictOrder" ,
25- " ThreatSignaturesBotnetWindowsStrictOrder" ,
26- ], var. firewall_managed_rules ))
27-
28- name = " ${ var . name } -network-firewall"
2+ aws_managed_rules_prefix_arn = " arn:aws:network-firewall:${ var . region } :aws-managed:stateful-rulegroup"
3+ firewall_managed_rules = distinct (var. firewall_managed_rules )
4+ name = " ${ var . name } -network-firewall"
295}
306
317module "firewall" {
32- source = " terraform-aws-modules/network-firewall/aws"
8+ source = " terraform-aws-modules/network-firewall/aws"
9+ version = " ~> 1.0"
3310
3411 count = var. create_network_firewall ? 1 : 0
3512
36- # Firewall
13+
3714 name = local. name
38- description = var. description
15+ description = var. firewall_description
16+
3917
40- # Only for example
41- delete_protection = var. delete_protection
18+ delete_protection = var. firewall_delete_protection
4219 firewall_policy_change_protection = var. firewall_policy_change_protection
43- subnet_change_protection = var. subnet_change_protection
20+ subnet_change_protection = var. firewall_subnet_change_protection
21+
4422
4523 vpc_id = aws_vpc. this [0 ]. id
4624 subnet_mapping = { for subnet_id in aws_subnet . firewall . * . id :
@@ -50,8 +28,8 @@ module "firewall" {
5028 }
5129 }
5230
53- # Logging configuration
54- create_logging_configuration = true
31+ # ## Logging configuration ###
32+ create_logging_configuration = false
5533 logging_configuration_destination_config = [
5634 {
5735 log_destination = {
@@ -74,11 +52,10 @@ module "firewall" {
7452 type = " CUSTOMER_KMS"
7553 }
7654
77- # Policy
55+ # ## Policy ###
7856 policy_name = local. name
7957 policy_description = " Default network firewall policy for ${ local . name } "
8058
81- # policy_stateful_rule_group_reference = {}
8259 policy_stateful_rule_group_reference = {
8360 for i , rule_group in local . firewall_managed_rules : rule_group => {
8461 resource_arn = " ${ local . aws_managed_rules_prefix_arn } /${ rule_group } " ,
@@ -94,42 +71,46 @@ module "firewall" {
9471
9572 tags = var. tags // TODO - review these tags
9673
97- depends_on = [module . kms ]
74+ depends_on = [module . kms , module . logs_alerts , module . logs_flow ]
9875}
9976
10077module "logs_alerts" {
10178 source = " git::https://github.com/withclutch/terraform-modules-registry?ref=aws-log-group_v1.194"
10279
10380 count = var. create_network_firewall ? 1 : 0
10481
105- name = " ${ local . name } -alerts"
82+ name = " nf-network-log -alerts"
10683 tenant = var. tenant
10784 region = var. region
10885 environment = var. environment
10986
110- retention_in_days = var. logs_retention_in_days
111- kms_key_arn = var . logs_kms_key_arn
87+ retention_in_days = var. firewall_logs_retention_in_days
88+ kms_key_arn = module . kms [ 0 ] . key_arn
11289 create_datadog_subscription_filter = true
90+
91+ depends_on = [module . kms ]
11392}
11493
115- // TODO review if this module is really necessary
11694module "logs_flow" {
11795 source = " git::https://github.com/withclutch/terraform-modules-registry?ref=aws-log-group_v1.194"
11896
11997 count = var. create_network_firewall ? 1 : 0
12098
121- name = " ${ local . name } - flow" // TODO - review this name
99+ name = " nf-network-log- flow"
122100 tenant = var. tenant
123101 region = var. region
124102 environment = var. environment
125103
126- retention_in_days = var. logs_retention_in_days
127- kms_key_arn = var . logs_kms_key_arn
104+ retention_in_days = var. firewall_logs_retention_in_days
105+ kms_key_arn = module . kms [ 0 ] . key_arn
128106 create_datadog_subscription_filter = false
107+
108+ depends_on = [module . kms ]
129109}
130110
131111module "kms" {
132- source = " git::https://github.com/withclutch/terraform-modules-registry?ref=aws-kms_v1.194"
112+ # source = "git::https://github.com/withclutch/terraform-modules-registry?ref=aws-kms_v1.194"
113+ source = " /Users/roger.amorim/Clutch/projects/infrastructure/terraform-modules/modules/aws-kms"
133114
134115 count = var. create_network_firewall ? 1 : 0
135116
@@ -140,5 +121,6 @@ module "kms" {
140121 namespace = var. namespace
141122 tenant = var. tenant
142123 tags = var. tags
124+ # allow_usage_in_network_log_groups = true
143125}
144126
0 commit comments