
terraform-aws-arc-network-firewall¶
Module:
sourcefuse/arc-network-firewall/awsRegistry: https://registry.terraform.io/modules/sourcefuse/arc-network-firewall/aws
Category: Networking / Security
Source: https://github.com/sourcefuse/terraform-aws-arc-network-firewall
Overview¶
Creates AWS Network Firewall with stateless and stateful rule groups, firewall policies, and logging configuration.
What It Does¶
- Network Firewall with configurable VPC and subnets
- Stateless rule groups for fast packet filtering
- Stateful rule groups (Suricata-compatible rules)
- Firewall policy with default actions
- CloudWatch and S3 logging for flow and alert logs
- Domain-based filtering with stateful rules
For more information about this repository and its usage, please see Terraform AWS NETWORK FIREWALL Usage Guide.
Quickstart¶
Transit Gateway-Attached Firewall¶
Firewall with Resource Policy¶
Required Inputs¶
| Name | Type | Description |
|---|---|---|
name |
string |
Firewall name |
vpc_id |
string |
VPC ID |
subnet_ids |
list(string) |
Subnet IDs for firewall endpoints |
firewall_policy_config |
object |
Firewall policy configuration |
| ## Key Outputs |
| Name | Description |
|---|---|
firewall_arn |
Network Firewall ARN |
firewall_status |
Firewall sync states per AZ |
| ## Full Variable & Output Reference |
The complete inputs/outputs reference is auto-generated below.
Requirements¶
| Name | Version |
|---|---|
| terraform | >= 1.3 |
| aws | >= 5.0, < 7.0 |
Providers¶
| Name | Version |
|---|---|
| aws | 6.16.0 |
Modules¶
| Name | Source | Version |
|---|---|---|
| s3_firewall_logs | sourcefuse/arc-s3/aws | 0.0.5 |
Resources¶
| Name | Type |
|---|---|
| aws_cloudwatch_log_group.firewall_logs | resource |
| aws_networkfirewall_firewall.this | resource |
| aws_networkfirewall_firewall_policy.this | resource |
| aws_networkfirewall_logging_configuration.this | resource |
| aws_networkfirewall_resource_policy.example | resource |
| aws_networkfirewall_resource_policy.firewall_policy | resource |
| aws_networkfirewall_rule_group.this | resource |
| aws_networkfirewall_tls_inspection_configuration.this | resource |
| aws_networkfirewall_vpc_endpoint_association.this | resource |
Inputs¶
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| availability_zones | List of availability zone IDs for transit gateway-attached firewall | list(string) |
[] |
no |
| create_firewall | Controls whether the Network Firewall should be created | bool |
true |
no |
| create_firewall_policy_resource_policy | Whether to create a resource policy for the firewall policy | bool |
false |
no |
| create_rule_group_resource_policy | Whether to attach a resource policy to the Rule Group | bool |
false |
no |
| description | Description of the Network Firewall | string |
null |
no |
| firewall_config | Combined firewall settings | object({ |
{} |
no |
| firewall_policy_config | # Firewall Policy Configuration | object({ |
{} |
no |
| firewall_policy_resource_policy | Resource policy configuration for the firewall policy | object({ |
{ |
no |
| logging_config | List of logging destinations to configure. Example: [ { log_type = "FLOW" log_destination_type = "S3" log_destination_name = "firewall-logs-bucket" }, { log_type = "ALERT" log_destination_type = "CloudWatchLogs" log_destination_name = "firewall-alerts-loggroup" } ] |
object({ |
CloudWatchLogs | KinesisDataFirehose log_destination_name = string # bucket name or log group name })), []) }) |
| name | Name of the Network Firewall | string |
n/a | yes |
| rule_group_config | Complete rule group configuration in one object | object({ |
{} |
no |
| rule_group_resource_policy | IAM-style resource policy for Network Firewall Rule Group | object({ |
{ |
no |
| subnet_ids | List of subnet IDs for firewall endpoints | list(string) |
[] |
no |
| tags | Tags to apply to all resources | map(string) |
{} |
no |
| tls_inspection_configuration | TLS inspection configuration | object({ |
{} |
no |
| vpc_endpoint_association | Configuration for VPC Endpoint Association | object({ |
{} |
no |
| vpc_id | VPC ID where the firewall will be deployed | string |
null |
no |
Outputs¶
| Name | Description |
|---|---|
| arn | ARN of the rule group |
| availability_zones | Availability zones where firewall endpoints are created |
| firewall_arn | The firewall ARN |
| firewall_endpoint_ids | Map of endpoint IDs per AZ |
| firewall_id | The firewall ID |
| firewall_name | Firewall name |
| firewall_policy_arn | The Amazon Resource Name (ARN) that identifies the firewall policy |
| firewall_policy_id | The Amazon Resource Name (ARN) that identifies the firewall policy |
| firewall_policy_name | The name of the firewall policy |
| firewall_policy_resource_policy_id | ID of the firewall policy resource policy |
| firewall_policy_update_token | A string token used when updating the firewall policy |
| firewall_status | Firewall status |
| id | ID of the rule group |
| logging_configuration_id | The Amazon Resource Name (ARN) of the associated firewall for logging |
| resource_policy_ids | List of resource policy IDs |
| subnet_ids | List of subnet IDs where firewall endpoints are created |
| tags_all | All tags for the firewall |
| tls_inspection_configuration_arn | ARN of the TLS inspection configuration |
| tls_inspection_configuration_certificate_authority | Certificate authority information |
| tls_inspection_configuration_certificates | Certificates information |
| tls_inspection_configuration_id | ID of the TLS inspection configuration |
| tls_inspection_configuration_update_token | Update token of the TLS inspection configuration |
| transit_gateway_id | The Transit Gateway ID for transit gateway-attached firewall |
| update_token | Update token of the rule group |
| vpc_id | The VPC ID where the firewall is deployed |
Contributing¶
See CONTRIBUTING.md for commit conventions and development setup.
Authors¶
This project is authored by: - SourceFuse