Network Firewall
Terraform module to create AWS Network Firewall resources
Inputs
40
availability_zone_change_protectionoptionalboolA setting indicating whether the firewall is protected against changes to its Availability Zone configuration. When set to true, you must first disable this protection before adding or removing Availability Zones
nullavailability_zone_mappingoptionallist(object({ availability_zone_id = string }))Required when creating a transit gateway-attached firewall. Set of configuration blocks describing the avaiability availability where you want to create firewall endpoints for a transit gateway-attached firewall
nullcreateoptionalboolControls if resources should be created
truecreate_logging_configurationoptionalboolControls if a Logging Configuration should be created
nullcreate_policyoptionalboolControls if policy should be created
truecreate_policy_resource_policyoptionalboolControls if a resource policy should be created
nulldelete_protectionoptionalboolA boolean flag indicating whether it is possible to delete the firewall. Defaults to `true`
truedescriptionoptionalstringA friendly description of the firewall
""enable_monitoring_dashboardoptionalboolWhether to enable monitoring dashboard for the logging configuration
nullenabled_analysis_typesoptionallist(string)Set of types for which to collect analysis metrics. Valid values: `TLS_SNI`, `HTTP_HOST`. Defaults to `[]`
nullencryption_configurationoptionalobject({ key_id = optional(string) type = string })KMS encryption configuration settings
nullfirewall_policy_arnoptionalstringThe ARN of the Firewall Policy to use
""firewall_policy_change_protectionoptionalboolA boolean flag indicating whether it is possible to change the associated firewall policy. Defaults to `false`
nulllogging_configuration_destination_configoptionallist(object({ log_destination = map(string) log_destination_type = string log_ty…A list of min 1, max 2 configuration blocks describing the destination for the logging configuration
nullnameoptionalstringA friendly name of the firewall
""policy_attach_resource_policyoptionalboolControls if a resource policy should be attached to the firewall policy
nullpolicy_descriptionoptionalstringA friendly description of the firewall policy
nullpolicy_enable_tls_session_holdingoptionalboolWhether to allow the firewall to hold TLS sessions to allow TLS traffic processing before downstream connection establishment. When set to `true`, adds latency — enable only if TLS.SNI rule groups are active in the policy
nullpolicy_encryption_configurationoptionalobject({ key_id = optional(string) type = string })KMS encryption configuration settings
nullpolicy_nameoptionalstringA friendly name of the firewall policy
""policy_ram_resource_associationsoptionalmap(string)A map of RAM resource associations for the created firewall policy
nullpolicy_resource_policyoptionalstringThe policy JSON to use for the resource policy; required when `create_resource_policy` is `false`
""policy_resource_policy_actionsoptionallist(string)A list of IAM actions allowed in the resource policy
nullpolicy_resource_policy_principalsoptionallist(string)A list of IAM principals allowed in the resource policy
nullpolicy_stateful_default_actionsoptionallist(string)Set of actions to take on a packet if it does not match any stateful rules in the policy. This can only be specified if the policy has a `stateful_engine_options` block with a rule_order value of `STRICT_ORDER`. You can specify one of either or neither values of `aws:drop_strict` or `aws:drop_establ…
nullpolicy_stateful_engine_optionsoptionalobject({ flow_timeouts = optional(object({ tcp_idle_timeout_seconds = optional(n…A configuration block that defines options on how the policy handles stateful rules. See [Stateful Engine Options](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/networkfirewall_firewall_policy#stateful-engine-options) for details
nullpolicy_stateful_rule_group_referenceoptionalmap(object({ deep_threat_inspection = optional(bool) override = optional(object(…Set of configuration blocks containing references to the stateful rule groups that are used in the policy. See [Stateful Rule Group Reference](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/networkfirewall_firewall_policy#stateful-rule-group-reference) for details
nullpolicy_stateless_custom_actionoptionalmap(object({ action_definition = object({ publish_metric_action = optional(objec…Set of configuration blocks describing the custom action definitions that are available for use in the firewall policy's `stateless_default_actions`
nullpolicy_stateless_default_actionsoptionallist(string)Set of actions to take on a packet if it does not match any of the stateless rules in the policy. You must specify one of the standard actions including: `aws:drop`, `aws:pass`, or `aws:forward_to_sfe`
nullpolicy_stateless_fragment_default_actionsoptionallist(string)Set of actions to take on a fragmented packet if it does not match any of the stateless rules in the policy. You must specify one of the standard actions including: `aws:drop`, `aws:pass`, or `aws:forward_to_sfe`
nullpolicy_stateless_rule_group_referenceoptionalmap(object({ priority = number resource_arn = string }))Set of configuration blocks containing references to the stateless rule groups that are used in the policy. See [Stateless Rule Group Reference](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/networkfirewall_firewall_policy#stateless-rule-group-reference) for details
nullpolicy_tagsoptionalmap(string)A map of tags to add to all resources
{}policy_tls_inspection_configuration_arnoptionalstringThe ARN of the TLS inspection configuration to associate with the firewall policy
nullpolicy_variablesoptionalobject({ rule_variables = list(object({ ip_set = optional(object({ definition = …Contains variables that you can use to override default Suricata settings in your firewall policy
nullregionoptionalstringRegion where the resource(s) will be managed. Defaults to the Region set in the provider configuration
nullsubnet_change_protectionoptionalboolA boolean flag indicating whether it is possible to change the associated subnet(s). Defaults to `true`
truesubnet_mappingoptionalmap(object({ ip_address_type = optional(string) subnet_id = string }))Set of configuration blocks describing the public subnets. Each subnet must belong to a different Availability Zone in the VPC. AWS Network Firewall creates a firewall endpoint in each subnet
nulltagsoptionalmap(string)A map of tags to add to all resources
{}transit_gateway_idoptionalstringThe ID of the transit gateway to which the firewall is attached. Required when creating a transit gateway-attached firewall
nullvpc_idoptionalstringThe unique identifier of the VPC where AWS Network Firewall should create the firewall
nullAll 40 are optional — the module deploys with none of them set.
Outputs
9
arnThe Amazon Resource Name (ARN) that identifies the firewall
idThe Amazon Resource Name (ARN) that identifies the firewall
logging_configuration_idThe Amazon Resource Name (ARN) of the associated firewall
policy_arnThe Amazon Resource Name (ARN) that identifies the firewall policy
policy_idThe Amazon Resource Name (ARN) that identifies the firewall policy
policy_resource_policy_idThe Amazon Resource Name (ARN) of the firewall policy associated with the resource policy
policy_update_tokenA string token used when updating a firewall policy
statusNested list of information about the current status of the firewall
update_tokenA string token used when updating a firewall
What the agent wires into the next module. An edge on the architecture diagram is one of these consumed by something else.