» nsxt_firewall_section
This resource provides a way to configure a firewall section on the NSX manager. A firewall section is a collection of firewall rules that are grouped together.
» Example Usage
resource "nsxt_firewall_section" "firewall_sect" {
description = "FS provisioned by Terraform"
display_name = "FS"
tag {
scope = "color"
tag = "blue"
}
applied_to {
target_type = "NSGroup"
target_id = "${nsxt_ns_group.group1.id}"
}
section_type = "LAYER3"
stateful = true
rule {
display_name = "out_rule"
description = "Out going rule"
action = "ALLOW"
logged = true
ip_protocol = "IPV4"
direction = "OUT"
destinations_excluded = "false"
sources_excluded = "true"
source {
target_type = "LogicalSwitch"
target_id = "${nsxt_logical_switch.switch1.id}"
}
destination {
target_type = "LogicalSwitch"
target_id = "${nsxt_logical_switch.switch2.id}"
}
}
rule {
display_name = "in_rule"
description = "In going rule"
action = "DROP"
logged = true
ip_protocol = "IPV4"
direction = "IN"
service {
target_type = "NSService"
target_id = "e8d59e13-484b-4825-ae3b-4c11f83249d9"
}
service {
target_type = "NSService"
target_id = "${nsxt_l4_port_set_ns_service.http.id}"
}
}
}
» Argument Reference
The following arguments are supported:
-
display_name
- (Optional) The display name of this firewall section. Defaults to ID if not set. -
description
- (Optional) Description of this firewall section. -
tag
- (Optional) A list of scope + tag pairs to associate with this firewall section. -
applied_to
- (Optional) List of objects where the rules in this section will be enforced. This will take precedence over rule level applied_to. [Supported target types: "LogicalPort", "LogicalSwitch", "NSGroup"] -
section_type
- (Required) Type of the rules which a section can contain. Either LAYER2 or LAYER3. Only homogeneous sections are supported. -
stateful
- (Required) Stateful or Stateless nature of firewall section is enforced on all rules inside the section. Layer3 sections can be stateful or stateless. Layer2 sections can only be stateless. -
rule
- (Optional) A list of rules to be applied in this section. each rule has the following arguments:-
display_name
- (Optional) The display name of this rule. Defaults to ID if not set. -
description
- (Optional) Description of this rule. -
action
- (Required) Action enforced on the packets which matches the firewall rule. [Allowed values: "ALLOW", "DROP", "REJECT"] -
applied_to
- (Optional) List of objects where rule will be enforced. The section level field overrides this one. Null will be treated as any. [Supported target types: "LogicalPort", "LogicalSwitch", "NSGroup"] -
destination
- (Optional) List of the destinations. Null will be treated as any. [Allowed target types: "IPSet", "LogicalPort", "LogicalSwitch", "NSGroup", "MACSet" (depending on the section type)] -
destinations_excluded
- (Optional) When this boolean flag is set to true, the rule destinations will be negated. -
direction
- (Optional) Rule direction in case of stateless firewall rules. This will only considered if section level parameter is set to stateless. Default to IN_OUT if not specified. [Allowed values: "IN", "OUT", "IN_OUT"] -
disabled
- (Optional) Flag to disable rule. Disabled will only be persisted but never provisioned/realized. -
ip_protocol
- (Optional) Type of IP packet that should be matched while enforcing the rule. [allowed values: "IPV4", "IPV6", "IPV4_IPV6"] -
logged
- (Optional) Flag to enable packet logging. Default is disabled. -
notes
- (Optional) User notes specific to the rule. -
rule_tag
- (Optional) User level field which will be printed in CLI and packet logs. -
service
- (Optional) List of the services. Null will be treated as any. [Allowed target types: "NSService", "NSServiceGroup"] -
source
- (Optional) List of sources. Null will be treated as any. [Allowed target types: "IPSet", "LogicalPort", "LogicalSwitch", "NSGroup", "MACSet" (depending on the section type)] -
sources_excluded
- (Optional) When this boolean flag is set to true, the rule sources will be negated.
-
» Attributes Reference
In addition to arguments listed above, the following attributes are exported:
-
id
- ID of the firewall section. -
revision
- Indicates current revision number of the object as seen by NSX-T API server. This attribute can be useful for debugging. -
is_default
- A boolean flag which reflects whether a firewall section is default section or not. Each Layer 3 and Layer 2 section will have at least and at most one default section.
» Importing
An existing Firewall section can be imported into this resource, via the following command:
terraform import nsxt_firewall_section.firewall_sect UUID
The above command imports the firewall section named firewall_sect
with the NSX id UUID
.