From caa6cbace1e049926106c6aeddfcf631d3d5b2ef Mon Sep 17 00:00:00 2001
From: awstools
You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. The following are just a few examples:
You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. * The following are just a few examples:
*You can use Network Firewall to monitor and protect your VPC traffic in a number of ways. * The following are just a few examples:
*Configuration settings for the handling of the stateful rule groups in a firewall policy.
*/ @@ -765,6 +770,21 @@ export interface StatefulEngineOptions { * */ RuleOrder?: RuleOrder | string; + + /** + *Configures how Network Firewall processes traffic when a network connection breaks midstream. Network connections can break due to disruptions in external networks or within the firewall itself.
+ *
+ * DROP
- Network Firewall fails closed and drops all subsequent traffic going to the firewall. This is the default behavior.
+ * CONTINUE
- Network Firewall continues to apply rules to the subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on this context. For example, if you have a stateful rule to drop http
traffic, Network Firewall won't match the traffic for this rule because the service won't have the context from session initialization defining the application layer protocol as HTTP. However, this behavior is rule dependent—a TCP-layer rule using a flow:stateless
rule would still match, as would the aws:drop_strict
default action.
A single Suricata rules specification, for use in a stateful rule group.
* Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options.
* For information about the Suricata Rules
format, see
- * Rules Format.
An array of individual stateful rules inspection criteria to be used together in a stateful rule group.
* Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options.
* For information about the Suricata Rules
format, see
- * Rules Format.
This is the API Reference for Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.
\nThe REST API requires you to handle connection details, such as calculating\n signatures, handling request retries, and error handling. For general information\n about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.
\nTo access Network Firewall using the REST API endpoint:\n https://network-firewall.
\n
Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to\n the programming language or platform that you're using. For more information, see\n Amazon Web Services SDKs.
\nFor descriptions of Network Firewall features, including and step-by-step\n instructions on how to use them through the Network Firewall console, see the Network Firewall Developer\n Guide.
\nNetwork Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source intrusion detection system (IDS) engine.\n Network Firewall supports Suricata version 5.0.2. For information about Suricata,\n see the Suricata website.
\nYou can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:
\nAllow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and\n block all other forms of traffic.
\nUse custom lists of known bad domains to limit the types of domain names that your\n applications can access.
\nPerform deep packet inspection on traffic entering or leaving your VPC.
\nUse stateful protocol detection to filter protocols like HTTPS, regardless of the\n port used.
\nTo enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.
\nTo start using Network Firewall, do the following:
\n(Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.
\nIn Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.
\nIn Network Firewall, create stateless and stateful rule groups,\n to define the components of the network traffic filtering behavior that you want your firewall to have.
\nIn Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.
\nIn Network Firewall, create a firewall and specify your new firewall policy and\n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.
\nIn Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.
\nThis is the API Reference for Network Firewall. This guide is for developers who need\n detailed information about the Network Firewall API actions, data types, and errors.
\nThe REST API requires you to handle connection details, such as calculating\n signatures, handling request retries, and error handling. For general information\n about using the Amazon Web Services REST APIs, see Amazon Web Services APIs.
\nTo access Network Firewall using the REST API endpoint:\n https://network-firewall.
\n
Alternatively, you can use one of the Amazon Web Services SDKs to access an API that's tailored to\n the programming language or platform that you're using. For more information, see\n Amazon Web Services SDKs.
\nFor descriptions of Network Firewall features, including and step-by-step\n instructions on how to use them through the Network Firewall console, see the Network Firewall Developer\n Guide.
\nNetwork Firewall is a stateful, managed, network firewall and intrusion detection and\n prevention service for Amazon Virtual Private Cloud (Amazon VPC). With Network Firewall, you can filter traffic at the\n perimeter of your VPC. This includes filtering traffic going to and coming from an internet\n gateway, NAT gateway, or over VPN or Direct Connect. Network Firewall uses rules that are compatible\n with Suricata, a free, open source network analysis and threat detection engine.\n Network Firewall supports Suricata version 5.0.2. For information about Suricata,\n see the Suricata website.
\nYou can use Network Firewall to monitor and protect your VPC traffic in a number of ways.\n The following are just a few examples:
\nAllow domains or IP addresses for known Amazon Web Services service endpoints, such as Amazon S3, and\n block all other forms of traffic.
\nUse custom lists of known bad domains to limit the types of domain names that your\n applications can access.
\nPerform deep packet inspection on traffic entering or leaving your VPC.
\nUse stateful protocol detection to filter protocols like HTTPS, regardless of the\n port used.
\nTo enable Network Firewall for your VPCs, you perform steps in both Amazon VPC and in\n Network Firewall. For information about using Amazon VPC, see Amazon VPC User Guide.
\nTo start using Network Firewall, do the following:
\n(Optional) If you don't already have a VPC that you want to protect, create it in\n Amazon VPC.
\nIn Amazon VPC, in each Availability Zone where you want to have a firewall endpoint, create a\n subnet for the sole use of Network Firewall.
\nIn Network Firewall, create stateless and stateful rule groups,\n to define the components of the network traffic filtering behavior that you want your firewall to have.
\nIn Network Firewall, create a firewall policy that uses your rule groups and\n specifies additional default traffic filtering behavior.
\nIn Network Firewall, create a firewall and specify your new firewall policy and\n VPC subnets. Network Firewall creates a firewall endpoint in each subnet that you\n specify, with the behavior that's defined in the firewall policy.
\nIn Amazon VPC, use ingress routing enhancements to route traffic through the new firewall\n endpoints.
\nThe lower limit of the port range. This must be less than or equal to the\n ToPort
specification.
The upper limit of the port range. This must be greater than or equal to the\n FromPort
specification.
An array of individual stateful rules inspection criteria to be used together in a stateful rule group.\n Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options.\n For information about the Suricata Rules
format, see\n Rules Format.
An array of individual stateful rules inspection criteria to be used together in a stateful rule group.\n Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options.\n For information about the Suricata Rules
format, see\n Rules Format.
Indicates how to manage the order of stateful rule evaluation for the policy. DEFAULT_ACTION_ORDER
is\n the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them\n based on certain settings. For more information, see\n Evaluation order for stateful rules in the Network Firewall Developer Guide.\n
Configures how Network Firewall processes traffic when a network connection breaks midstream. Network connections can break due to disruptions in external networks or within the firewall itself.
\n\n DROP
- Network Firewall fails closed and drops all subsequent traffic going to the firewall. This is the default behavior.
\n CONTINUE
- Network Firewall continues to apply rules to the subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on this context. For example, if you have a stateful rule to drop http
traffic, Network Firewall won't match the traffic for this rule because the service won't have the context from session initialization defining the application layer protocol as HTTP. However, this behavior is rule dependent—a TCP-layer rule using a flow:stateless
rule would still match, as would the aws:drop_strict
default action.
A single Suricata rules specification, for use in a stateful rule group.\n Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options.\n For information about the Suricata Rules
format, see\n Rules Format.
A single Suricata rules specification, for use in a stateful rule group.\n Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options.\n For information about the Suricata Rules
format, see\n Rules Format.
An integer setting that indicates the order in which to run the stateful rule groups in\n a single FirewallPolicy. This setting only applies to firewall policies\n that specify the STRICT_ORDER
rule order in the stateful engine options settings.
Network Firewall evalutes each stateful rule group\n against a packet starting with the group that has the lowest priority setting. You must ensure\n that the priority settings are unique within each policy.
\nYou can change the priority settings of your rule groups at any time. To make it easier to\n insert rule groups later, number them so there's a wide range in between, for example use 100,\n 200, and so on.
" } }, @@ -3647,86 +3696,122 @@ } }, "com.amazonaws.networkfirewall#StatefulRuleProtocol": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "IP", - "name": "ANY" - }, - { - "value": "TCP", - "name": "TCP" - }, - { - "value": "UDP", - "name": "UDP" - }, - { - "value": "ICMP", - "name": "ICMP" - }, - { - "value": "HTTP", - "name": "HTTP" - }, - { - "value": "FTP", - "name": "FTP" - }, - { - "value": "TLS", - "name": "TLS" - }, - { - "value": "SMB", - "name": "SMB" - }, - { - "value": "DNS", - "name": "DNS" - }, - { - "value": "DCERPC", - "name": "DCERPC" - }, - { - "value": "SSH", - "name": "SSH" - }, - { - "value": "SMTP", - "name": "SMTP" - }, - { - "value": "IMAP", - "name": "IMAP" - }, - { - "value": "MSN", - "name": "MSN" - }, - { - "value": "KRB5", - "name": "KRB5" - }, - { - "value": "IKEV2", - "name": "IKEV2" - }, - { - "value": "TFTP", - "name": "TFTP" - }, - { - "value": "NTP", - "name": "NTP" - }, - { - "value": "DHCP", - "name": "DHCP" - } - ] + "type": "enum", + "members": { + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IP" + } + }, + "TCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TCP" + } + }, + "UDP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UDP" + } + }, + "ICMP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ICMP" + } + }, + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP" + } + }, + "FTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FTP" + } + }, + "TLS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLS" + } + }, + "SMB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SMB" + } + }, + "DNS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DNS" + } + }, + "DCERPC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DCERPC" + } + }, + "SSH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SSH" + } + }, + "SMTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SMTP" + } + }, + "IMAP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IMAP" + } + }, + "MSN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MSN" + } + }, + "KRB5": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "KRB5" + } + }, + "IKEV2": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IKEV2" + } + }, + "TFTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TFTP" + } + }, + "NTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NTP" + } + }, + "DHCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DHCP" + } + } } }, "com.amazonaws.networkfirewall#StatefulRules": { @@ -3754,6 +3839,7 @@ "Priority": { "target": "com.amazonaws.networkfirewall#Priority", "traits": { + "smithy.api#default": 0, "smithy.api#documentation": "Indicates the order in which to run this rule relative to all of the\n rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a\n rule group starting with the lowest priority setting. You must ensure that the priority\n settings are unique for the rule group.
\nEach stateless rule group uses exactly one StatelessRulesAndCustomActions
\n object, and each StatelessRulesAndCustomActions
contains exactly one\n StatelessRules
object. To ensure unique priority settings for your rule\n groups, set unique priorities for the stateless rules that you define inside any single\n StatelessRules
object.
You can change the priority settings of your rules at any time. To make it easier to\n insert rules later, number them so there's a wide range in between, for example use 100,\n 200, and so on.
", "smithy.api#required": {} } @@ -3776,6 +3862,7 @@ "Priority": { "target": "com.amazonaws.networkfirewall#Priority", "traits": { + "smithy.api#default": 0, "smithy.api#documentation": "An integer setting that indicates the order in which to run the stateless rule groups in\n a single FirewallPolicy. Network Firewall applies each stateless rule group\n to a packet starting with the group that has the lowest priority setting. You must ensure\n that the priority settings are unique within each policy.
", "smithy.api#required": {} } @@ -3818,6 +3905,23 @@ "smithy.api#documentation": "Stateless inspection criteria. Each stateless rule group uses exactly one of these data\n types to define its stateless rules.
" } }, + "com.amazonaws.networkfirewall#StreamExceptionPolicy": { + "type": "enum", + "members": { + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DROP" + } + }, + "CONTINUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTINUE" + } + } + } + }, "com.amazonaws.networkfirewall#SubnetMapping": { "type": "structure", "members": { @@ -3878,42 +3982,56 @@ } }, "com.amazonaws.networkfirewall#TCPFlag": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "FIN", - "name": "FIN" - }, - { - "value": "SYN", - "name": "SYN" - }, - { - "value": "RST", - "name": "RST" - }, - { - "value": "PSH", - "name": "PSH" - }, - { - "value": "ACK", - "name": "ACK" - }, - { - "value": "URG", - "name": "URG" - }, - { - "value": "ECE", - "name": "ECE" - }, - { - "value": "CWR", - "name": "CWR" - } - ] + "type": "enum", + "members": { + "FIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FIN" + } + }, + "SYN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SYN" + } + }, + "RST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RST" + } + }, + "PSH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PSH" + } + }, + "ACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACK" + } + }, + "URG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "URG" + } + }, + "ECE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ECE" + } + }, + "CWR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CWR" + } + } } }, "com.amazonaws.networkfirewall#TCPFlagField": { @@ -4061,7 +4179,6 @@ "com.amazonaws.networkfirewall#TagsPaginationMaxResults": { "type": "integer", "traits": { - "smithy.api#box": {}, "smithy.api#range": { "min": 0, "max": 100 @@ -4069,18 +4186,20 @@ } }, "com.amazonaws.networkfirewall#TargetType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "TLS_SNI", - "name": "TLS_SNI" - }, - { - "value": "HTTP_HOST", - "name": "HTTP_HOST" - } - ] + "type": "enum", + "members": { + "TLS_SNI": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TLS_SNI" + } + }, + "HTTP_HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HTTP_HOST" + } + } } }, "com.amazonaws.networkfirewall#TargetTypes": {