AWS Network Firewall

2026/11/10 - AWS Network Firewall - 5 new7 updated api methods

Changes  Firewall Policy V2 for Network Firewall

CreateFirewallPolicyV2 (new) Link ¶

Creates a Next Generation policy according to the specifications.

A Next Generation policy defines the behavior of a firewall in a collection of firewall engine and IPS engine rule groups and other settings. You can use one firewall policy for multiple firewalls. For more information, see Next Generation policies in the Network Firewall Developer Guide.

See also: AWS API Documentation

Request Syntax

client.create_firewall_policy_v2(
    FirewallPolicyV2Name='string',
    FirewallPolicyV2={
        'FirewallRuleGroupEntries': [
            {
                'Priority': 123,
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string',
                        'FirewallRules': [
                            {
                                'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                                'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                                'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                                'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                                'SourceIPs': 'string',
                                'DestIPs': 'string',
                                'SourcePorts': 'string',
                                'DestPorts': 'string',
                                'RuleOptions': [
                                    {
                                        'Keyword': 'string',
                                        'Settings': [
                                            'string',
                                        ]
                                    },
                                ],
                                'AcceptPriorHooks': True|False,
                                'AlertEnabled': True|False,
                                'BypassIPSEnabled': True|False,
                                'RuleMetadata': {
                                    'RuleEnabled': True|False,
                                    'RuleDescription': 'string'
                                }
                            },
                        ],
                        'RulesSourceList': {
                            'Targets': [
                                'string',
                            ],
                            'TargetTypes': [
                                'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                            ],
                            'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
                        }
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                }
            },
        ],
        'IpsRuleGroupEntries': [
            {
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string'
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                },
                'Override': {
                    'Action': 'DROP_TO_ALERT'
                }
            },
        ],
        'PolicyMode': 'ENFORCE'|'MONITOR',
        'FirewallDefaultAction': 'DROP'|'ACCEPT'|'REJECT'|'ALERT',
        'StatefulEngineOptions': {
            'StreamExceptionPolicy': 'DROP'|'REJECT',
            'FlowTimeouts': {
                'TcpIdleTimeoutSeconds': 123
            }
        },
        'TLSInspectionConfigurationArn': 'string',
        'PolicyVariables': {
            'RuleVariables': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'Route53ResolvedIPValidation': {
            'Action': 'REJECT'|'DROP'|'ALERT',
            'DNSFirewallRuleGroupId': 'string',
            'DNSExpiryExceptionPolicy': 'REJECT'|'DROP'|'CONTINUE',
            'BypassDestinationValidationIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ],
            'SourceIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ]
        }
    },
    Description='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    DryRun=True|False,
    EncryptionConfiguration={
        'KeyId': 'string',
        'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
    }
)
type FirewallPolicyV2Name:

string

param FirewallPolicyV2Name:

[REQUIRED]

The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

type FirewallPolicyV2:

dict

param FirewallPolicyV2:

[REQUIRED]

The rule groups and other settings that define the Next Generation policy.

  • FirewallRuleGroupEntries (list) --

    The firewall section of the policy—the rule groups that the firewall engine evaluates. Each entry references an existing firewall engine rule group or embeds a rule group directly in the policy, and each entry has a unique priority that sets its evaluation order within the section.

    • (dict) --

      A single entry in the firewall section of a Next Generation policy. An entry either references an existing firewall engine rule group by ARN or embeds a rule group directly in the policy, and it carries the priority that sets the rule group's evaluation order within the firewall section.

      • Priority (integer) --

        The priority of the rule group entry within the firewall section. Network Firewall evaluates the firewall section's entries in order of increasing priority value. Each entry in the firewall section must have a unique priority.

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of an existing firewall engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

      • InlineRuleGroup (dict) --

        A firewall engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group. An embedded rule group can't use a domain list rules source; to filter on a domain list, reference a standalone rule group by ARN instead.

        • RulesSource (dict) -- [REQUIRED]

          The stateful inspection criteria for the firewall engine rule group.

          • RulesString (string) --

            Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

          • FirewallRules (list) --

            An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

            • (dict) --

              A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • Action (string) -- [REQUIRED]

                The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

                • ACCEPT - Allow the traffic.

                • DROP - Block the traffic and discontinue inspection.

                • REJECT - Block the traffic and send a TCP reset packet back to the client.

                • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

                • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

                You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • ActionScope (string) -- [REQUIRED]

                The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

                • PACKET - The current packet only.

                • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

                • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

                • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

                In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

              • Hook (string) -- [REQUIRED]

                The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

              • Protocol (string) -- [REQUIRED]

                The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

              • SourceIPs (string) --

                The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

              • DestIPs (string) --

                The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

              • SourcePorts (string) --

                The source ports to inspect for.

              • DestPorts (string) --

                The destination ports to inspect for.

              • RuleOptions (list) --

                Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

                • (dict) --

                  Additional settings for a stateful rule. This is part of the StatefulRule configuration.

                  • Keyword (string) -- [REQUIRED]

                    The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

                  • Settings (list) --

                    The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

                    • (string) --

              • AcceptPriorHooks (boolean) --

                Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • AlertEnabled (boolean) --

                Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

              • BypassIPSEnabled (boolean) --

                Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • RuleMetadata (dict) --

                Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

                • RuleEnabled (boolean) --

                  Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

                • RuleDescription (string) --

                  A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

          • RulesSourceList (dict) --

            Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

            • Targets (list) -- [REQUIRED]

              The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

              • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

              • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

              • (string) --

            • TargetTypes (list) -- [REQUIRED]

              The types of matching to perform against the domains in Targets. You can specify any combination of the following:

              • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

              • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

              • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

              AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

              Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

              • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

              • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

              • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

              An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

              • (string) --

            • GeneratedRulesType (string) -- [REQUIRED]

              Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

        • RuleVariables (dict) --

          Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

          • IPSets (dict) --

            A list of IP addresses and address ranges, in CIDR notation.

            • (string) --

              • (dict) --

                A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                • Definition (list) -- [REQUIRED]

                  The list of IP addresses and address ranges, in CIDR notation.

                  • (string) --

          • PortSets (dict) --

            A list of port ranges.

            • (string) --

              • (dict) --

                A set of port ranges for use in the rules in a rule group.

                • Definition (list) --

                  The set of port ranges.

                  • (string) --

        • ReferenceSets (dict) --

          The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

          • IPSetReferences (dict) --

            The list of IP set references.

            • (string) --

              • (dict) --

                Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                • ReferenceArn (string) --

                  The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

  • IpsRuleGroupEntries (list) --

    The IPS section of the policy—the rule groups that the IPS engine evaluates. Each entry references an existing IPS engine rule group or embeds a rule group directly in the policy. IPS section entries don't use a priority.

    • (dict) --

      A single entry in the IPS section of a Next Generation policy. An entry either references an existing IPS engine rule group by ARN or embeds a rule group directly in the policy. IPS section entries don't use a priority.

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of an existing IPS engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

      • InlineRuleGroup (dict) --

        An IPS engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group.

        • RulesSource (dict) -- [REQUIRED]

          The stateful inspection criteria for the IPS engine rule group.

          • RulesString (string) --

            IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

        • RuleVariables (dict) --

          Settings that are available for use in the rules in the IPS engine rule group.

          • IPSets (dict) --

            A list of IP addresses and address ranges, in CIDR notation.

            • (string) --

              • (dict) --

                A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                • Definition (list) -- [REQUIRED]

                  The list of IP addresses and address ranges, in CIDR notation.

                  • (string) --

          • PortSets (dict) --

            A list of port ranges.

            • (string) --

              • (dict) --

                A set of port ranges for use in the rules in a rule group.

                • Definition (list) --

                  The set of port ranges.

                  • (string) --

        • ReferenceSets (dict) --

          The list of a rule group's reference sets.

          • IPSetReferences (dict) --

            The list of IP set references.

            • (string) --

              • (dict) --

                Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                • ReferenceArn (string) --

                  The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

      • Override (dict) --

        The setting that allows the policy owner to change the behavior of the IPS engine rule group within this policy, such as changing a managed rule group's action from DROP to ALERT.

        • Action (string) --

          The action that changes the rule group from DROP to ALERT. This only applies to managed rule groups.

  • PolicyMode (string) --

    Indicates whether the policy's engines enforce their verdicts or only report them. In ENFORCE mode, the firewall engine and IPS engine apply their verdicts to traffic. In MONITOR mode, the engines evaluate traffic and generate logs and metrics, but don't block traffic, so you can observe how a policy would behave before you enforce it. For more information, see Next Generation policies in the Network Firewall Developer Guide.

  • FirewallDefaultAction (string) --

    The action that the firewall engine takes on traffic that doesn't match any firewall engine rule at a hook. The firewall engine is drop by default. You can set the default action to one of the following:

    • DROP - Block the traffic.

    • ACCEPT - Allow the traffic.

    • REJECT - Block the traffic and send a TCP reset packet back to the client.

    • ALERT - Allow the traffic and generate an alert log for the traffic that reaches the default action at every hook. This is distinct from setting the policy mode to MONITOR.

    For more information, see Next Generation policies in the Network Firewall Developer Guide.

  • StatefulEngineOptions (dict) --

    Additional options governing how the engines handle stateful traffic, such as the stream exception policy and flow timeouts.

    • StreamExceptionPolicy (string) --

      How Network Firewall handles traffic on a network connection that breaks midstream. A Next Generation policy supports DROP and REJECT. For more information, see Stream exception policy options in your firewall policy in the Network Firewall Developer Guide.

    • FlowTimeouts (dict) --

      The amount of time that can pass without any traffic sent through the firewall before the firewall determines that the connection is idle.

      • TcpIdleTimeoutSeconds (integer) --

        The number of seconds that can pass without any TCP traffic sent through the firewall before the firewall determines that the connection is idle. After the idle timeout passes, data packets are dropped, however, the next TCP SYN packet is considered a new flow and is processed by the firewall. Clients or targets can use TCP keepalive packets to reset the idle timeout.

        You can define the TcpIdleTimeoutSeconds value to be between 60 and 6000 seconds. If no value is provided, it defaults to 350 seconds.

  • TLSInspectionConfigurationArn (string) --

    The Amazon Resource Name (ARN) of the TLS inspection configuration to use to decrypt traffic for inspection. Next Generation policies support session holding only. For more information, see Inspecting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

  • PolicyVariables (dict) --

    Contains variables that you can use to override default Suricata settings in your Next Generation policy.

    • RuleVariables (dict) --

      The IPv4 or IPv6 addresses in CIDR notation to use for the Suricata HOME_NET variable. If your firewall uses an inspection VPC, you might want to override the HOME_NET variable with the CIDRs of your home networks. If you don't override HOME_NET with your own CIDRs, Network Firewall by default uses the CIDR of your inspection VPC.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

  • Route53ResolvedIPValidation (dict) --

    The settings that enable resolved IP validation for the Next Generation policy. Resolved IP validation verifies that a connection's destination IP address is one that the Amazon Route 53 Resolver returned in a DNS response for a domain. A VPC that's associated with the Route 53 Resolver DNS Firewall rule group that you specify must send the response. This checks how the destination IP address was obtained, instead of relying only on the domain that the client asserts in its TLS Server Name Indication (SNI) or HTTP Host header. For more information, see Route53ResolvedIPValidation.

    • Action (string) -- [REQUIRED]

      The action that Network Firewall takes for a connection whose destination IP address fails resolved IP validation. A destination IP address fails validation when the Route 53 Resolver didn't return it in a DNS response in an associated VPC. Valid values are the following:

      • ALERT – Tags the matching connection in the firewall's flow logs without blocking it, when you enable logging. Use this to observe the effect of resolved IP validation before you enforce it.

      • DROP – Silently blocks the connection without sending any response to the client.

      • REJECT – Blocks the connection and sends a TCP reset (RST) to the client. Because a TCP reset applies only to TCP connections, Network Firewall drops non-TCP traffic instead of resetting it.

    • DNSFirewallRuleGroupId (string) -- [REQUIRED]

      The ID of the Route 53 Resolver DNS Firewall rule group that determines which VPCs' DNS resolutions count for resolved IP validation. A destination IP address counts as resolved for a domain only when the Route 53 Resolver returned it in a DNS response within a VPC that's associated with this rule group. Associate the rule group with the VPCs that send traffic to the firewall. The ID must match the pattern ^rslvr-frg-[0-9a-f]+$. It must also exist and be accessible from your account. Network Firewall validates this when you create or update the policy.

      Changing this value swaps the managed rule group association. Network Firewall processes the swap asynchronously. Each policy can have only one managed Route 53 Resolver DNS Firewall association. While a swap is in progress, Network Firewall rejects further changes to this setting. Wait until the swap completes, then retry. The change may also require a restart of the stateful engine. When this occurs, existing connections will be treated according to your stream exception policy configuration.

    • DNSExpiryExceptionPolicy (string) -- [REQUIRED]

      The action that Network Firewall takes when the DNS resolution recorded for a destination IP address has expired from the resolved IP cache. This applies when Network Firewall still sees traffic to that IP address after the expiry. Network Firewall keeps a resolution for longer than the DNS record's time to live (TTL). Valid values are the following:

      • CONTINUE – Treats the expired resolution as still valid and doesn't block the connection because of expiry.

      • DROP – Silently blocks traffic to the IP address after its resolution has expired, without sending any response to the client.

      • REJECT – Blocks traffic to the IP address after its resolution has expired and sends a TCP reset (RST) to the client. Network Firewall drops non-TCP traffic instead of resetting it.

    • BypassDestinationValidationIPRanges (list) --

      The destination IP address ranges that are exempt from the policy-level resolved IP check. Network Firewall doesn't apply the Action in this configuration to a connection whose destination falls in these ranges, even if the Route 53 Resolver didn't return that IP address in an associated VPC. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries.

      This exemption applies only to the policy-level check. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate connections to these destinations and match them independently of this list.

      • (dict) --

        A single IP address specification. This is used in the MatchAttributes source and destination specifications.

        • AddressDefinition (string) -- [REQUIRED]

          Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

          Examples:

          • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

          • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

          • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

          • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

          For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

    • SourceIPRanges (list) --

      The client source IP address ranges whose connections are subject to resolved IP validation. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries. If you omit this field, resolved IP validation applies to the CIDR ranges of the firewall's VPC and of any additional VPCs attached to the firewall. Specifying an empty list is not the same as omitting the field: an empty list means that Network Firewall doesn't validate any source addresses.

      This scope applies to the policy-level check only. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate their destinations regardless of SourceIPRanges.

      • (dict) --

        A single IP address specification. This is used in the MatchAttributes source and destination specifications.

        • AddressDefinition (string) -- [REQUIRED]

          Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

          Examples:

          • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

          • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

          • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

          • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

          For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

type Description:

string

param Description:

A description of the firewall policy.

type Tags:

list

param Tags:

The key:value pairs to associate with the resource.

  • (dict) --

    A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

    • Key (string) -- [REQUIRED]

      The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

    • Value (string) -- [REQUIRED]

      The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

type DryRun:

boolean

param DryRun:

Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.

If set to TRUE, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to FALSE, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.

If set to FALSE, Network Firewall makes the requested changes to your resources.

type EncryptionConfiguration:

dict

param EncryptionConfiguration:

A complex type that contains settings for encryption of your firewall policy resources.

  • KeyId (string) --

    The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

  • Type (string) -- [REQUIRED]

    The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'FirewallPolicyV2Response': {
        'FirewallPolicyV2Name': 'string',
        'FirewallPolicyV2Arn': 'string',
        'FirewallPolicyV2Id': 'string',
        'Description': 'string',
        'FirewallPolicyV2Status': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'StatusMessage': 'string',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedFirewallRuleCapacity': 123,
        'ConsumedIpsRuleCapacity': 123,
        'ConsumedIpsDomainCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'Errors': [
            {
                'Code': 'DNS_FIREWALL_RULE_GROUP_UNAVAILABLE'|'ROUTE53_RESOLVED_IP_VALIDATION_MISSING',
                'Message': 'string',
                'ResourceId': 'string'
            },
        ],
        'LastModifiedTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.

      To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token.

    • FirewallPolicyV2Response (dict) --

      The high-level properties of the Next Generation policy. This, along with the FirewallPolicyV2, define the policy. You can retrieve all objects for a Next Generation policy by calling DescribeFirewallPolicyV2.

      • FirewallPolicyV2Name (string) --

        The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

      • FirewallPolicyV2Arn (string) --

        The Amazon Resource Name (ARN) of the Next Generation policy.

      • FirewallPolicyV2Id (string) --

        The unique identifier of the Next Generation policy. Network Firewall assigns this identifier when you create the policy.

      • Description (string) --

        A description of the Next Generation policy.

      • FirewallPolicyV2Status (string) --

        The current status of the Next Generation policy. A policy must be in the ACTIVE state before you can use it in a firewall.

      • StatusMessage (string) --

        Additional information about the current status of the Next Generation policy.

      • Tags (list) --

        The key-value tag pairs that are associated with the Next Generation policy.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedFirewallRuleCapacity (integer) --

        The number of firewall engine rule capacity units that the policy's firewall section currently consumes.

      • ConsumedIpsRuleCapacity (integer) --

        The number of IPS engine rule capacity units that the policy's IPS section currently consumes.

      • ConsumedIpsDomainCapacity (integer) --

        The number of IPS domain list capacity units that the policy's IPS section currently consumes.

      • NumberOfAssociations (integer) --

        The number of firewalls that are associated with the Next Generation policy.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your Next Generation policy.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • Errors (list) --

        Any configuration errors that apply to the Next Generation policy. Network Firewall detects these errors asynchronously, after you create or update the policy, so an error can appear after the request that caused it has already succeeded. Each entry describes the problem and how to resolve it, and Network Firewall clears it automatically after you resolve the problem.

        • (dict) --

          A configuration error that Network Firewall detected for a firewall policy.

          • Code (string) --

            The error code identifies the type of error. Valid values are the following:

            • DNS_FIREWALL_RULE_GROUP_UNAVAILABLE – The Amazon Route 53 Resolver DNS Firewall rule group that resolved IP validation references is unavailable, for example, because it was deleted or is no longer accessible from your account. Update the rule group ID or remove the resolved IP validation configuration.

            • ROUTE53_RESOLVED_IP_VALIDATION_MISSING – An associated stateful rule group uses the aws_route_53_resolved_domain keyword, but the policy doesn't have resolved IP validation configured. The affected rules are inactive until you add resolved IP validation to the policy or remove the keyword rules.

          • Message (string) --

            A description of the error and how to resolve it.

          • ResourceId (string) --

            The ID of the resource that the error relates to, when applicable. For example, for DNS_FIREWALL_RULE_GROUP_UNAVAILABLE this is the Amazon Route 53 Resolver DNS Firewall rule group ID.

      • LastModifiedTime (datetime) --

        The last time that the Next Generation policy was changed.

UpdateFirewallPolicyV2 (new) Link ¶

Updates the properties of the specified Next Generation policy.

See also: AWS API Documentation

Request Syntax

client.update_firewall_policy_v2(
    UpdateToken='string',
    FirewallPolicyV2Arn='string',
    FirewallPolicyV2Name='string',
    FirewallPolicyV2={
        'FirewallRuleGroupEntries': [
            {
                'Priority': 123,
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string',
                        'FirewallRules': [
                            {
                                'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                                'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                                'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                                'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                                'SourceIPs': 'string',
                                'DestIPs': 'string',
                                'SourcePorts': 'string',
                                'DestPorts': 'string',
                                'RuleOptions': [
                                    {
                                        'Keyword': 'string',
                                        'Settings': [
                                            'string',
                                        ]
                                    },
                                ],
                                'AcceptPriorHooks': True|False,
                                'AlertEnabled': True|False,
                                'BypassIPSEnabled': True|False,
                                'RuleMetadata': {
                                    'RuleEnabled': True|False,
                                    'RuleDescription': 'string'
                                }
                            },
                        ],
                        'RulesSourceList': {
                            'Targets': [
                                'string',
                            ],
                            'TargetTypes': [
                                'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                            ],
                            'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
                        }
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                }
            },
        ],
        'IpsRuleGroupEntries': [
            {
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string'
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                },
                'Override': {
                    'Action': 'DROP_TO_ALERT'
                }
            },
        ],
        'PolicyMode': 'ENFORCE'|'MONITOR',
        'FirewallDefaultAction': 'DROP'|'ACCEPT'|'REJECT'|'ALERT',
        'StatefulEngineOptions': {
            'StreamExceptionPolicy': 'DROP'|'REJECT',
            'FlowTimeouts': {
                'TcpIdleTimeoutSeconds': 123
            }
        },
        'TLSInspectionConfigurationArn': 'string',
        'PolicyVariables': {
            'RuleVariables': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'Route53ResolvedIPValidation': {
            'Action': 'REJECT'|'DROP'|'ALERT',
            'DNSFirewallRuleGroupId': 'string',
            'DNSExpiryExceptionPolicy': 'REJECT'|'DROP'|'CONTINUE',
            'BypassDestinationValidationIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ],
            'SourceIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ]
        }
    },
    Description='string',
    DryRun=True|False,
    EncryptionConfiguration={
        'KeyId': 'string',
        'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
    }
)
type UpdateToken:

string

param UpdateToken:

[REQUIRED]

A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.

To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token.

type FirewallPolicyV2Arn:

string

param FirewallPolicyV2Arn:

The Amazon Resource Name (ARN) of the Next Generation policy.

You must specify the ARN or the name, and you can specify both.

type FirewallPolicyV2Name:

string

param FirewallPolicyV2Name:

The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

You must specify the ARN or the name, and you can specify both.

type FirewallPolicyV2:

dict

param FirewallPolicyV2:

[REQUIRED]

The updated rule groups and other settings that define the Next Generation policy.

  • FirewallRuleGroupEntries (list) --

    The firewall section of the policy—the rule groups that the firewall engine evaluates. Each entry references an existing firewall engine rule group or embeds a rule group directly in the policy, and each entry has a unique priority that sets its evaluation order within the section.

    • (dict) --

      A single entry in the firewall section of a Next Generation policy. An entry either references an existing firewall engine rule group by ARN or embeds a rule group directly in the policy, and it carries the priority that sets the rule group's evaluation order within the firewall section.

      • Priority (integer) --

        The priority of the rule group entry within the firewall section. Network Firewall evaluates the firewall section's entries in order of increasing priority value. Each entry in the firewall section must have a unique priority.

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of an existing firewall engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

      • InlineRuleGroup (dict) --

        A firewall engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group. An embedded rule group can't use a domain list rules source; to filter on a domain list, reference a standalone rule group by ARN instead.

        • RulesSource (dict) -- [REQUIRED]

          The stateful inspection criteria for the firewall engine rule group.

          • RulesString (string) --

            Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

          • FirewallRules (list) --

            An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

            • (dict) --

              A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • Action (string) -- [REQUIRED]

                The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

                • ACCEPT - Allow the traffic.

                • DROP - Block the traffic and discontinue inspection.

                • REJECT - Block the traffic and send a TCP reset packet back to the client.

                • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

                • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

                You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • ActionScope (string) -- [REQUIRED]

                The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

                • PACKET - The current packet only.

                • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

                • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

                • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

                In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

              • Hook (string) -- [REQUIRED]

                The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

              • Protocol (string) -- [REQUIRED]

                The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

              • SourceIPs (string) --

                The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

              • DestIPs (string) --

                The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

              • SourcePorts (string) --

                The source ports to inspect for.

              • DestPorts (string) --

                The destination ports to inspect for.

              • RuleOptions (list) --

                Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

                • (dict) --

                  Additional settings for a stateful rule. This is part of the StatefulRule configuration.

                  • Keyword (string) -- [REQUIRED]

                    The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

                  • Settings (list) --

                    The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

                    • (string) --

              • AcceptPriorHooks (boolean) --

                Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • AlertEnabled (boolean) --

                Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

              • BypassIPSEnabled (boolean) --

                Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • RuleMetadata (dict) --

                Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

                • RuleEnabled (boolean) --

                  Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

                • RuleDescription (string) --

                  A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

          • RulesSourceList (dict) --

            Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

            • Targets (list) -- [REQUIRED]

              The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

              • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

              • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

              • (string) --

            • TargetTypes (list) -- [REQUIRED]

              The types of matching to perform against the domains in Targets. You can specify any combination of the following:

              • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

              • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

              • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

              AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

              Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

              • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

              • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

              • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

              An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

              • (string) --

            • GeneratedRulesType (string) -- [REQUIRED]

              Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

        • RuleVariables (dict) --

          Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

          • IPSets (dict) --

            A list of IP addresses and address ranges, in CIDR notation.

            • (string) --

              • (dict) --

                A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                • Definition (list) -- [REQUIRED]

                  The list of IP addresses and address ranges, in CIDR notation.

                  • (string) --

          • PortSets (dict) --

            A list of port ranges.

            • (string) --

              • (dict) --

                A set of port ranges for use in the rules in a rule group.

                • Definition (list) --

                  The set of port ranges.

                  • (string) --

        • ReferenceSets (dict) --

          The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

          • IPSetReferences (dict) --

            The list of IP set references.

            • (string) --

              • (dict) --

                Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                • ReferenceArn (string) --

                  The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

  • IpsRuleGroupEntries (list) --

    The IPS section of the policy—the rule groups that the IPS engine evaluates. Each entry references an existing IPS engine rule group or embeds a rule group directly in the policy. IPS section entries don't use a priority.

    • (dict) --

      A single entry in the IPS section of a Next Generation policy. An entry either references an existing IPS engine rule group by ARN or embeds a rule group directly in the policy. IPS section entries don't use a priority.

      • ResourceArn (string) --

        The Amazon Resource Name (ARN) of an existing IPS engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

      • InlineRuleGroup (dict) --

        An IPS engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group.

        • RulesSource (dict) -- [REQUIRED]

          The stateful inspection criteria for the IPS engine rule group.

          • RulesString (string) --

            IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

        • RuleVariables (dict) --

          Settings that are available for use in the rules in the IPS engine rule group.

          • IPSets (dict) --

            A list of IP addresses and address ranges, in CIDR notation.

            • (string) --

              • (dict) --

                A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                • Definition (list) -- [REQUIRED]

                  The list of IP addresses and address ranges, in CIDR notation.

                  • (string) --

          • PortSets (dict) --

            A list of port ranges.

            • (string) --

              • (dict) --

                A set of port ranges for use in the rules in a rule group.

                • Definition (list) --

                  The set of port ranges.

                  • (string) --

        • ReferenceSets (dict) --

          The list of a rule group's reference sets.

          • IPSetReferences (dict) --

            The list of IP set references.

            • (string) --

              • (dict) --

                Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                • ReferenceArn (string) --

                  The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

      • Override (dict) --

        The setting that allows the policy owner to change the behavior of the IPS engine rule group within this policy, such as changing a managed rule group's action from DROP to ALERT.

        • Action (string) --

          The action that changes the rule group from DROP to ALERT. This only applies to managed rule groups.

  • PolicyMode (string) --

    Indicates whether the policy's engines enforce their verdicts or only report them. In ENFORCE mode, the firewall engine and IPS engine apply their verdicts to traffic. In MONITOR mode, the engines evaluate traffic and generate logs and metrics, but don't block traffic, so you can observe how a policy would behave before you enforce it. For more information, see Next Generation policies in the Network Firewall Developer Guide.

  • FirewallDefaultAction (string) --

    The action that the firewall engine takes on traffic that doesn't match any firewall engine rule at a hook. The firewall engine is drop by default. You can set the default action to one of the following:

    • DROP - Block the traffic.

    • ACCEPT - Allow the traffic.

    • REJECT - Block the traffic and send a TCP reset packet back to the client.

    • ALERT - Allow the traffic and generate an alert log for the traffic that reaches the default action at every hook. This is distinct from setting the policy mode to MONITOR.

    For more information, see Next Generation policies in the Network Firewall Developer Guide.

  • StatefulEngineOptions (dict) --

    Additional options governing how the engines handle stateful traffic, such as the stream exception policy and flow timeouts.

    • StreamExceptionPolicy (string) --

      How Network Firewall handles traffic on a network connection that breaks midstream. A Next Generation policy supports DROP and REJECT. For more information, see Stream exception policy options in your firewall policy in the Network Firewall Developer Guide.

    • FlowTimeouts (dict) --

      The amount of time that can pass without any traffic sent through the firewall before the firewall determines that the connection is idle.

      • TcpIdleTimeoutSeconds (integer) --

        The number of seconds that can pass without any TCP traffic sent through the firewall before the firewall determines that the connection is idle. After the idle timeout passes, data packets are dropped, however, the next TCP SYN packet is considered a new flow and is processed by the firewall. Clients or targets can use TCP keepalive packets to reset the idle timeout.

        You can define the TcpIdleTimeoutSeconds value to be between 60 and 6000 seconds. If no value is provided, it defaults to 350 seconds.

  • TLSInspectionConfigurationArn (string) --

    The Amazon Resource Name (ARN) of the TLS inspection configuration to use to decrypt traffic for inspection. Next Generation policies support session holding only. For more information, see Inspecting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

  • PolicyVariables (dict) --

    Contains variables that you can use to override default Suricata settings in your Next Generation policy.

    • RuleVariables (dict) --

      The IPv4 or IPv6 addresses in CIDR notation to use for the Suricata HOME_NET variable. If your firewall uses an inspection VPC, you might want to override the HOME_NET variable with the CIDRs of your home networks. If you don't override HOME_NET with your own CIDRs, Network Firewall by default uses the CIDR of your inspection VPC.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

  • Route53ResolvedIPValidation (dict) --

    The settings that enable resolved IP validation for the Next Generation policy. Resolved IP validation verifies that a connection's destination IP address is one that the Amazon Route 53 Resolver returned in a DNS response for a domain. A VPC that's associated with the Route 53 Resolver DNS Firewall rule group that you specify must send the response. This checks how the destination IP address was obtained, instead of relying only on the domain that the client asserts in its TLS Server Name Indication (SNI) or HTTP Host header. For more information, see Route53ResolvedIPValidation.

    • Action (string) -- [REQUIRED]

      The action that Network Firewall takes for a connection whose destination IP address fails resolved IP validation. A destination IP address fails validation when the Route 53 Resolver didn't return it in a DNS response in an associated VPC. Valid values are the following:

      • ALERT – Tags the matching connection in the firewall's flow logs without blocking it, when you enable logging. Use this to observe the effect of resolved IP validation before you enforce it.

      • DROP – Silently blocks the connection without sending any response to the client.

      • REJECT – Blocks the connection and sends a TCP reset (RST) to the client. Because a TCP reset applies only to TCP connections, Network Firewall drops non-TCP traffic instead of resetting it.

    • DNSFirewallRuleGroupId (string) -- [REQUIRED]

      The ID of the Route 53 Resolver DNS Firewall rule group that determines which VPCs' DNS resolutions count for resolved IP validation. A destination IP address counts as resolved for a domain only when the Route 53 Resolver returned it in a DNS response within a VPC that's associated with this rule group. Associate the rule group with the VPCs that send traffic to the firewall. The ID must match the pattern ^rslvr-frg-[0-9a-f]+$. It must also exist and be accessible from your account. Network Firewall validates this when you create or update the policy.

      Changing this value swaps the managed rule group association. Network Firewall processes the swap asynchronously. Each policy can have only one managed Route 53 Resolver DNS Firewall association. While a swap is in progress, Network Firewall rejects further changes to this setting. Wait until the swap completes, then retry. The change may also require a restart of the stateful engine. When this occurs, existing connections will be treated according to your stream exception policy configuration.

    • DNSExpiryExceptionPolicy (string) -- [REQUIRED]

      The action that Network Firewall takes when the DNS resolution recorded for a destination IP address has expired from the resolved IP cache. This applies when Network Firewall still sees traffic to that IP address after the expiry. Network Firewall keeps a resolution for longer than the DNS record's time to live (TTL). Valid values are the following:

      • CONTINUE – Treats the expired resolution as still valid and doesn't block the connection because of expiry.

      • DROP – Silently blocks traffic to the IP address after its resolution has expired, without sending any response to the client.

      • REJECT – Blocks traffic to the IP address after its resolution has expired and sends a TCP reset (RST) to the client. Network Firewall drops non-TCP traffic instead of resetting it.

    • BypassDestinationValidationIPRanges (list) --

      The destination IP address ranges that are exempt from the policy-level resolved IP check. Network Firewall doesn't apply the Action in this configuration to a connection whose destination falls in these ranges, even if the Route 53 Resolver didn't return that IP address in an associated VPC. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries.

      This exemption applies only to the policy-level check. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate connections to these destinations and match them independently of this list.

      • (dict) --

        A single IP address specification. This is used in the MatchAttributes source and destination specifications.

        • AddressDefinition (string) -- [REQUIRED]

          Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

          Examples:

          • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

          • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

          • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

          • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

          For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

    • SourceIPRanges (list) --

      The client source IP address ranges whose connections are subject to resolved IP validation. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries. If you omit this field, resolved IP validation applies to the CIDR ranges of the firewall's VPC and of any additional VPCs attached to the firewall. Specifying an empty list is not the same as omitting the field: an empty list means that Network Firewall doesn't validate any source addresses.

      This scope applies to the policy-level check only. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate their destinations regardless of SourceIPRanges.

      • (dict) --

        A single IP address specification. This is used in the MatchAttributes source and destination specifications.

        • AddressDefinition (string) -- [REQUIRED]

          Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

          Examples:

          • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

          • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

          • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

          • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

          For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

type Description:

string

param Description:

A description of the firewall policy.

type DryRun:

boolean

param DryRun:

Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.

If set to TRUE, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to FALSE, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.

If set to FALSE, Network Firewall makes the requested changes to your resources.

type EncryptionConfiguration:

dict

param EncryptionConfiguration:

A complex type that contains settings for encryption of your firewall policy resources.

  • KeyId (string) --

    The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

  • Type (string) -- [REQUIRED]

    The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'FirewallPolicyV2Response': {
        'FirewallPolicyV2Name': 'string',
        'FirewallPolicyV2Arn': 'string',
        'FirewallPolicyV2Id': 'string',
        'Description': 'string',
        'FirewallPolicyV2Status': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'StatusMessage': 'string',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedFirewallRuleCapacity': 123,
        'ConsumedIpsRuleCapacity': 123,
        'ConsumedIpsDomainCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'Errors': [
            {
                'Code': 'DNS_FIREWALL_RULE_GROUP_UNAVAILABLE'|'ROUTE53_RESOLVED_IP_VALIDATION_MISSING',
                'Message': 'string',
                'ResourceId': 'string'
            },
        ],
        'LastModifiedTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.

      To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token.

    • FirewallPolicyV2Response (dict) --

      The high-level properties of the Next Generation policy. This, along with the FirewallPolicyV2, define the policy. You can retrieve all objects for a Next Generation policy by calling DescribeFirewallPolicyV2.

      • FirewallPolicyV2Name (string) --

        The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

      • FirewallPolicyV2Arn (string) --

        The Amazon Resource Name (ARN) of the Next Generation policy.

      • FirewallPolicyV2Id (string) --

        The unique identifier of the Next Generation policy. Network Firewall assigns this identifier when you create the policy.

      • Description (string) --

        A description of the Next Generation policy.

      • FirewallPolicyV2Status (string) --

        The current status of the Next Generation policy. A policy must be in the ACTIVE state before you can use it in a firewall.

      • StatusMessage (string) --

        Additional information about the current status of the Next Generation policy.

      • Tags (list) --

        The key-value tag pairs that are associated with the Next Generation policy.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedFirewallRuleCapacity (integer) --

        The number of firewall engine rule capacity units that the policy's firewall section currently consumes.

      • ConsumedIpsRuleCapacity (integer) --

        The number of IPS engine rule capacity units that the policy's IPS section currently consumes.

      • ConsumedIpsDomainCapacity (integer) --

        The number of IPS domain list capacity units that the policy's IPS section currently consumes.

      • NumberOfAssociations (integer) --

        The number of firewalls that are associated with the Next Generation policy.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your Next Generation policy.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • Errors (list) --

        Any configuration errors that apply to the Next Generation policy. Network Firewall detects these errors asynchronously, after you create or update the policy, so an error can appear after the request that caused it has already succeeded. Each entry describes the problem and how to resolve it, and Network Firewall clears it automatically after you resolve the problem.

        • (dict) --

          A configuration error that Network Firewall detected for a firewall policy.

          • Code (string) --

            The error code identifies the type of error. Valid values are the following:

            • DNS_FIREWALL_RULE_GROUP_UNAVAILABLE – The Amazon Route 53 Resolver DNS Firewall rule group that resolved IP validation references is unavailable, for example, because it was deleted or is no longer accessible from your account. Update the rule group ID or remove the resolved IP validation configuration.

            • ROUTE53_RESOLVED_IP_VALIDATION_MISSING – An associated stateful rule group uses the aws_route_53_resolved_domain keyword, but the policy doesn't have resolved IP validation configured. The affected rules are inactive until you add resolved IP validation to the policy or remove the keyword rules.

          • Message (string) --

            A description of the error and how to resolve it.

          • ResourceId (string) --

            The ID of the resource that the error relates to, when applicable. For example, for DNS_FIREWALL_RULE_GROUP_UNAVAILABLE this is the Amazon Route 53 Resolver DNS Firewall rule group ID.

      • LastModifiedTime (datetime) --

        The last time that the Next Generation policy was changed.

DeleteFirewallPolicyV2 (new) Link ¶

Deletes the specified FirewallPolicyV2.

See also: AWS API Documentation

Request Syntax

client.delete_firewall_policy_v2(
    FirewallPolicyV2Arn='string',
    FirewallPolicyV2Name='string'
)
type FirewallPolicyV2Arn:

string

param FirewallPolicyV2Arn:

The Amazon Resource Name (ARN) of the Next Generation policy.

You must specify the ARN or the name, and you can specify both.

type FirewallPolicyV2Name:

string

param FirewallPolicyV2Name:

The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

You must specify the ARN or the name, and you can specify both.

rtype:

dict

returns:

Response Syntax

{
    'FirewallPolicyV2Response': {
        'FirewallPolicyV2Name': 'string',
        'FirewallPolicyV2Arn': 'string',
        'FirewallPolicyV2Id': 'string',
        'Description': 'string',
        'FirewallPolicyV2Status': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'StatusMessage': 'string',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedFirewallRuleCapacity': 123,
        'ConsumedIpsRuleCapacity': 123,
        'ConsumedIpsDomainCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'Errors': [
            {
                'Code': 'DNS_FIREWALL_RULE_GROUP_UNAVAILABLE'|'ROUTE53_RESOLVED_IP_VALIDATION_MISSING',
                'Message': 'string',
                'ResourceId': 'string'
            },
        ],
        'LastModifiedTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • FirewallPolicyV2Response (dict) --

      The high-level properties of the Next Generation policy that you asked to delete.

      • FirewallPolicyV2Name (string) --

        The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

      • FirewallPolicyV2Arn (string) --

        The Amazon Resource Name (ARN) of the Next Generation policy.

      • FirewallPolicyV2Id (string) --

        The unique identifier of the Next Generation policy. Network Firewall assigns this identifier when you create the policy.

      • Description (string) --

        A description of the Next Generation policy.

      • FirewallPolicyV2Status (string) --

        The current status of the Next Generation policy. A policy must be in the ACTIVE state before you can use it in a firewall.

      • StatusMessage (string) --

        Additional information about the current status of the Next Generation policy.

      • Tags (list) --

        The key-value tag pairs that are associated with the Next Generation policy.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedFirewallRuleCapacity (integer) --

        The number of firewall engine rule capacity units that the policy's firewall section currently consumes.

      • ConsumedIpsRuleCapacity (integer) --

        The number of IPS engine rule capacity units that the policy's IPS section currently consumes.

      • ConsumedIpsDomainCapacity (integer) --

        The number of IPS domain list capacity units that the policy's IPS section currently consumes.

      • NumberOfAssociations (integer) --

        The number of firewalls that are associated with the Next Generation policy.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your Next Generation policy.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • Errors (list) --

        Any configuration errors that apply to the Next Generation policy. Network Firewall detects these errors asynchronously, after you create or update the policy, so an error can appear after the request that caused it has already succeeded. Each entry describes the problem and how to resolve it, and Network Firewall clears it automatically after you resolve the problem.

        • (dict) --

          A configuration error that Network Firewall detected for a firewall policy.

          • Code (string) --

            The error code identifies the type of error. Valid values are the following:

            • DNS_FIREWALL_RULE_GROUP_UNAVAILABLE – The Amazon Route 53 Resolver DNS Firewall rule group that resolved IP validation references is unavailable, for example, because it was deleted or is no longer accessible from your account. Update the rule group ID or remove the resolved IP validation configuration.

            • ROUTE53_RESOLVED_IP_VALIDATION_MISSING – An associated stateful rule group uses the aws_route_53_resolved_domain keyword, but the policy doesn't have resolved IP validation configured. The affected rules are inactive until you add resolved IP validation to the policy or remove the keyword rules.

          • Message (string) --

            A description of the error and how to resolve it.

          • ResourceId (string) --

            The ID of the resource that the error relates to, when applicable. For example, for DNS_FIREWALL_RULE_GROUP_UNAVAILABLE this is the Amazon Route 53 Resolver DNS Firewall rule group ID.

      • LastModifiedTime (datetime) --

        The last time that the Next Generation policy was changed.

ListFirewallPoliciesV2 (new) Link ¶

Retrieves the metadata for the Next Generation policies that you have defined. Depending on your setting for max results and the number of firewall policies, a single call might not return the full list.

See also: AWS API Documentation

Request Syntax

client.list_firewall_policies_v2(
    NextToken='string',
    MaxResults=123
)
type NextToken:

string

param NextToken:

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

type MaxResults:

integer

param MaxResults:

The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

rtype:

dict

returns:

Response Syntax

{
    'NextToken': 'string',
    'FirewallPoliciesV2': [
        {
            'Name': 'string',
            'Arn': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • NextToken (string) --

      When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

    • FirewallPoliciesV2 (list) --

      The metadata for the Next Generation policies. Depending on your setting for max results and the number of firewall policies that you have, this might not be the full list.

      • (dict) --

        High-level information about a Next Generation policy, returned in a list of policies. To retrieve the policy's full properties, rule groups, and settings, use the Next Generation policy describe operation.

        • Name (string) --

          The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

        • Arn (string) --

          The Amazon Resource Name (ARN) of the Next Generation policy.

DescribeFirewallPolicyV2 (new) Link ¶

Returns the data objects for the specified Next Generation policy.

See also: AWS API Documentation

Request Syntax

client.describe_firewall_policy_v2(
    FirewallPolicyV2Arn='string',
    FirewallPolicyV2Name='string',
    RuleOutputFormat='FIREWALL_RULES'|'RULES_STRING'
)
type FirewallPolicyV2Arn:

string

param FirewallPolicyV2Arn:

The Amazon Resource Name (ARN) of the Next Generation policy.

You must specify the ARN or the name, and you can specify both.

type FirewallPolicyV2Name:

string

param FirewallPolicyV2Name:

The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleOutputFormat:

string

param RuleOutputFormat:

The format in which to return the rules of any firewall engine rule groups that are embedded in the policy. Specify FIREWALL_RULES for structured FirewallRule objects or RULES_STRING for a Suricata-compatible firewall-mode rule string. If you don't specify a format, Network Firewall returns each embedded rule group in the format you provided it in. Referenced rule groups aren't affected.

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'FirewallPolicyV2Response': {
        'FirewallPolicyV2Name': 'string',
        'FirewallPolicyV2Arn': 'string',
        'FirewallPolicyV2Id': 'string',
        'Description': 'string',
        'FirewallPolicyV2Status': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'StatusMessage': 'string',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedFirewallRuleCapacity': 123,
        'ConsumedIpsRuleCapacity': 123,
        'ConsumedIpsDomainCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'Errors': [
            {
                'Code': 'DNS_FIREWALL_RULE_GROUP_UNAVAILABLE'|'ROUTE53_RESOLVED_IP_VALIDATION_MISSING',
                'Message': 'string',
                'ResourceId': 'string'
            },
        ],
        'LastModifiedTime': datetime(2015, 1, 1)
    },
    'FirewallPolicyV2': {
        'FirewallRuleGroupEntries': [
            {
                'Priority': 123,
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string',
                        'FirewallRules': [
                            {
                                'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                                'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                                'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                                'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                                'SourceIPs': 'string',
                                'DestIPs': 'string',
                                'SourcePorts': 'string',
                                'DestPorts': 'string',
                                'RuleOptions': [
                                    {
                                        'Keyword': 'string',
                                        'Settings': [
                                            'string',
                                        ]
                                    },
                                ],
                                'AcceptPriorHooks': True|False,
                                'AlertEnabled': True|False,
                                'BypassIPSEnabled': True|False,
                                'RuleMetadata': {
                                    'RuleEnabled': True|False,
                                    'RuleDescription': 'string'
                                }
                            },
                        ],
                        'RulesSourceList': {
                            'Targets': [
                                'string',
                            ],
                            'TargetTypes': [
                                'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                            ],
                            'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
                        }
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                }
            },
        ],
        'IpsRuleGroupEntries': [
            {
                'ResourceArn': 'string',
                'InlineRuleGroup': {
                    'RulesSource': {
                        'RulesString': 'string'
                    },
                    'RuleVariables': {
                        'IPSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        },
                        'PortSets': {
                            'string': {
                                'Definition': [
                                    'string',
                                ]
                            }
                        }
                    },
                    'ReferenceSets': {
                        'IPSetReferences': {
                            'string': {
                                'ReferenceArn': 'string'
                            }
                        }
                    }
                },
                'Override': {
                    'Action': 'DROP_TO_ALERT'
                }
            },
        ],
        'PolicyMode': 'ENFORCE'|'MONITOR',
        'FirewallDefaultAction': 'DROP'|'ACCEPT'|'REJECT'|'ALERT',
        'StatefulEngineOptions': {
            'StreamExceptionPolicy': 'DROP'|'REJECT',
            'FlowTimeouts': {
                'TcpIdleTimeoutSeconds': 123
            }
        },
        'TLSInspectionConfigurationArn': 'string',
        'PolicyVariables': {
            'RuleVariables': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'Route53ResolvedIPValidation': {
            'Action': 'REJECT'|'DROP'|'ALERT',
            'DNSFirewallRuleGroupId': 'string',
            'DNSExpiryExceptionPolicy': 'REJECT'|'DROP'|'CONTINUE',
            'BypassDestinationValidationIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ],
            'SourceIPRanges': [
                {
                    'AddressDefinition': 'string'
                },
            ]
        }
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the firewall policy. The token marks the state of the policy resource at the time of the request.

      To make changes to the policy, you provide the token in your request. Network Firewall uses the token to ensure that the policy hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the firewall policy again to get a current copy of it with current token. Reapply your changes as needed, then try the operation again using the new token.

    • FirewallPolicyV2Response (dict) --

      The high-level properties of the Next Generation policy. This, along with the FirewallPolicyV2, define the policy.

      • FirewallPolicyV2Name (string) --

        The descriptive name of the Next Generation policy. You can't change the name of a firewall policy after you create it.

      • FirewallPolicyV2Arn (string) --

        The Amazon Resource Name (ARN) of the Next Generation policy.

      • FirewallPolicyV2Id (string) --

        The unique identifier of the Next Generation policy. Network Firewall assigns this identifier when you create the policy.

      • Description (string) --

        A description of the Next Generation policy.

      • FirewallPolicyV2Status (string) --

        The current status of the Next Generation policy. A policy must be in the ACTIVE state before you can use it in a firewall.

      • StatusMessage (string) --

        Additional information about the current status of the Next Generation policy.

      • Tags (list) --

        The key-value tag pairs that are associated with the Next Generation policy.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedFirewallRuleCapacity (integer) --

        The number of firewall engine rule capacity units that the policy's firewall section currently consumes.

      • ConsumedIpsRuleCapacity (integer) --

        The number of IPS engine rule capacity units that the policy's IPS section currently consumes.

      • ConsumedIpsDomainCapacity (integer) --

        The number of IPS domain list capacity units that the policy's IPS section currently consumes.

      • NumberOfAssociations (integer) --

        The number of firewalls that are associated with the Next Generation policy.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your Next Generation policy.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • Errors (list) --

        Any configuration errors that apply to the Next Generation policy. Network Firewall detects these errors asynchronously, after you create or update the policy, so an error can appear after the request that caused it has already succeeded. Each entry describes the problem and how to resolve it, and Network Firewall clears it automatically after you resolve the problem.

        • (dict) --

          A configuration error that Network Firewall detected for a firewall policy.

          • Code (string) --

            The error code identifies the type of error. Valid values are the following:

            • DNS_FIREWALL_RULE_GROUP_UNAVAILABLE – The Amazon Route 53 Resolver DNS Firewall rule group that resolved IP validation references is unavailable, for example, because it was deleted or is no longer accessible from your account. Update the rule group ID or remove the resolved IP validation configuration.

            • ROUTE53_RESOLVED_IP_VALIDATION_MISSING – An associated stateful rule group uses the aws_route_53_resolved_domain keyword, but the policy doesn't have resolved IP validation configured. The affected rules are inactive until you add resolved IP validation to the policy or remove the keyword rules.

          • Message (string) --

            A description of the error and how to resolve it.

          • ResourceId (string) --

            The ID of the resource that the error relates to, when applicable. For example, for DNS_FIREWALL_RULE_GROUP_UNAVAILABLE this is the Amazon Route 53 Resolver DNS Firewall rule group ID.

      • LastModifiedTime (datetime) --

        The last time that the Next Generation policy was changed.

    • FirewallPolicyV2 (dict) --

      The rule groups and other settings that define the specified Next Generation policy.

      • FirewallRuleGroupEntries (list) --

        The firewall section of the policy—the rule groups that the firewall engine evaluates. Each entry references an existing firewall engine rule group or embeds a rule group directly in the policy, and each entry has a unique priority that sets its evaluation order within the section.

        • (dict) --

          A single entry in the firewall section of a Next Generation policy. An entry either references an existing firewall engine rule group by ARN or embeds a rule group directly in the policy, and it carries the priority that sets the rule group's evaluation order within the firewall section.

          • Priority (integer) --

            The priority of the rule group entry within the firewall section. Network Firewall evaluates the firewall section's entries in order of increasing priority value. Each entry in the firewall section must have a unique priority.

          • ResourceArn (string) --

            The Amazon Resource Name (ARN) of an existing firewall engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

          • InlineRuleGroup (dict) --

            A firewall engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group. An embedded rule group can't use a domain list rules source; to filter on a domain list, reference a standalone rule group by ARN instead.

            • RulesSource (dict) --

              The stateful inspection criteria for the firewall engine rule group.

              • RulesString (string) --

                Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

              • FirewallRules (list) --

                An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

                • (dict) --

                  A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

                  • Action (string) --

                    The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

                    • ACCEPT - Allow the traffic.

                    • DROP - Block the traffic and discontinue inspection.

                    • REJECT - Block the traffic and send a TCP reset packet back to the client.

                    • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

                    • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

                    You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

                  • ActionScope (string) --

                    The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

                    • PACKET - The current packet only.

                    • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

                    • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

                    • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

                    In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

                  • Hook (string) --

                    The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

                  • Protocol (string) --

                    The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

                  • SourceIPs (string) --

                    The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

                  • DestIPs (string) --

                    The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

                  • SourcePorts (string) --

                    The source ports to inspect for.

                  • DestPorts (string) --

                    The destination ports to inspect for.

                  • RuleOptions (list) --

                    Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

                    • (dict) --

                      Additional settings for a stateful rule. This is part of the StatefulRule configuration.

                      • Keyword (string) --

                        The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

                      • Settings (list) --

                        The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

                        • (string) --

                  • AcceptPriorHooks (boolean) --

                    Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

                  • AlertEnabled (boolean) --

                    Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

                  • BypassIPSEnabled (boolean) --

                    Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

                  • RuleMetadata (dict) --

                    Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

                    • RuleEnabled (boolean) --

                      Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

                    • RuleDescription (string) --

                      A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

              • RulesSourceList (dict) --

                Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

                • Targets (list) --

                  The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

                  • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

                  • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

                  • (string) --

                • TargetTypes (list) --

                  The types of matching to perform against the domains in Targets. You can specify any combination of the following:

                  • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

                  • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

                  • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

                  AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

                  Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

                  • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

                  • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

                  • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

                  An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

                  • (string) --

                • GeneratedRulesType (string) --

                  Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

            • RuleVariables (dict) --

              Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

              • IPSets (dict) --

                A list of IP addresses and address ranges, in CIDR notation.

                • (string) --

                  • (dict) --

                    A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                    • Definition (list) --

                      The list of IP addresses and address ranges, in CIDR notation.

                      • (string) --

              • PortSets (dict) --

                A list of port ranges.

                • (string) --

                  • (dict) --

                    A set of port ranges for use in the rules in a rule group.

                    • Definition (list) --

                      The set of port ranges.

                      • (string) --

            • ReferenceSets (dict) --

              The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

              • IPSetReferences (dict) --

                The list of IP set references.

                • (string) --

                  • (dict) --

                    Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                    Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                    • ReferenceArn (string) --

                      The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

      • IpsRuleGroupEntries (list) --

        The IPS section of the policy—the rule groups that the IPS engine evaluates. Each entry references an existing IPS engine rule group or embeds a rule group directly in the policy. IPS section entries don't use a priority.

        • (dict) --

          A single entry in the IPS section of a Next Generation policy. An entry either references an existing IPS engine rule group by ARN or embeds a rule group directly in the policy. IPS section entries don't use a priority.

          • ResourceArn (string) --

            The Amazon Resource Name (ARN) of an existing IPS engine rule group to reference in this entry. Provide either ResourceArn to reference an existing rule group or InlineRuleGroup to embed a rule group in the policy.

          • InlineRuleGroup (dict) --

            An IPS engine rule group defined directly in the policy, instead of referenced by ARN. Provide either InlineRuleGroup to embed a rule group or ResourceArn to reference an existing rule group.

            • RulesSource (dict) --

              The stateful inspection criteria for the IPS engine rule group.

              • RulesString (string) --

                IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

            • RuleVariables (dict) --

              Settings that are available for use in the rules in the IPS engine rule group.

              • IPSets (dict) --

                A list of IP addresses and address ranges, in CIDR notation.

                • (string) --

                  • (dict) --

                    A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

                    • Definition (list) --

                      The list of IP addresses and address ranges, in CIDR notation.

                      • (string) --

              • PortSets (dict) --

                A list of port ranges.

                • (string) --

                  • (dict) --

                    A set of port ranges for use in the rules in a rule group.

                    • Definition (list) --

                      The set of port ranges.

                      • (string) --

            • ReferenceSets (dict) --

              The list of a rule group's reference sets.

              • IPSetReferences (dict) --

                The list of IP set references.

                • (string) --

                  • (dict) --

                    Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

                    Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

                    • ReferenceArn (string) --

                      The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

          • Override (dict) --

            The setting that allows the policy owner to change the behavior of the IPS engine rule group within this policy, such as changing a managed rule group's action from DROP to ALERT.

            • Action (string) --

              The action that changes the rule group from DROP to ALERT. This only applies to managed rule groups.

      • PolicyMode (string) --

        Indicates whether the policy's engines enforce their verdicts or only report them. In ENFORCE mode, the firewall engine and IPS engine apply their verdicts to traffic. In MONITOR mode, the engines evaluate traffic and generate logs and metrics, but don't block traffic, so you can observe how a policy would behave before you enforce it. For more information, see Next Generation policies in the Network Firewall Developer Guide.

      • FirewallDefaultAction (string) --

        The action that the firewall engine takes on traffic that doesn't match any firewall engine rule at a hook. The firewall engine is drop by default. You can set the default action to one of the following:

        • DROP - Block the traffic.

        • ACCEPT - Allow the traffic.

        • REJECT - Block the traffic and send a TCP reset packet back to the client.

        • ALERT - Allow the traffic and generate an alert log for the traffic that reaches the default action at every hook. This is distinct from setting the policy mode to MONITOR.

        For more information, see Next Generation policies in the Network Firewall Developer Guide.

      • StatefulEngineOptions (dict) --

        Additional options governing how the engines handle stateful traffic, such as the stream exception policy and flow timeouts.

        • StreamExceptionPolicy (string) --

          How Network Firewall handles traffic on a network connection that breaks midstream. A Next Generation policy supports DROP and REJECT. For more information, see Stream exception policy options in your firewall policy in the Network Firewall Developer Guide.

        • FlowTimeouts (dict) --

          The amount of time that can pass without any traffic sent through the firewall before the firewall determines that the connection is idle.

          • TcpIdleTimeoutSeconds (integer) --

            The number of seconds that can pass without any TCP traffic sent through the firewall before the firewall determines that the connection is idle. After the idle timeout passes, data packets are dropped, however, the next TCP SYN packet is considered a new flow and is processed by the firewall. Clients or targets can use TCP keepalive packets to reset the idle timeout.

            You can define the TcpIdleTimeoutSeconds value to be between 60 and 6000 seconds. If no value is provided, it defaults to 350 seconds.

      • TLSInspectionConfigurationArn (string) --

        The Amazon Resource Name (ARN) of the TLS inspection configuration to use to decrypt traffic for inspection. Next Generation policies support session holding only. For more information, see Inspecting SSL/TLS traffic with TLS inspection configurations in the Network Firewall Developer Guide.

      • PolicyVariables (dict) --

        Contains variables that you can use to override default Suricata settings in your Next Generation policy.

        • RuleVariables (dict) --

          The IPv4 or IPv6 addresses in CIDR notation to use for the Suricata HOME_NET variable. If your firewall uses an inspection VPC, you might want to override the HOME_NET variable with the CIDRs of your home networks. If you don't override HOME_NET with your own CIDRs, Network Firewall by default uses the CIDR of your inspection VPC.

          • (string) --

            • (dict) --

              A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

              • Definition (list) --

                The list of IP addresses and address ranges, in CIDR notation.

                • (string) --

      • Route53ResolvedIPValidation (dict) --

        The settings that enable resolved IP validation for the Next Generation policy. Resolved IP validation verifies that a connection's destination IP address is one that the Amazon Route 53 Resolver returned in a DNS response for a domain. A VPC that's associated with the Route 53 Resolver DNS Firewall rule group that you specify must send the response. This checks how the destination IP address was obtained, instead of relying only on the domain that the client asserts in its TLS Server Name Indication (SNI) or HTTP Host header. For more information, see Route53ResolvedIPValidation.

        • Action (string) --

          The action that Network Firewall takes for a connection whose destination IP address fails resolved IP validation. A destination IP address fails validation when the Route 53 Resolver didn't return it in a DNS response in an associated VPC. Valid values are the following:

          • ALERT – Tags the matching connection in the firewall's flow logs without blocking it, when you enable logging. Use this to observe the effect of resolved IP validation before you enforce it.

          • DROP – Silently blocks the connection without sending any response to the client.

          • REJECT – Blocks the connection and sends a TCP reset (RST) to the client. Because a TCP reset applies only to TCP connections, Network Firewall drops non-TCP traffic instead of resetting it.

        • DNSFirewallRuleGroupId (string) --

          The ID of the Route 53 Resolver DNS Firewall rule group that determines which VPCs' DNS resolutions count for resolved IP validation. A destination IP address counts as resolved for a domain only when the Route 53 Resolver returned it in a DNS response within a VPC that's associated with this rule group. Associate the rule group with the VPCs that send traffic to the firewall. The ID must match the pattern ^rslvr-frg-[0-9a-f]+$. It must also exist and be accessible from your account. Network Firewall validates this when you create or update the policy.

          Changing this value swaps the managed rule group association. Network Firewall processes the swap asynchronously. Each policy can have only one managed Route 53 Resolver DNS Firewall association. While a swap is in progress, Network Firewall rejects further changes to this setting. Wait until the swap completes, then retry. The change may also require a restart of the stateful engine. When this occurs, existing connections will be treated according to your stream exception policy configuration.

        • DNSExpiryExceptionPolicy (string) --

          The action that Network Firewall takes when the DNS resolution recorded for a destination IP address has expired from the resolved IP cache. This applies when Network Firewall still sees traffic to that IP address after the expiry. Network Firewall keeps a resolution for longer than the DNS record's time to live (TTL). Valid values are the following:

          • CONTINUE – Treats the expired resolution as still valid and doesn't block the connection because of expiry.

          • DROP – Silently blocks traffic to the IP address after its resolution has expired, without sending any response to the client.

          • REJECT – Blocks traffic to the IP address after its resolution has expired and sends a TCP reset (RST) to the client. Network Firewall drops non-TCP traffic instead of resetting it.

        • BypassDestinationValidationIPRanges (list) --

          The destination IP address ranges that are exempt from the policy-level resolved IP check. Network Firewall doesn't apply the Action in this configuration to a connection whose destination falls in these ranges, even if the Route 53 Resolver didn't return that IP address in an associated VPC. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries.

          This exemption applies only to the policy-level check. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate connections to these destinations and match them independently of this list.

          • (dict) --

            A single IP address specification. This is used in the MatchAttributes source and destination specifications.

            • AddressDefinition (string) --

              Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

              Examples:

              • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

              • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

              • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

              • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

              For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

        • SourceIPRanges (list) --

          The client source IP address ranges whose connections are subject to resolved IP validation. Specify each entry as an IPv4 or IPv6 address or CIDR range, up to 100 entries. If you omit this field, resolved IP validation applies to the CIDR ranges of the firewall's VPC and of any additional VPCs attached to the firewall. Specifying an empty list is not the same as omitting the field: an empty list means that Network Firewall doesn't validate any source addresses.

          This scope applies to the policy-level check only. Stateful rules that use the AWS_ROUTE_53_RESOLVED_DOMAIN target type or the aws_route_53_resolved_domain keyword still evaluate their destinations regardless of SourceIPRanges.

          • (dict) --

            A single IP address specification. This is used in the MatchAttributes source and destination specifications.

            • AddressDefinition (string) --

              Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

              Examples:

              • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

              • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

              • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

              • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

              For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

CreateRuleGroup (updated) Link ¶
Changes (request, response)
Request
{'FirewallRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                       'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                         'PortSets': {'string': {'Definition': ['string']}}},
                       'RulesSource': {'FirewallRules': [{'AcceptPriorHooks': 'boolean',
                                                          'Action': 'ACCEPT | '
                                                                    'DROP | '
                                                                    'REJECT | '
                                                                    'REJECT_DST '
                                                                    '| '
                                                                    'REJECT_BOTH',
                                                          'ActionScope': 'FLOW '
                                                                         '| TX '
                                                                         '| '
                                                                         'HOOK '
                                                                         '| '
                                                                         'PACKET',
                                                          'AlertEnabled': 'boolean',
                                                          'BypassIPSEnabled': 'boolean',
                                                          'DestIPs': 'string',
                                                          'DestPorts': 'string',
                                                          'Hook': 'TCP_ALL | '
                                                                  'TCP_FLOW_START '
                                                                  '| '
                                                                  'TCP_PRE_FLOW '
                                                                  '| '
                                                                  'TCP_PRE_STREAM '
                                                                  '| SCTP_ALL '
                                                                  '| '
                                                                  'SCTP_FLOW_START '
                                                                  '| '
                                                                  'SCTP_PRE_FLOW '
                                                                  '| '
                                                                  'SCTP_PRE_STREAM '
                                                                  '| IPV6_ALL '
                                                                  '| '
                                                                  'IPV6_FLOW_START '
                                                                  '| '
                                                                  'IPV6_PRE_FLOW '
                                                                  '| '
                                                                  'IPV6_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV6_ALL '
                                                                  '| '
                                                                  'ICMPV6_FLOW_START '
                                                                  '| '
                                                                  'ICMPV6_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV6_PRE_STREAM '
                                                                  '| UDP_ALL | '
                                                                  'UDP_FLOW_START '
                                                                  '| '
                                                                  'UDP_PRE_FLOW '
                                                                  '| '
                                                                  'UDP_PRE_STREAM '
                                                                  '| ICMP_ALL '
                                                                  '| '
                                                                  'ICMP_FLOW_START '
                                                                  '| '
                                                                  'ICMP_PRE_FLOW '
                                                                  '| '
                                                                  'ICMP_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV4_ALL '
                                                                  '| '
                                                                  'ICMPV4_FLOW_START '
                                                                  '| '
                                                                  'ICMPV4_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV4_PRE_STREAM '
                                                                  '| IP_ALL | '
                                                                  'IP_FLOW_START '
                                                                  '| '
                                                                  'IP_PRE_FLOW '
                                                                  '| '
                                                                  'IP_PRE_STREAM '
                                                                  '| IPV4_ALL '
                                                                  '| '
                                                                  'IPV4_FLOW_START '
                                                                  '| '
                                                                  'IPV4_PRE_FLOW '
                                                                  '| '
                                                                  'IPV4_PRE_STREAM '
                                                                  '| '
                                                                  'TLS_CLIENT_STARTED '
                                                                  '| '
                                                                  'TLS_CLIENT_HELLO '
                                                                  '| '
                                                                  'TLS_CLIENT_CERT '
                                                                  '| '
                                                                  'TLS_CLIENT_DATA '
                                                                  '| '
                                                                  'TLS_CLIENT_FINISHED '
                                                                  '| '
                                                                  'TLS_SERVER_STARTED '
                                                                  '| '
                                                                  'TLS_SERVER_HELLO '
                                                                  '| '
                                                                  'TLS_SERVER_CERT '
                                                                  '| '
                                                                  'TLS_SERVER_DATA '
                                                                  '| '
                                                                  'TLS_SERVER_FINISHED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_LINE '
                                                                  '| '
                                                                  'HTTP1_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP1_REQUEST_BODY '
                                                                  '| '
                                                                  'HTTP1_REQUEST_TRAILER '
                                                                  '| '
                                                                  'HTTP1_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_LINE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_BODY '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_TRAILER '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMTP_REQUEST_DATA '
                                                                  '| '
                                                                  'SMTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMTP_RESPONSE_DATA '
                                                                  '| '
                                                                  'SMTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMB_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_REQUEST_STARTED '
                                                                  '| '
                                                                  'DCERPC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NFS_REQUEST_STARTED '
                                                                  '| '
                                                                  'NFS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NFS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NFS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'KRB5_REQUEST_STARTED '
                                                                  '| '
                                                                  'KRB5_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'KRB5_RESPONSE_STARTED '
                                                                  '| '
                                                                  'KRB5_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'IKE_REQUEST_STARTED '
                                                                  '| '
                                                                  'IKE_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'IKE_RESPONSE_STARTED '
                                                                  '| '
                                                                  'IKE_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TFTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'TFTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TFTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TFTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DHCP_REQUEST_STARTED '
                                                                  '| '
                                                                  'DHCP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DHCP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DHCP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'QUIC_REQUEST_STARTED '
                                                                  '| '
                                                                  'QUIC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'QUIC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'QUIC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RDP_REQUEST_STARTED '
                                                                  '| '
                                                                  'RDP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RDP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RDP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RFB_REQUEST_STARTED '
                                                                  '| '
                                                                  'RFB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RFB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RFB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MQTT_REQUEST_STARTED '
                                                                  '| '
                                                                  'MQTT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MQTT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MQTT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_REQUEST_STARTED '
                                                                  '| '
                                                                  'PGSQL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SNMP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SNMP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SNMP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SNMP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'NTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TELNET_REQUEST_STARTED '
                                                                  '| '
                                                                  'TELNET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TELNET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TELNET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'LDAP_REQUEST_STARTED '
                                                                  '| '
                                                                  'LDAP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'LDAP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'LDAP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'POP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'POP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'POP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'POP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MDNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'MDNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MDNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MDNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SSH_REQUEST_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_REQUEST_FINISHED '
                                                                  '| '
                                                                  'SSH_RESPONSE_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_RESPONSE_FINISHED',
                                                          'Protocol': 'IP | '
                                                                      'TCP | '
                                                                      'UDP | '
                                                                      'ICMP | '
                                                                      'HTTP | '
                                                                      'FTP | '
                                                                      'TLS | '
                                                                      'SMB | '
                                                                      'DNS | '
                                                                      'DCERPC '
                                                                      '| SSH | '
                                                                      'SMTP | '
                                                                      'MSN | '
                                                                      'KRB5 | '
                                                                      'IKEV2 | '
                                                                      'TFTP | '
                                                                      'NTP | '
                                                                      'DHCP | '
                                                                      'HTTP2 | '
                                                                      'QUIC | '
                                                                      'ICMPV4 '
                                                                      '| '
                                                                      'ICMPV6 '
                                                                      '| SCTP '
                                                                      '| IPV4 '
                                                                      '| IPV6 '
                                                                      '| DOH2 '
                                                                      '| '
                                                                      'FTP_DATA '
                                                                      '| NFS | '
                                                                      'RDP | '
                                                                      'RFB | '
                                                                      'MQTT | '
                                                                      'PGSQL | '
                                                                      'SNMP | '
                                                                      'TELNET '
                                                                      '| '
                                                                      'WEBSOCKET '
                                                                      '| LDAP '
                                                                      '| POP3 '
                                                                      '| MDNS '
                                                                      '| '
                                                                      'BITTORRENT_DHT '
                                                                      '| DNP3',
                                                          'RuleMetadata': {'RuleDescription': 'string',
                                                                           'RuleEnabled': 'boolean'},
                                                          'RuleOptions': [{'Keyword': 'string',
                                                                           'Settings': ['string']}],
                                                          'SourceIPs': 'string',
                                                          'SourcePorts': 'string'}],
                                       'RulesSourceList': {'GeneratedRulesType': 'ALLOWLIST '
                                                                                 '| '
                                                                                 'DENYLIST '
                                                                                 '| '
                                                                                 'REJECTLIST '
                                                                                 '| '
                                                                                 'ALERTLIST',
                                                           'TargetTypes': ['TLS_SNI '
                                                                           '| '
                                                                           'HTTP_HOST '
                                                                           '| '
                                                                           'AWS_ROUTE_53_RESOLVED_DOMAIN'],
                                                           'Targets': ['string']},
                                       'RulesString': 'string'}},
 'IpsRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                  'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                    'PortSets': {'string': {'Definition': ['string']}}},
                  'RulesSource': {'RulesString': 'string'}},
 'Type': {'FIREWALL', 'IPS'}}
Response
{'RuleGroupResponse': {'Type': {'FIREWALL', 'IPS'}}}

Creates the specified stateless or stateful rule group, which includes the rules for network traffic inspection, a capacity setting, and tags.

You provide your rule group specification in your request using either RuleGroup or Rules.

See also: AWS API Documentation

Request Syntax

client.create_rule_group(
    RuleGroupName='string',
    RuleGroup={
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        },
        'RulesSource': {
            'RulesString': 'string',
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            },
            'StatefulRules': [
                {
                    'Action': 'PASS'|'DROP'|'ALERT'|'REJECT',
                    'Header': {
                        'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'IMAP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC',
                        'Source': 'string',
                        'SourcePort': 'string',
                        'Direction': 'FORWARD'|'ANY',
                        'Destination': 'string',
                        'DestinationPort': 'string'
                    },
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ]
                },
            ],
            'StatelessRulesAndCustomActions': {
                'StatelessRules': [
                    {
                        'RuleDefinition': {
                            'MatchAttributes': {
                                'Sources': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'Destinations': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'SourcePorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'DestinationPorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'Protocols': [
                                    123,
                                ],
                                'TCPFlags': [
                                    {
                                        'Flags': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ],
                                        'Masks': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ]
                                    },
                                ]
                            },
                            'Actions': [
                                'string',
                            ]
                        },
                        'Priority': 123
                    },
                ],
                'CustomActions': [
                    {
                        'ActionName': 'string',
                        'ActionDefinition': {
                            'PublishMetricAction': {
                                'Dimensions': [
                                    {
                                        'Value': 'string'
                                    },
                                ]
                            }
                        }
                    },
                ]
            }
        },
        'StatefulRuleOptions': {
            'RuleOrder': 'DEFAULT_ACTION_ORDER'|'STRICT_ORDER'
        }
    },
    FirewallRuleGroup={
        'RulesSource': {
            'RulesString': 'string',
            'FirewallRules': [
                {
                    'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                    'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                    'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                    'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                    'SourceIPs': 'string',
                    'DestIPs': 'string',
                    'SourcePorts': 'string',
                    'DestPorts': 'string',
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ],
                    'AcceptPriorHooks': True|False,
                    'AlertEnabled': True|False,
                    'BypassIPSEnabled': True|False,
                    'RuleMetadata': {
                        'RuleEnabled': True|False,
                        'RuleDescription': 'string'
                    }
                },
            ],
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            }
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    IpsRuleGroup={
        'RulesSource': {
            'RulesString': 'string'
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    Rules='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
    Description='string',
    Capacity=123,
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    DryRun=True|False,
    EncryptionConfiguration={
        'KeyId': 'string',
        'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
    },
    SourceMetadata={
        'SourceArn': 'string',
        'SourceUpdateToken': 'string'
    },
    AnalyzeRuleGroup=True|False,
    SummaryConfiguration={
        'RuleOptions': [
            'SID'|'MSG'|'METADATA',
        ]
    }
)
type RuleGroupName:

string

param RuleGroupName:

[REQUIRED]

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

type RuleGroup:

dict

param RuleGroup:

An object that defines the rule group rules.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

  • RulesSource (dict) -- [REQUIRED]

    The stateful rules or stateless rules for the rule group.

    • RulesString (string) --

      Stateful inspection criteria, provided in Suricata compatible rules. Suricata is an open-source threat detection framework that includes a standard rule-based language for network traffic inspection.

      These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.

    • RulesSourceList (dict) --

      Stateful inspection criteria for a domain list rule group.

      • Targets (list) -- [REQUIRED]

        The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

        • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

        • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

        • (string) --

      • TargetTypes (list) -- [REQUIRED]

        The types of matching to perform against the domains in Targets. You can specify any combination of the following:

        • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

        • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

        • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

        AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

        Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

        • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

        • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

        • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

        An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

        • (string) --

      • GeneratedRulesType (string) -- [REQUIRED]

        Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

    • StatefulRules (list) --

      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 on the Suricata website.

      • (dict) --

        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 on the Suricata website.

        • Action (string) -- [REQUIRED]

          Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

          The actions for a stateful rule are defined as follows:

          • PASS - Permits the packets to go to the intended destination.

          • DROP - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration.

          • ALERT - Sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ALERT action, verify in the logs that the rule is filtering as you want, then change the action to DROP.

          • REJECT - Drops traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and an RST bit contained in the TCP header flags. REJECT is available only for TCP traffic. This option doesn't support FTP or IMAP protocols.

        • Header (dict) -- [REQUIRED]

          The stateful inspection criteria for this rule, used to inspect traffic flows.

          • Protocol (string) -- [REQUIRED]

            The protocol to inspect for. To specify all, you can use IP, because all traffic on Amazon Web Services and on the internet is IP.

          • Source (string) -- [REQUIRED]

            The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

            Examples:

            • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

            • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

            • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

            • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

            For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

          • SourcePort (string) -- [REQUIRED]

            The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

          • Direction (string) -- [REQUIRED]

            The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

          • Destination (string) -- [REQUIRED]

            The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

            Examples:

            • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

            • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

            • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

            • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

            For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

          • DestinationPort (string) -- [REQUIRED]

            The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

        • RuleOptions (list) -- [REQUIRED]

          Additional options for the rule. These are the Suricata RuleOptions settings.

          • (dict) --

            Additional settings for a stateful rule. This is part of the StatefulRule configuration.

            • Keyword (string) -- [REQUIRED]

              The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

            • Settings (list) --

              The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

              • (string) --

    • StatelessRulesAndCustomActions (dict) --

      Stateless inspection criteria to be used in a stateless rule group.

      • StatelessRules (list) -- [REQUIRED]

        Defines the set of stateless rules for use in a stateless rule group.

        • (dict) --

          A single stateless rule. This is used in StatelessRulesAndCustomActions.

          • RuleDefinition (dict) -- [REQUIRED]

            Defines the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria.

            • MatchAttributes (dict) -- [REQUIRED]

              Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags.

              • Sources (list) --

                The source IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address.

                • (dict) --

                  A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                  • AddressDefinition (string) -- [REQUIRED]

                    Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                    Examples:

                    • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                    • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                    • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                    • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                    For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • Destinations (list) --

                The destination IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address.

                • (dict) --

                  A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                  • AddressDefinition (string) -- [REQUIRED]

                    Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                    Examples:

                    • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                    • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                    • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                    • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                    For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • SourcePorts (list) --

                The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                If not specified, this matches with any source port.

                This setting is only used for protocols 6 (TCP) and 17 (UDP).

                • (dict) --

                  A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                  • FromPort (integer) -- [REQUIRED]

                    The lower limit of the port range. This must be less than or equal to the ToPort specification.

                  • ToPort (integer) -- [REQUIRED]

                    The upper limit of the port range. This must be greater than or equal to the FromPort specification.

              • DestinationPorts (list) --

                The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                This setting is only used for protocols 6 (TCP) and 17 (UDP).

                • (dict) --

                  A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                  • FromPort (integer) -- [REQUIRED]

                    The lower limit of the port range. This must be less than or equal to the ToPort specification.

                  • ToPort (integer) -- [REQUIRED]

                    The upper limit of the port range. This must be greater than or equal to the FromPort specification.

              • Protocols (list) --

                The protocols to inspect for, specified using the assigned internet protocol number (IANA) for each protocol. If not specified, this matches with any protocol.

                • (integer) --

              • TCPFlags (list) --

                The TCP flags and masks to inspect for. If not specified, this matches with any settings. This setting is only used for protocol 6 (TCP).

                • (dict) --

                  TCP flags and masks to inspect packets for, used in stateless rules MatchAttributes settings.

                  • Flags (list) -- [REQUIRED]

                    Used in conjunction with the Masks setting to define the flags that must be set and flags that must not be set in order for the packet to match. This setting can only specify values that are also specified in the Masks setting.

                    For the flags that are specified in the masks setting, the following must be true for the packet to match:

                    • The ones that are set in this flags setting must be set in the packet.

                    • The ones that are not set in this flags setting must also not be set in the packet.

                    • (string) --

                  • Masks (list) --

                    The set of flags to consider in the inspection. To inspect all flags in the valid values list, leave this with no setting.

                    • (string) --

            • Actions (list) -- [REQUIRED]

              The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action and you can add custom actions.

              For every rule, you must specify exactly one of the following standard actions.

              • aws:pass - Discontinues all inspection of the packet and permits it to go to its intended destination.

              • aws:drop - Discontinues all inspection of the packet and blocks it from going to its intended destination.

              • aws:forward_to_sfe - Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection.

              Additionally, you can specify a custom action. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this Actions setting. For information about the options, see CustomAction.

              To provide more than one action in this setting, separate the settings with a comma. For example, if you have a custom PublishMetrics action that you've named MyMetricsAction, then you could specify the standard action aws:pass and the custom action with [“aws:pass”, “MyMetricsAction”].

              • (string) --

          • Priority (integer) -- [REQUIRED]

            Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group.

            Each stateless rule group uses exactly one StatelessRulesAndCustomActions object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single StatelessRules object.

            You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.

      • CustomActions (list) --

        Defines an array of individual custom action definitions that are available for use by the stateless rules in this StatelessRulesAndCustomActions specification. You name each custom action that you define, and then you can use it by name in your StatelessRule RuleDefinition Actions specification.

        • (dict) --

          An optional, non-standard action to use for stateless packet handling. You can define this in addition to the standard action that you must specify.

          You define and name the custom actions that you want to be able to use, and then you reference them by name in your actions settings.

          You can use custom actions in the following places:

          • In a rule group's StatelessRulesAndCustomActions specification. The custom actions are available for use by name inside the StatelessRulesAndCustomActions where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.

          • In a FirewallPolicy specification, in StatelessCustomActions. The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.

          • ActionName (string) -- [REQUIRED]

            The descriptive name of the custom action. You can't change the name of a custom action after you create it.

          • ActionDefinition (dict) -- [REQUIRED]

            The custom action associated with the action name.

            • PublishMetricAction (dict) --

              Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. This setting defines a CloudWatch dimension value to be published.

              You can pair this custom action with any of the standard stateless rule actions. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it.

              • Dimensions (list) -- [REQUIRED]

                • (dict) --

                  The value to use in an Amazon CloudWatch custom metric dimension. This is used in the PublishMetrics CustomAction. A CloudWatch custom metric dimension is a name/value pair that's part of the identity of a metric.

                  Network Firewall sets the dimension name to CustomAction and you provide the dimension value.

                  For more information about CloudWatch custom metric dimensions, see Publishing Custom Metrics in the Amazon CloudWatch User Guide.

                  • Value (string) -- [REQUIRED]

                    The value to use in the custom metric dimension.

  • StatefulRuleOptions (dict) --

    Additional options governing how Network Firewall handles stateful rules. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings. Some limitations apply; for more information, see Strict evaluation order in the Network Firewall Developer Guide.

    • RuleOrder (string) --

      Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

type FirewallRuleGroup:

dict

param FirewallRuleGroup:

An object that defines the rules in a firewall engine rule group, for use in a Next Generation policy.

  • RulesSource (dict) -- [REQUIRED]

    The stateful inspection criteria for the firewall engine rule group.

    • RulesString (string) --

      Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

    • FirewallRules (list) --

      An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

      • (dict) --

        A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • Action (string) -- [REQUIRED]

          The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

          • ACCEPT - Allow the traffic.

          • DROP - Block the traffic and discontinue inspection.

          • REJECT - Block the traffic and send a TCP reset packet back to the client.

          • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

          • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

          You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • ActionScope (string) -- [REQUIRED]

          The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

          • PACKET - The current packet only.

          • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

          • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

          • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

          In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

        • Hook (string) -- [REQUIRED]

          The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

        • Protocol (string) -- [REQUIRED]

          The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

        • SourceIPs (string) --

          The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

        • DestIPs (string) --

          The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

        • SourcePorts (string) --

          The source ports to inspect for.

        • DestPorts (string) --

          The destination ports to inspect for.

        • RuleOptions (list) --

          Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

          • (dict) --

            Additional settings for a stateful rule. This is part of the StatefulRule configuration.

            • Keyword (string) -- [REQUIRED]

              The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

            • Settings (list) --

              The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

              • (string) --

        • AcceptPriorHooks (boolean) --

          Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • AlertEnabled (boolean) --

          Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

        • BypassIPSEnabled (boolean) --

          Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • RuleMetadata (dict) --

          Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

          • RuleEnabled (boolean) --

            Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

          • RuleDescription (string) --

            A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

    • RulesSourceList (dict) --

      Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

      • Targets (list) -- [REQUIRED]

        The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

        • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

        • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

        • (string) --

      • TargetTypes (list) -- [REQUIRED]

        The types of matching to perform against the domains in Targets. You can specify any combination of the following:

        • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

        • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

        • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

        AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

        Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

        • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

        • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

        • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

        An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

        • (string) --

      • GeneratedRulesType (string) -- [REQUIRED]

        Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

type IpsRuleGroup:

dict

param IpsRuleGroup:

An object that defines the rules in an IPS engine rule group, for use in a Next Generation policy.

  • RulesSource (dict) -- [REQUIRED]

    The stateful inspection criteria for the IPS engine rule group.

    • RulesString (string) --

      IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the IPS engine rule group.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

type Rules:

string

param Rules:

A string containing stateful rule group rules specifications in Suricata flat format, with one rule per line. Use this to import your existing Suricata compatible rule groups.

You can provide your rule group specification in Suricata flat format through this setting when you create or update your rule group. The call response returns a RuleGroup object that Network Firewall has populated from your string.

type Type:

string

param Type:

[REQUIRED]

Indicates the type of the rule group. Valid values are:

  • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

  • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

  • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

  • IPS - IPS engine rules, for use in a Next Generation policy.

type Description:

string

param Description:

A description of the rule group.

type Capacity:

integer

param Capacity:

[REQUIRED]

The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

Capacity for a stateless rule group

For a stateless rule group, the capacity required is the sum of the capacity requirements of the individual rules that you expect to have in the rule group.

To calculate the capacity requirement of a single rule, multiply the capacity requirement values of each of the rule's match settings:

  • A match setting with no criteria specified has a value of 1.

  • A match setting with Any specified has a value of 1.

  • All other match settings have a value equal to the number of elements provided in the setting. For example, a protocol setting ["UDP"] and a source setting ["10.0.0.0/24"] each have a value of 1. A protocol setting ["UDP","TCP"] has a value of 2. A source setting ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"] has a value of 3.

A rule with no criteria specified in any of its match settings has a capacity requirement of 1. A rule with protocol setting ["UDP","TCP"], source setting ["10.0.0.0/24","10.0.0.1/24","10.0.0.2/24"], and a single specification or no specification for each of the other match settings has a capacity requirement of 6.

Capacity for a stateful rule group

For a stateful rule group, the minimum capacity required is the number of individual rules that you expect to have in the rule group.

type Tags:

list

param Tags:

The key:value pairs to associate with the resource.

  • (dict) --

    A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

    • Key (string) -- [REQUIRED]

      The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

    • Value (string) -- [REQUIRED]

      The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

type DryRun:

boolean

param DryRun:

Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.

If set to TRUE, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to FALSE, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.

If set to FALSE, Network Firewall makes the requested changes to your resources.

type EncryptionConfiguration:

dict

param EncryptionConfiguration:

A complex type that contains settings for encryption of your rule group resources.

  • KeyId (string) --

    The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

  • Type (string) -- [REQUIRED]

    The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

type SourceMetadata:

dict

param SourceMetadata:

A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to keep track of updates made to the originating rule group.

  • SourceArn (string) --

    The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

  • SourceUpdateToken (string) --

    The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

type AnalyzeRuleGroup:

boolean

param AnalyzeRuleGroup:

Indicates whether you want Network Firewall to analyze the stateless rules in the rule group for rule behavior such as asymmetric routing. If set to TRUE, Network Firewall runs the analysis and then creates the rule group for you. To run the stateless rule group analyzer without creating the rule group, set DryRun to TRUE.

type SummaryConfiguration:

dict

param SummaryConfiguration:

An object that contains a RuleOptions array of strings. You use RuleOptions to determine which of the following RuleSummary values are returned in response to DescribeRuleGroupSummary.

  • Metadata - returns

  • Msg

  • SID

  • RuleOptions (list) --

    Specifies the selected rule options returned by DescribeRuleGroupSummary.

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'RuleGroupResponse': {
        'RuleGroupArn': 'string',
        'RuleGroupName': 'string',
        'RuleGroupId': 'string',
        'Description': 'string',
        'Type': 'STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
        'Capacity': 123,
        'RuleGroupStatus': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'SourceMetadata': {
            'SourceArn': 'string',
            'SourceUpdateToken': 'string'
        },
        'SnsTopic': 'string',
        'LastModifiedTime': datetime(2015, 1, 1),
        'AnalysisResults': [
            {
                'IdentifiedRuleIds': [
                    'string',
                ],
                'IdentifiedType': 'STATELESS_RULE_FORWARDING_ASYMMETRICALLY'|'STATELESS_RULE_CONTAINS_TCP_FLAGS',
                'AnalysisDetail': 'string'
            },
        ],
        'SummaryConfiguration': {
            'RuleOptions': [
                'SID'|'MSG'|'METADATA',
            ]
        }
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.

      To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

    • RuleGroupResponse (dict) --

      The high-level properties of a rule group. This, along with the RuleGroup, define the rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

      • RuleGroupArn (string) --

        The Amazon Resource Name (ARN) of the rule group.

      • RuleGroupName (string) --

        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      • RuleGroupId (string) --

        The unique identifier for the rule group.

      • Description (string) --

        A description of the rule group.

      • Type (string) --

        Indicates the type of the rule group. Valid values are:

        • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

        • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

        • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

        • IPS - IPS engine rules, for use in a Next Generation policy.

      • Capacity (integer) --

        The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

        You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

      • RuleGroupStatus (string) --

        Detailed information about the current status of a rule group.

      • Tags (list) --

        The key:value pairs to associate with the resource.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedCapacity (integer) --

        The number of capacity units currently consumed by the rule group rules.

      • NumberOfAssociations (integer) --

        The number of firewall policies that use this rule group.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your rule group.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • SourceMetadata (dict) --

        A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to track the version updates made to the originating rule group.

        • SourceArn (string) --

          The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

        • SourceUpdateToken (string) --

          The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

      • SnsTopic (string) --

        The Amazon Resource Name (ARN) of the Amazon Simple Notification Service SNS topic that's used to record changes to the managed rule group. You can subscribe to the SNS topic to receive notifications when the managed rule group is modified, such as for new versions and for version expiration. For more information, see the Amazon Simple Notification Service Developer Guide..

      • LastModifiedTime (datetime) --

        The last time that the rule group was changed.

      • AnalysisResults (list) --

        The list of analysis results for AnalyzeRuleGroup. If you set AnalyzeRuleGroup to TRUE in CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup, Network Firewall analyzes the rule group and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in the list of analysis results.

        • (dict) --

          The analysis result for Network Firewall's stateless rule group analyzer. Every time you call CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup on a stateless rule group, Network Firewall analyzes the stateless rule groups in your account and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in a list of analysis results.

          The AnalysisResult data type is not related to traffic analysis reports you generate using StartAnalysisReport. For information on traffic analysis report results, see AnalysisTypeReportResult.

          • IdentifiedRuleIds (list) --

            The priority number of the stateless rules identified in the analysis.

            • (string) --

          • IdentifiedType (string) --

            The types of rule configurations that Network Firewall analyzes your rule groups for. Network Firewall analyzes stateless rule groups for the following types of rule configurations:

            • STATELESS_RULE_FORWARDING_ASYMMETRICALLY Cause: One or more stateless rules with the action pass or forward are forwarding traffic asymmetrically. Specifically, the rule's set of source IP addresses or their associated port numbers, don't match the set of destination IP addresses or their associated port numbers. To mitigate: Make sure that there's an existing return path. For example, if the rule allows traffic from source 10.1.0.0/24 to destination 20.1.0.0/24, you should allow return traffic from source 20.1.0.0/24 to destination 10.1.0.0/24.

            • STATELESS_RULE_CONTAINS_TCP_FLAGS Cause: At least one stateless rule with the action pass or forward contains TCP flags that are inconsistent in the forward and return directions. To mitigate: Prevent asymmetric routing issues caused by TCP flags by following these actions:

              • Remove unnecessary TCP flag inspections from the rules.

              • If you need to inspect TCP flags, check that the rules correctly account for changes in TCP flags throughout the TCP connection cycle, for example SYN and ACK flags used in a 3-way TCP handshake.

          • AnalysisDetail (string) --

            Provides analysis details for the identified rule.

      • SummaryConfiguration (dict) --

        A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by DescribeRuleGroupSummary.

        • The RuleOptions specified in SummaryConfiguration

        • Rule metadata organization preferences

        • RuleOptions (list) --

          Specifies the selected rule options returned by DescribeRuleGroupSummary.

          • (string) --

DeleteRuleGroup (updated) Link ¶
Changes (request, response)
Request
{'Type': {'FIREWALL', 'IPS'}}
Response
{'RuleGroupResponse': {'Type': {'FIREWALL', 'IPS'}}}

Deletes the specified RuleGroup.

See also: AWS API Documentation

Request Syntax

client.delete_rule_group(
    RuleGroupName='string',
    RuleGroupArn='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS'
)
type RuleGroupName:

string

param RuleGroupName:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleGroupArn:

string

param RuleGroupArn:

The Amazon Resource Name (ARN) of the rule group.

You must specify the ARN or the name, and you can specify both.

type Type:

string

param Type:

Indicates the type of the rule group. Valid values are:

  • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

  • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

  • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

  • IPS - IPS engine rules, for use in a Next Generation policy.

rtype:

dict

returns:

Response Syntax

{
    'RuleGroupResponse': {
        'RuleGroupArn': 'string',
        'RuleGroupName': 'string',
        'RuleGroupId': 'string',
        'Description': 'string',
        'Type': 'STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
        'Capacity': 123,
        'RuleGroupStatus': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'SourceMetadata': {
            'SourceArn': 'string',
            'SourceUpdateToken': 'string'
        },
        'SnsTopic': 'string',
        'LastModifiedTime': datetime(2015, 1, 1),
        'AnalysisResults': [
            {
                'IdentifiedRuleIds': [
                    'string',
                ],
                'IdentifiedType': 'STATELESS_RULE_FORWARDING_ASYMMETRICALLY'|'STATELESS_RULE_CONTAINS_TCP_FLAGS',
                'AnalysisDetail': 'string'
            },
        ],
        'SummaryConfiguration': {
            'RuleOptions': [
                'SID'|'MSG'|'METADATA',
            ]
        }
    }
}

Response Structure

  • (dict) --

    • RuleGroupResponse (dict) --

      The high-level properties of a rule group. This, along with the RuleGroup, define the rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

      • RuleGroupArn (string) --

        The Amazon Resource Name (ARN) of the rule group.

      • RuleGroupName (string) --

        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      • RuleGroupId (string) --

        The unique identifier for the rule group.

      • Description (string) --

        A description of the rule group.

      • Type (string) --

        Indicates the type of the rule group. Valid values are:

        • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

        • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

        • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

        • IPS - IPS engine rules, for use in a Next Generation policy.

      • Capacity (integer) --

        The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

        You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

      • RuleGroupStatus (string) --

        Detailed information about the current status of a rule group.

      • Tags (list) --

        The key:value pairs to associate with the resource.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedCapacity (integer) --

        The number of capacity units currently consumed by the rule group rules.

      • NumberOfAssociations (integer) --

        The number of firewall policies that use this rule group.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your rule group.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • SourceMetadata (dict) --

        A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to track the version updates made to the originating rule group.

        • SourceArn (string) --

          The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

        • SourceUpdateToken (string) --

          The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

      • SnsTopic (string) --

        The Amazon Resource Name (ARN) of the Amazon Simple Notification Service SNS topic that's used to record changes to the managed rule group. You can subscribe to the SNS topic to receive notifications when the managed rule group is modified, such as for new versions and for version expiration. For more information, see the Amazon Simple Notification Service Developer Guide..

      • LastModifiedTime (datetime) --

        The last time that the rule group was changed.

      • AnalysisResults (list) --

        The list of analysis results for AnalyzeRuleGroup. If you set AnalyzeRuleGroup to TRUE in CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup, Network Firewall analyzes the rule group and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in the list of analysis results.

        • (dict) --

          The analysis result for Network Firewall's stateless rule group analyzer. Every time you call CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup on a stateless rule group, Network Firewall analyzes the stateless rule groups in your account and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in a list of analysis results.

          The AnalysisResult data type is not related to traffic analysis reports you generate using StartAnalysisReport. For information on traffic analysis report results, see AnalysisTypeReportResult.

          • IdentifiedRuleIds (list) --

            The priority number of the stateless rules identified in the analysis.

            • (string) --

          • IdentifiedType (string) --

            The types of rule configurations that Network Firewall analyzes your rule groups for. Network Firewall analyzes stateless rule groups for the following types of rule configurations:

            • STATELESS_RULE_FORWARDING_ASYMMETRICALLY Cause: One or more stateless rules with the action pass or forward are forwarding traffic asymmetrically. Specifically, the rule's set of source IP addresses or their associated port numbers, don't match the set of destination IP addresses or their associated port numbers. To mitigate: Make sure that there's an existing return path. For example, if the rule allows traffic from source 10.1.0.0/24 to destination 20.1.0.0/24, you should allow return traffic from source 20.1.0.0/24 to destination 10.1.0.0/24.

            • STATELESS_RULE_CONTAINS_TCP_FLAGS Cause: At least one stateless rule with the action pass or forward contains TCP flags that are inconsistent in the forward and return directions. To mitigate: Prevent asymmetric routing issues caused by TCP flags by following these actions:

              • Remove unnecessary TCP flag inspections from the rules.

              • If you need to inspect TCP flags, check that the rules correctly account for changes in TCP flags throughout the TCP connection cycle, for example SYN and ACK flags used in a 3-way TCP handshake.

          • AnalysisDetail (string) --

            Provides analysis details for the identified rule.

      • SummaryConfiguration (dict) --

        A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by DescribeRuleGroupSummary.

        • The RuleOptions specified in SummaryConfiguration

        • Rule metadata organization preferences

        • RuleOptions (list) --

          Specifies the selected rule options returned by DescribeRuleGroupSummary.

          • (string) --

DescribeRuleGroup (updated) Link ¶
Changes (request, response)
Request
{'RuleOutputFormat': 'FIREWALL_RULES | RULES_STRING',
 'Type': {'FIREWALL', 'IPS'}}
Response
{'FirewallRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                       'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                         'PortSets': {'string': {'Definition': ['string']}}},
                       'RulesSource': {'FirewallRules': [{'AcceptPriorHooks': 'boolean',
                                                          'Action': 'ACCEPT | '
                                                                    'DROP | '
                                                                    'REJECT | '
                                                                    'REJECT_DST '
                                                                    '| '
                                                                    'REJECT_BOTH',
                                                          'ActionScope': 'FLOW '
                                                                         '| TX '
                                                                         '| '
                                                                         'HOOK '
                                                                         '| '
                                                                         'PACKET',
                                                          'AlertEnabled': 'boolean',
                                                          'BypassIPSEnabled': 'boolean',
                                                          'DestIPs': 'string',
                                                          'DestPorts': 'string',
                                                          'Hook': 'TCP_ALL | '
                                                                  'TCP_FLOW_START '
                                                                  '| '
                                                                  'TCP_PRE_FLOW '
                                                                  '| '
                                                                  'TCP_PRE_STREAM '
                                                                  '| SCTP_ALL '
                                                                  '| '
                                                                  'SCTP_FLOW_START '
                                                                  '| '
                                                                  'SCTP_PRE_FLOW '
                                                                  '| '
                                                                  'SCTP_PRE_STREAM '
                                                                  '| IPV6_ALL '
                                                                  '| '
                                                                  'IPV6_FLOW_START '
                                                                  '| '
                                                                  'IPV6_PRE_FLOW '
                                                                  '| '
                                                                  'IPV6_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV6_ALL '
                                                                  '| '
                                                                  'ICMPV6_FLOW_START '
                                                                  '| '
                                                                  'ICMPV6_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV6_PRE_STREAM '
                                                                  '| UDP_ALL | '
                                                                  'UDP_FLOW_START '
                                                                  '| '
                                                                  'UDP_PRE_FLOW '
                                                                  '| '
                                                                  'UDP_PRE_STREAM '
                                                                  '| ICMP_ALL '
                                                                  '| '
                                                                  'ICMP_FLOW_START '
                                                                  '| '
                                                                  'ICMP_PRE_FLOW '
                                                                  '| '
                                                                  'ICMP_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV4_ALL '
                                                                  '| '
                                                                  'ICMPV4_FLOW_START '
                                                                  '| '
                                                                  'ICMPV4_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV4_PRE_STREAM '
                                                                  '| IP_ALL | '
                                                                  'IP_FLOW_START '
                                                                  '| '
                                                                  'IP_PRE_FLOW '
                                                                  '| '
                                                                  'IP_PRE_STREAM '
                                                                  '| IPV4_ALL '
                                                                  '| '
                                                                  'IPV4_FLOW_START '
                                                                  '| '
                                                                  'IPV4_PRE_FLOW '
                                                                  '| '
                                                                  'IPV4_PRE_STREAM '
                                                                  '| '
                                                                  'TLS_CLIENT_STARTED '
                                                                  '| '
                                                                  'TLS_CLIENT_HELLO '
                                                                  '| '
                                                                  'TLS_CLIENT_CERT '
                                                                  '| '
                                                                  'TLS_CLIENT_DATA '
                                                                  '| '
                                                                  'TLS_CLIENT_FINISHED '
                                                                  '| '
                                                                  'TLS_SERVER_STARTED '
                                                                  '| '
                                                                  'TLS_SERVER_HELLO '
                                                                  '| '
                                                                  'TLS_SERVER_CERT '
                                                                  '| '
                                                                  'TLS_SERVER_DATA '
                                                                  '| '
                                                                  'TLS_SERVER_FINISHED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_LINE '
                                                                  '| '
                                                                  'HTTP1_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP1_REQUEST_BODY '
                                                                  '| '
                                                                  'HTTP1_REQUEST_TRAILER '
                                                                  '| '
                                                                  'HTTP1_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_LINE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_BODY '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_TRAILER '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMTP_REQUEST_DATA '
                                                                  '| '
                                                                  'SMTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMTP_RESPONSE_DATA '
                                                                  '| '
                                                                  'SMTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMB_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_REQUEST_STARTED '
                                                                  '| '
                                                                  'DCERPC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NFS_REQUEST_STARTED '
                                                                  '| '
                                                                  'NFS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NFS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NFS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'KRB5_REQUEST_STARTED '
                                                                  '| '
                                                                  'KRB5_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'KRB5_RESPONSE_STARTED '
                                                                  '| '
                                                                  'KRB5_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'IKE_REQUEST_STARTED '
                                                                  '| '
                                                                  'IKE_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'IKE_RESPONSE_STARTED '
                                                                  '| '
                                                                  'IKE_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TFTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'TFTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TFTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TFTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DHCP_REQUEST_STARTED '
                                                                  '| '
                                                                  'DHCP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DHCP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DHCP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'QUIC_REQUEST_STARTED '
                                                                  '| '
                                                                  'QUIC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'QUIC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'QUIC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RDP_REQUEST_STARTED '
                                                                  '| '
                                                                  'RDP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RDP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RDP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RFB_REQUEST_STARTED '
                                                                  '| '
                                                                  'RFB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RFB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RFB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MQTT_REQUEST_STARTED '
                                                                  '| '
                                                                  'MQTT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MQTT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MQTT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_REQUEST_STARTED '
                                                                  '| '
                                                                  'PGSQL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SNMP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SNMP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SNMP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SNMP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'NTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TELNET_REQUEST_STARTED '
                                                                  '| '
                                                                  'TELNET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TELNET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TELNET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'LDAP_REQUEST_STARTED '
                                                                  '| '
                                                                  'LDAP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'LDAP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'LDAP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'POP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'POP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'POP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'POP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MDNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'MDNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MDNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MDNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SSH_REQUEST_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_REQUEST_FINISHED '
                                                                  '| '
                                                                  'SSH_RESPONSE_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_RESPONSE_FINISHED',
                                                          'Protocol': 'IP | '
                                                                      'TCP | '
                                                                      'UDP | '
                                                                      'ICMP | '
                                                                      'HTTP | '
                                                                      'FTP | '
                                                                      'TLS | '
                                                                      'SMB | '
                                                                      'DNS | '
                                                                      'DCERPC '
                                                                      '| SSH | '
                                                                      'SMTP | '
                                                                      'MSN | '
                                                                      'KRB5 | '
                                                                      'IKEV2 | '
                                                                      'TFTP | '
                                                                      'NTP | '
                                                                      'DHCP | '
                                                                      'HTTP2 | '
                                                                      'QUIC | '
                                                                      'ICMPV4 '
                                                                      '| '
                                                                      'ICMPV6 '
                                                                      '| SCTP '
                                                                      '| IPV4 '
                                                                      '| IPV6 '
                                                                      '| DOH2 '
                                                                      '| '
                                                                      'FTP_DATA '
                                                                      '| NFS | '
                                                                      'RDP | '
                                                                      'RFB | '
                                                                      'MQTT | '
                                                                      'PGSQL | '
                                                                      'SNMP | '
                                                                      'TELNET '
                                                                      '| '
                                                                      'WEBSOCKET '
                                                                      '| LDAP '
                                                                      '| POP3 '
                                                                      '| MDNS '
                                                                      '| '
                                                                      'BITTORRENT_DHT '
                                                                      '| DNP3',
                                                          'RuleMetadata': {'RuleDescription': 'string',
                                                                           'RuleEnabled': 'boolean'},
                                                          'RuleOptions': [{'Keyword': 'string',
                                                                           'Settings': ['string']}],
                                                          'SourceIPs': 'string',
                                                          'SourcePorts': 'string'}],
                                       'RulesSourceList': {'GeneratedRulesType': 'ALLOWLIST '
                                                                                 '| '
                                                                                 'DENYLIST '
                                                                                 '| '
                                                                                 'REJECTLIST '
                                                                                 '| '
                                                                                 'ALERTLIST',
                                                           'TargetTypes': ['TLS_SNI '
                                                                           '| '
                                                                           'HTTP_HOST '
                                                                           '| '
                                                                           'AWS_ROUTE_53_RESOLVED_DOMAIN'],
                                                           'Targets': ['string']},
                                       'RulesString': 'string'}},
 'IpsRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                  'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                    'PortSets': {'string': {'Definition': ['string']}}},
                  'RulesSource': {'RulesString': 'string'}},
 'RuleGroupResponse': {'Type': {'FIREWALL', 'IPS'}}}

Returns the data objects for the specified rule group.

See also: AWS API Documentation

Request Syntax

client.describe_rule_group(
    RuleGroupName='string',
    RuleGroupArn='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
    AnalyzeRuleGroup=True|False,
    RuleOutputFormat='FIREWALL_RULES'|'RULES_STRING'
)
type RuleGroupName:

string

param RuleGroupName:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleGroupArn:

string

param RuleGroupArn:

The Amazon Resource Name (ARN) of the rule group.

You must specify the ARN or the name, and you can specify both.

type Type:

string

param Type:

Indicates the type of the rule group. Valid values are:

  • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

  • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

  • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

  • IPS - IPS engine rules, for use in a Next Generation policy.

type AnalyzeRuleGroup:

boolean

param AnalyzeRuleGroup:

Indicates whether you want Network Firewall to analyze the stateless rules in the rule group for rule behavior such as asymmetric routing. If set to TRUE, Network Firewall runs the analysis.

type RuleOutputFormat:

string

param RuleOutputFormat:

For a firewall engine rule group, the format in which to return the rules. Specify one of the following values:

  • FIREWALL_RULES - Returns the rules as structured FirewallRule objects.

  • RULES_STRING - Returns the rules as a Suricata-compatible firewall-mode rule string.

If you don't specify a format, Network Firewall returns the rules in the format you provided them in. This setting applies only to FIREWALL and IPS rule groups; IPS engine rule groups support only RULES_STRING.

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'RuleGroup': {
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        },
        'RulesSource': {
            'RulesString': 'string',
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            },
            'StatefulRules': [
                {
                    'Action': 'PASS'|'DROP'|'ALERT'|'REJECT',
                    'Header': {
                        'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'IMAP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC',
                        'Source': 'string',
                        'SourcePort': 'string',
                        'Direction': 'FORWARD'|'ANY',
                        'Destination': 'string',
                        'DestinationPort': 'string'
                    },
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ]
                },
            ],
            'StatelessRulesAndCustomActions': {
                'StatelessRules': [
                    {
                        'RuleDefinition': {
                            'MatchAttributes': {
                                'Sources': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'Destinations': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'SourcePorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'DestinationPorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'Protocols': [
                                    123,
                                ],
                                'TCPFlags': [
                                    {
                                        'Flags': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ],
                                        'Masks': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ]
                                    },
                                ]
                            },
                            'Actions': [
                                'string',
                            ]
                        },
                        'Priority': 123
                    },
                ],
                'CustomActions': [
                    {
                        'ActionName': 'string',
                        'ActionDefinition': {
                            'PublishMetricAction': {
                                'Dimensions': [
                                    {
                                        'Value': 'string'
                                    },
                                ]
                            }
                        }
                    },
                ]
            }
        },
        'StatefulRuleOptions': {
            'RuleOrder': 'DEFAULT_ACTION_ORDER'|'STRICT_ORDER'
        }
    },
    'FirewallRuleGroup': {
        'RulesSource': {
            'RulesString': 'string',
            'FirewallRules': [
                {
                    'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                    'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                    'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                    'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                    'SourceIPs': 'string',
                    'DestIPs': 'string',
                    'SourcePorts': 'string',
                    'DestPorts': 'string',
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ],
                    'AcceptPriorHooks': True|False,
                    'AlertEnabled': True|False,
                    'BypassIPSEnabled': True|False,
                    'RuleMetadata': {
                        'RuleEnabled': True|False,
                        'RuleDescription': 'string'
                    }
                },
            ],
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            }
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    'IpsRuleGroup': {
        'RulesSource': {
            'RulesString': 'string'
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    'RuleGroupResponse': {
        'RuleGroupArn': 'string',
        'RuleGroupName': 'string',
        'RuleGroupId': 'string',
        'Description': 'string',
        'Type': 'STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
        'Capacity': 123,
        'RuleGroupStatus': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'SourceMetadata': {
            'SourceArn': 'string',
            'SourceUpdateToken': 'string'
        },
        'SnsTopic': 'string',
        'LastModifiedTime': datetime(2015, 1, 1),
        'AnalysisResults': [
            {
                'IdentifiedRuleIds': [
                    'string',
                ],
                'IdentifiedType': 'STATELESS_RULE_FORWARDING_ASYMMETRICALLY'|'STATELESS_RULE_CONTAINS_TCP_FLAGS',
                'AnalysisDetail': 'string'
            },
        ],
        'SummaryConfiguration': {
            'RuleOptions': [
                'SID'|'MSG'|'METADATA',
            ]
        }
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.

      To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

    • RuleGroup (dict) --

      The object that defines the rules in a rule group. This, along with RuleGroupResponse, define the rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

      Network Firewall uses a rule group to inspect and control network traffic. You define stateless rule groups to inspect individual packets and you define stateful rule groups to inspect packets in the context of their traffic flow.

      To use a rule group, you include it by reference in an Network Firewall firewall policy, then you use the policy in a firewall. You can reference a rule group from more than one firewall policy, and you can use a firewall policy in more than one firewall.

      • RuleVariables (dict) --

        Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups.

        • IPSets (dict) --

          A list of IP addresses and address ranges, in CIDR notation.

          • (string) --

            • (dict) --

              A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

              • Definition (list) --

                The list of IP addresses and address ranges, in CIDR notation.

                • (string) --

        • PortSets (dict) --

          A list of port ranges.

          • (string) --

            • (dict) --

              A set of port ranges for use in the rules in a rule group.

              • Definition (list) --

                The set of port ranges.

                • (string) --

      • ReferenceSets (dict) --

        The list of a rule group's reference sets.

        • IPSetReferences (dict) --

          The list of IP set references.

          • (string) --

            • (dict) --

              Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

              Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

              • ReferenceArn (string) --

                The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

      • RulesSource (dict) --

        The stateful rules or stateless rules for the rule group.

        • RulesString (string) --

          Stateful inspection criteria, provided in Suricata compatible rules. Suricata is an open-source threat detection framework that includes a standard rule-based language for network traffic inspection.

          These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.

        • RulesSourceList (dict) --

          Stateful inspection criteria for a domain list rule group.

          • Targets (list) --

            The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

            • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

            • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

            • (string) --

          • TargetTypes (list) --

            The types of matching to perform against the domains in Targets. You can specify any combination of the following:

            • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

            • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

            • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

            AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

            Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

            • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

            • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

            • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

            An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

            • (string) --

          • GeneratedRulesType (string) --

            Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

        • StatefulRules (list) --

          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 on the Suricata website.

          • (dict) --

            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 on the Suricata website.

            • Action (string) --

              Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

              The actions for a stateful rule are defined as follows:

              • PASS - Permits the packets to go to the intended destination.

              • DROP - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration.

              • ALERT - Sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ALERT action, verify in the logs that the rule is filtering as you want, then change the action to DROP.

              • REJECT - Drops traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and an RST bit contained in the TCP header flags. REJECT is available only for TCP traffic. This option doesn't support FTP or IMAP protocols.

            • Header (dict) --

              The stateful inspection criteria for this rule, used to inspect traffic flows.

              • Protocol (string) --

                The protocol to inspect for. To specify all, you can use IP, because all traffic on Amazon Web Services and on the internet is IP.

              • Source (string) --

                The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

                Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                Examples:

                • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • SourcePort (string) --

                The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

              • Direction (string) --

                The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

              • Destination (string) --

                The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

                Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                Examples:

                • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • DestinationPort (string) --

                The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

            • RuleOptions (list) --

              Additional options for the rule. These are the Suricata RuleOptions settings.

              • (dict) --

                Additional settings for a stateful rule. This is part of the StatefulRule configuration.

                • Keyword (string) --

                  The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

                • Settings (list) --

                  The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

                  • (string) --

        • StatelessRulesAndCustomActions (dict) --

          Stateless inspection criteria to be used in a stateless rule group.

          • StatelessRules (list) --

            Defines the set of stateless rules for use in a stateless rule group.

            • (dict) --

              A single stateless rule. This is used in StatelessRulesAndCustomActions.

              • RuleDefinition (dict) --

                Defines the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria.

                • MatchAttributes (dict) --

                  Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags.

                  • Sources (list) --

                    The source IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address.

                    • (dict) --

                      A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                      • AddressDefinition (string) --

                        Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                        Examples:

                        • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                        • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                        • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                        • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                        For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

                  • Destinations (list) --

                    The destination IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address.

                    • (dict) --

                      A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                      • AddressDefinition (string) --

                        Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                        Examples:

                        • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                        • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                        • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                        • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                        For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

                  • SourcePorts (list) --

                    The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                    If not specified, this matches with any source port.

                    This setting is only used for protocols 6 (TCP) and 17 (UDP).

                    • (dict) --

                      A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                      • FromPort (integer) --

                        The lower limit of the port range. This must be less than or equal to the ToPort specification.

                      • ToPort (integer) --

                        The upper limit of the port range. This must be greater than or equal to the FromPort specification.

                  • DestinationPorts (list) --

                    The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                    This setting is only used for protocols 6 (TCP) and 17 (UDP).

                    • (dict) --

                      A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                      • FromPort (integer) --

                        The lower limit of the port range. This must be less than or equal to the ToPort specification.

                      • ToPort (integer) --

                        The upper limit of the port range. This must be greater than or equal to the FromPort specification.

                  • Protocols (list) --

                    The protocols to inspect for, specified using the assigned internet protocol number (IANA) for each protocol. If not specified, this matches with any protocol.

                    • (integer) --

                  • TCPFlags (list) --

                    The TCP flags and masks to inspect for. If not specified, this matches with any settings. This setting is only used for protocol 6 (TCP).

                    • (dict) --

                      TCP flags and masks to inspect packets for, used in stateless rules MatchAttributes settings.

                      • Flags (list) --

                        Used in conjunction with the Masks setting to define the flags that must be set and flags that must not be set in order for the packet to match. This setting can only specify values that are also specified in the Masks setting.

                        For the flags that are specified in the masks setting, the following must be true for the packet to match:

                        • The ones that are set in this flags setting must be set in the packet.

                        • The ones that are not set in this flags setting must also not be set in the packet.

                        • (string) --

                      • Masks (list) --

                        The set of flags to consider in the inspection. To inspect all flags in the valid values list, leave this with no setting.

                        • (string) --

                • Actions (list) --

                  The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action and you can add custom actions.

                  For every rule, you must specify exactly one of the following standard actions.

                  • aws:pass - Discontinues all inspection of the packet and permits it to go to its intended destination.

                  • aws:drop - Discontinues all inspection of the packet and blocks it from going to its intended destination.

                  • aws:forward_to_sfe - Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection.

                  Additionally, you can specify a custom action. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this Actions setting. For information about the options, see CustomAction.

                  To provide more than one action in this setting, separate the settings with a comma. For example, if you have a custom PublishMetrics action that you've named MyMetricsAction, then you could specify the standard action aws:pass and the custom action with [“aws:pass”, “MyMetricsAction”].

                  • (string) --

              • Priority (integer) --

                Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group.

                Each stateless rule group uses exactly one StatelessRulesAndCustomActions object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single StatelessRules object.

                You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.

          • CustomActions (list) --

            Defines an array of individual custom action definitions that are available for use by the stateless rules in this StatelessRulesAndCustomActions specification. You name each custom action that you define, and then you can use it by name in your StatelessRule RuleDefinition Actions specification.

            • (dict) --

              An optional, non-standard action to use for stateless packet handling. You can define this in addition to the standard action that you must specify.

              You define and name the custom actions that you want to be able to use, and then you reference them by name in your actions settings.

              You can use custom actions in the following places:

              • In a rule group's StatelessRulesAndCustomActions specification. The custom actions are available for use by name inside the StatelessRulesAndCustomActions where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.

              • In a FirewallPolicy specification, in StatelessCustomActions. The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.

              • ActionName (string) --

                The descriptive name of the custom action. You can't change the name of a custom action after you create it.

              • ActionDefinition (dict) --

                The custom action associated with the action name.

                • PublishMetricAction (dict) --

                  Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. This setting defines a CloudWatch dimension value to be published.

                  You can pair this custom action with any of the standard stateless rule actions. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it.

                  • Dimensions (list) --

                    • (dict) --

                      The value to use in an Amazon CloudWatch custom metric dimension. This is used in the PublishMetrics CustomAction. A CloudWatch custom metric dimension is a name/value pair that's part of the identity of a metric.

                      Network Firewall sets the dimension name to CustomAction and you provide the dimension value.

                      For more information about CloudWatch custom metric dimensions, see Publishing Custom Metrics in the Amazon CloudWatch User Guide.

                      • Value (string) --

                        The value to use in the custom metric dimension.

      • StatefulRuleOptions (dict) --

        Additional options governing how Network Firewall handles stateful rules. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings. Some limitations apply; for more information, see Strict evaluation order in the Network Firewall Developer Guide.

        • RuleOrder (string) --

          Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

    • FirewallRuleGroup (dict) --

      The object that defines the rules in a firewall engine rule group, for use in a Next Generation policy.

      • RulesSource (dict) --

        The stateful inspection criteria for the firewall engine rule group.

        • RulesString (string) --

          Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • FirewallRules (list) --

          An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

          • (dict) --

            A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

            • Action (string) --

              The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

              • ACCEPT - Allow the traffic.

              • DROP - Block the traffic and discontinue inspection.

              • REJECT - Block the traffic and send a TCP reset packet back to the client.

              • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

              • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

              You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

            • ActionScope (string) --

              The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

              • PACKET - The current packet only.

              • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

              • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

              • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

              In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

            • Hook (string) --

              The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

            • Protocol (string) --

              The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

            • SourceIPs (string) --

              The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

            • DestIPs (string) --

              The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

            • SourcePorts (string) --

              The source ports to inspect for.

            • DestPorts (string) --

              The destination ports to inspect for.

            • RuleOptions (list) --

              Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

              • (dict) --

                Additional settings for a stateful rule. This is part of the StatefulRule configuration.

                • Keyword (string) --

                  The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

                • Settings (list) --

                  The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

                  • (string) --

            • AcceptPriorHooks (boolean) --

              Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

            • AlertEnabled (boolean) --

              Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

            • BypassIPSEnabled (boolean) --

              Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

            • RuleMetadata (dict) --

              Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

              • RuleEnabled (boolean) --

                Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

              • RuleDescription (string) --

                A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

        • RulesSourceList (dict) --

          Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

          • Targets (list) --

            The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

            • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

            • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

            • (string) --

          • TargetTypes (list) --

            The types of matching to perform against the domains in Targets. You can specify any combination of the following:

            • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

            • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

            • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

            AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

            Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

            • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

            • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

            • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

            An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

            • (string) --

          • GeneratedRulesType (string) --

            Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

      • RuleVariables (dict) --

        Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

        • IPSets (dict) --

          A list of IP addresses and address ranges, in CIDR notation.

          • (string) --

            • (dict) --

              A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

              • Definition (list) --

                The list of IP addresses and address ranges, in CIDR notation.

                • (string) --

        • PortSets (dict) --

          A list of port ranges.

          • (string) --

            • (dict) --

              A set of port ranges for use in the rules in a rule group.

              • Definition (list) --

                The set of port ranges.

                • (string) --

      • ReferenceSets (dict) --

        The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

        • IPSetReferences (dict) --

          The list of IP set references.

          • (string) --

            • (dict) --

              Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

              Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

              • ReferenceArn (string) --

                The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

    • IpsRuleGroup (dict) --

      The object that defines the rules in an IPS engine rule group, for use in a Next Generation policy.

      • RulesSource (dict) --

        The stateful inspection criteria for the IPS engine rule group.

        • RulesString (string) --

          IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

      • RuleVariables (dict) --

        Settings that are available for use in the rules in the IPS engine rule group.

        • IPSets (dict) --

          A list of IP addresses and address ranges, in CIDR notation.

          • (string) --

            • (dict) --

              A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

              • Definition (list) --

                The list of IP addresses and address ranges, in CIDR notation.

                • (string) --

        • PortSets (dict) --

          A list of port ranges.

          • (string) --

            • (dict) --

              A set of port ranges for use in the rules in a rule group.

              • Definition (list) --

                The set of port ranges.

                • (string) --

      • ReferenceSets (dict) --

        The list of a rule group's reference sets.

        • IPSetReferences (dict) --

          The list of IP set references.

          • (string) --

            • (dict) --

              Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

              Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

              • ReferenceArn (string) --

                The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

    • RuleGroupResponse (dict) --

      The high-level properties of a rule group. This, along with the RuleGroup, define the rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

      • RuleGroupArn (string) --

        The Amazon Resource Name (ARN) of the rule group.

      • RuleGroupName (string) --

        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      • RuleGroupId (string) --

        The unique identifier for the rule group.

      • Description (string) --

        A description of the rule group.

      • Type (string) --

        Indicates the type of the rule group. Valid values are:

        • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

        • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

        • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

        • IPS - IPS engine rules, for use in a Next Generation policy.

      • Capacity (integer) --

        The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

        You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

      • RuleGroupStatus (string) --

        Detailed information about the current status of a rule group.

      • Tags (list) --

        The key:value pairs to associate with the resource.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedCapacity (integer) --

        The number of capacity units currently consumed by the rule group rules.

      • NumberOfAssociations (integer) --

        The number of firewall policies that use this rule group.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your rule group.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • SourceMetadata (dict) --

        A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to track the version updates made to the originating rule group.

        • SourceArn (string) --

          The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

        • SourceUpdateToken (string) --

          The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

      • SnsTopic (string) --

        The Amazon Resource Name (ARN) of the Amazon Simple Notification Service SNS topic that's used to record changes to the managed rule group. You can subscribe to the SNS topic to receive notifications when the managed rule group is modified, such as for new versions and for version expiration. For more information, see the Amazon Simple Notification Service Developer Guide..

      • LastModifiedTime (datetime) --

        The last time that the rule group was changed.

      • AnalysisResults (list) --

        The list of analysis results for AnalyzeRuleGroup. If you set AnalyzeRuleGroup to TRUE in CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup, Network Firewall analyzes the rule group and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in the list of analysis results.

        • (dict) --

          The analysis result for Network Firewall's stateless rule group analyzer. Every time you call CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup on a stateless rule group, Network Firewall analyzes the stateless rule groups in your account and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in a list of analysis results.

          The AnalysisResult data type is not related to traffic analysis reports you generate using StartAnalysisReport. For information on traffic analysis report results, see AnalysisTypeReportResult.

          • IdentifiedRuleIds (list) --

            The priority number of the stateless rules identified in the analysis.

            • (string) --

          • IdentifiedType (string) --

            The types of rule configurations that Network Firewall analyzes your rule groups for. Network Firewall analyzes stateless rule groups for the following types of rule configurations:

            • STATELESS_RULE_FORWARDING_ASYMMETRICALLY Cause: One or more stateless rules with the action pass or forward are forwarding traffic asymmetrically. Specifically, the rule's set of source IP addresses or their associated port numbers, don't match the set of destination IP addresses or their associated port numbers. To mitigate: Make sure that there's an existing return path. For example, if the rule allows traffic from source 10.1.0.0/24 to destination 20.1.0.0/24, you should allow return traffic from source 20.1.0.0/24 to destination 10.1.0.0/24.

            • STATELESS_RULE_CONTAINS_TCP_FLAGS Cause: At least one stateless rule with the action pass or forward contains TCP flags that are inconsistent in the forward and return directions. To mitigate: Prevent asymmetric routing issues caused by TCP flags by following these actions:

              • Remove unnecessary TCP flag inspections from the rules.

              • If you need to inspect TCP flags, check that the rules correctly account for changes in TCP flags throughout the TCP connection cycle, for example SYN and ACK flags used in a 3-way TCP handshake.

          • AnalysisDetail (string) --

            Provides analysis details for the identified rule.

      • SummaryConfiguration (dict) --

        A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by DescribeRuleGroupSummary.

        • The RuleOptions specified in SummaryConfiguration

        • Rule metadata organization preferences

        • RuleOptions (list) --

          Specifies the selected rule options returned by DescribeRuleGroupSummary.

          • (string) --

DescribeRuleGroupMetadata (updated) Link ¶
Changes (both)
{'Type': {'FIREWALL', 'IPS'}}

High-level information about a rule group, returned by operations like create and describe. You can use the information provided in the metadata to retrieve and manage a rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

See also: AWS API Documentation

Request Syntax

client.describe_rule_group_metadata(
    RuleGroupName='string',
    RuleGroupArn='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS'
)
type RuleGroupName:

string

param RuleGroupName:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleGroupArn:

string

param RuleGroupArn:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type Type:

string

param Type:

Indicates the type of the rule group. Valid values are:

  • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

  • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

  • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

  • IPS - IPS engine rules, for use in a Next Generation policy.

rtype:

dict

returns:

Response Syntax

{
    'RuleGroupArn': 'string',
    'RuleGroupName': 'string',
    'Description': 'string',
    'Type': 'STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
    'Capacity': 123,
    'StatefulRuleOptions': {
        'RuleOrder': 'DEFAULT_ACTION_ORDER'|'STRICT_ORDER'
    },
    'LastModifiedTime': datetime(2015, 1, 1),
    'VendorName': 'string',
    'ProductId': 'string',
    'ListingName': 'string'
}

Response Structure

  • (dict) --

    • RuleGroupArn (string) --

      The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      You must specify the ARN or the name, and you can specify both.

    • RuleGroupName (string) --

      The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      You must specify the ARN or the name, and you can specify both.

    • Description (string) --

      Returns the metadata objects for the specified rule group.

    • Type (string) --

      Indicates the type of the rule group. Valid values are:

      • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

      • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

      • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

      • IPS - IPS engine rules, for use in a Next Generation policy.

    • Capacity (integer) --

      The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

      You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

    • StatefulRuleOptions (dict) --

      Additional options governing how Network Firewall handles the rule group. You can only use these for stateful rule groups.

      • RuleOrder (string) --

        Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

    • LastModifiedTime (datetime) --

      A timestamp indicating when the rule group was last modified.

    • VendorName (string) --

      The name of the Amazon Web Services Marketplace vendor that provides this rule group.

    • ProductId (string) --

      The unique identifier for the product listing associated with this rule group.

    • ListingName (string) --

      The display name of the product listing for this rule group.

DescribeRuleGroupSummary (updated) Link ¶
Changes (request)
{'Type': {'FIREWALL', 'IPS'}}

Returns detailed information for a stateful rule group.

For active threat defense Amazon Web Services managed rule groups, this operation provides insight into the protections enabled by the rule group, based on Suricata rule metadata fields. Summaries are available for rule groups you manage and for active threat defense Amazon Web Services managed rule groups.

To modify how threat information appears in summaries, use the SummaryConfiguration parameter in UpdateRuleGroup.

See also: AWS API Documentation

Request Syntax

client.describe_rule_group_summary(
    RuleGroupName='string',
    RuleGroupArn='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS'
)
type RuleGroupName:

string

param RuleGroupName:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleGroupArn:

string

param RuleGroupArn:

Required. The Amazon Resource Name (ARN) of the rule group.

You must specify the ARN or the name, and you can specify both.

type Type:

string

param Type:

The type of rule group you want a summary for. This is a required field.

Valid value: STATEFUL

Note that STATELESS exists but is not currently supported. If you provide STATELESS, an exception is returned.

rtype:

dict

returns:

Response Syntax

{
    'RuleGroupName': 'string',
    'Description': 'string',
    'Summary': {
        'RuleSummaries': [
            {
                'SID': 'string',
                'Msg': 'string',
                'Metadata': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • RuleGroupName (string) --

      The descriptive name of the rule group. You can't change the name of a rule group after you create it.

    • Description (string) --

      A description of the rule group.

    • Summary (dict) --

      A complex type that contains rule information based on the rule group's configured summary settings. The content varies depending on the fields that you specified to extract in your SummaryConfiguration. When you haven't configured any summary settings, this returns an empty array. The response might include:

      • Rule identifiers

      • Rule descriptions

      • Any metadata fields that you specified in your SummaryConfiguration

      • RuleSummaries (list) --

        An array of RuleSummary objects containing individual rule details that had been configured by the rulegroup's SummaryConfiguration.

        • (dict) --

          A complex type containing details about a Suricata rule. Contains:

          • SID

          • Msg

          • Metadata

          Summaries are available for rule groups you manage and for active threat defense Amazon Web Services managed rule groups.

          • SID (string) --

            The unique identifier (Signature ID) of the Suricata rule.

          • Msg (string) --

            The contents taken from the rule's msg field.

          • Metadata (string) --

            The contents of the rule's metadata.

ListRuleGroups (updated) Link ¶
Changes (request)
{'Type': {'FIREWALL', 'IPS'}}

Retrieves the metadata for the rule groups that you have defined. Depending on your setting for max results and the number of rule groups, a single call might not return the full list.

See also: AWS API Documentation

Request Syntax

client.list_rule_groups(
    NextToken='string',
    MaxResults=123,
    Scope='MANAGED'|'ACCOUNT',
    ManagedType='AWS_MANAGED_THREAT_SIGNATURES'|'AWS_MANAGED_DOMAIN_LISTS'|'ACTIVE_THREAT_DEFENSE'|'PARTNER_MANAGED',
    SubscriptionStatus='NOT_SUBSCRIBED'|'SUBSCRIBED',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS'
)
type NextToken:

string

param NextToken:

When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

type MaxResults:

integer

param MaxResults:

The maximum number of objects that you want Network Firewall to return for this request. If more objects are available, in the response, Network Firewall provides a NextToken value that you can use in a subsequent call to get the next batch of objects.

type Scope:

string

param Scope:

The scope of the request. The default setting of ACCOUNT or a setting of NULL returns all of the rule groups in your account. A setting of MANAGED returns all available managed rule groups.

type ManagedType:

string

param ManagedType:

Indicates the general category of the Amazon Web Services managed rule group.

type SubscriptionStatus:

string

param SubscriptionStatus:

Filters the results to show only rule groups with the specified subscription status. Use this to find subscribed or unsubscribed rule groups.

type Type:

string

param Type:

Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.

rtype:

dict

returns:

Response Syntax

{
    'NextToken': 'string',
    'RuleGroups': [
        {
            'Name': 'string',
            'Arn': 'string',
            'VendorName': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • NextToken (string) --

      When you request a list of objects with a MaxResults setting, if the number of objects that are still available for retrieval exceeds the maximum you requested, Network Firewall returns a NextToken value in the response. To retrieve the next batch of objects, use the token returned from the prior request in your next request.

    • RuleGroups (list) --

      The rule group metadata objects that you've defined. Depending on your setting for max results and the number of rule groups, this might not be the full list.

      • (dict) --

        High-level information about a rule group, returned by ListRuleGroups. You can use the information provided in the metadata to retrieve and manage a rule group.

        • Name (string) --

          The descriptive name of the rule group. You can't change the name of a rule group after you create it.

        • Arn (string) --

          The Amazon Resource Name (ARN) of the rule group.

        • VendorName (string) --

          The name of the Amazon Web Services Marketplace seller that provides this rule group.

UpdateRuleGroup (updated) Link ¶
Changes (request, response)
Request
{'FirewallRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                       'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                         'PortSets': {'string': {'Definition': ['string']}}},
                       'RulesSource': {'FirewallRules': [{'AcceptPriorHooks': 'boolean',
                                                          'Action': 'ACCEPT | '
                                                                    'DROP | '
                                                                    'REJECT | '
                                                                    'REJECT_DST '
                                                                    '| '
                                                                    'REJECT_BOTH',
                                                          'ActionScope': 'FLOW '
                                                                         '| TX '
                                                                         '| '
                                                                         'HOOK '
                                                                         '| '
                                                                         'PACKET',
                                                          'AlertEnabled': 'boolean',
                                                          'BypassIPSEnabled': 'boolean',
                                                          'DestIPs': 'string',
                                                          'DestPorts': 'string',
                                                          'Hook': 'TCP_ALL | '
                                                                  'TCP_FLOW_START '
                                                                  '| '
                                                                  'TCP_PRE_FLOW '
                                                                  '| '
                                                                  'TCP_PRE_STREAM '
                                                                  '| SCTP_ALL '
                                                                  '| '
                                                                  'SCTP_FLOW_START '
                                                                  '| '
                                                                  'SCTP_PRE_FLOW '
                                                                  '| '
                                                                  'SCTP_PRE_STREAM '
                                                                  '| IPV6_ALL '
                                                                  '| '
                                                                  'IPV6_FLOW_START '
                                                                  '| '
                                                                  'IPV6_PRE_FLOW '
                                                                  '| '
                                                                  'IPV6_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV6_ALL '
                                                                  '| '
                                                                  'ICMPV6_FLOW_START '
                                                                  '| '
                                                                  'ICMPV6_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV6_PRE_STREAM '
                                                                  '| UDP_ALL | '
                                                                  'UDP_FLOW_START '
                                                                  '| '
                                                                  'UDP_PRE_FLOW '
                                                                  '| '
                                                                  'UDP_PRE_STREAM '
                                                                  '| ICMP_ALL '
                                                                  '| '
                                                                  'ICMP_FLOW_START '
                                                                  '| '
                                                                  'ICMP_PRE_FLOW '
                                                                  '| '
                                                                  'ICMP_PRE_STREAM '
                                                                  '| '
                                                                  'ICMPV4_ALL '
                                                                  '| '
                                                                  'ICMPV4_FLOW_START '
                                                                  '| '
                                                                  'ICMPV4_PRE_FLOW '
                                                                  '| '
                                                                  'ICMPV4_PRE_STREAM '
                                                                  '| IP_ALL | '
                                                                  'IP_FLOW_START '
                                                                  '| '
                                                                  'IP_PRE_FLOW '
                                                                  '| '
                                                                  'IP_PRE_STREAM '
                                                                  '| IPV4_ALL '
                                                                  '| '
                                                                  'IPV4_FLOW_START '
                                                                  '| '
                                                                  'IPV4_PRE_FLOW '
                                                                  '| '
                                                                  'IPV4_PRE_STREAM '
                                                                  '| '
                                                                  'TLS_CLIENT_STARTED '
                                                                  '| '
                                                                  'TLS_CLIENT_HELLO '
                                                                  '| '
                                                                  'TLS_CLIENT_CERT '
                                                                  '| '
                                                                  'TLS_CLIENT_DATA '
                                                                  '| '
                                                                  'TLS_CLIENT_FINISHED '
                                                                  '| '
                                                                  'TLS_SERVER_STARTED '
                                                                  '| '
                                                                  'TLS_SERVER_HELLO '
                                                                  '| '
                                                                  'TLS_SERVER_CERT '
                                                                  '| '
                                                                  'TLS_SERVER_DATA '
                                                                  '| '
                                                                  'TLS_SERVER_FINISHED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP1_REQUEST_LINE '
                                                                  '| '
                                                                  'HTTP1_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP1_REQUEST_BODY '
                                                                  '| '
                                                                  'HTTP1_REQUEST_TRAILER '
                                                                  '| '
                                                                  'HTTP1_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_LINE '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_BODY '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_TRAILER '
                                                                  '| '
                                                                  'HTTP1_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'HTTP2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'HTTP2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_HEADERS '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_DATA '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_CLOSED '
                                                                  '| '
                                                                  'DOH2_STREAM_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DOH2_GLOBAL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMTP_REQUEST_DATA '
                                                                  '| '
                                                                  'SMTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMTP_RESPONSE_DATA '
                                                                  '| '
                                                                  'SMTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_STARTED '
                                                                  '| '
                                                                  'FTP_DATA_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SMB_REQUEST_STARTED '
                                                                  '| '
                                                                  'SMB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SMB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SMB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_REQUEST_STARTED '
                                                                  '| '
                                                                  'DCERPC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DCERPC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NFS_REQUEST_STARTED '
                                                                  '| '
                                                                  'NFS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NFS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NFS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'KRB5_REQUEST_STARTED '
                                                                  '| '
                                                                  'KRB5_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'KRB5_RESPONSE_STARTED '
                                                                  '| '
                                                                  'KRB5_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'IKE_REQUEST_STARTED '
                                                                  '| '
                                                                  'IKE_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'IKE_RESPONSE_STARTED '
                                                                  '| '
                                                                  'IKE_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TFTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'TFTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TFTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TFTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DHCP_REQUEST_STARTED '
                                                                  '| '
                                                                  'DHCP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DHCP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DHCP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'QUIC_REQUEST_STARTED '
                                                                  '| '
                                                                  'QUIC_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'QUIC_RESPONSE_STARTED '
                                                                  '| '
                                                                  'QUIC_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RDP_REQUEST_STARTED '
                                                                  '| '
                                                                  'RDP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RDP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RDP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'RFB_REQUEST_STARTED '
                                                                  '| '
                                                                  'RFB_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'RFB_RESPONSE_STARTED '
                                                                  '| '
                                                                  'RFB_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MQTT_REQUEST_STARTED '
                                                                  '| '
                                                                  'MQTT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MQTT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MQTT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_REQUEST_STARTED '
                                                                  '| '
                                                                  'PGSQL_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_STARTED '
                                                                  '| '
                                                                  'PGSQL_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SNMP_REQUEST_STARTED '
                                                                  '| '
                                                                  'SNMP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'SNMP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'SNMP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'NTP_REQUEST_STARTED '
                                                                  '| '
                                                                  'NTP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'NTP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'NTP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'TELNET_REQUEST_STARTED '
                                                                  '| '
                                                                  'TELNET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'TELNET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'TELNET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_STARTED '
                                                                  '| '
                                                                  'WEBSOCKET_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'LDAP_REQUEST_STARTED '
                                                                  '| '
                                                                  'LDAP_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'LDAP_RESPONSE_STARTED '
                                                                  '| '
                                                                  'LDAP_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'POP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'POP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'POP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'POP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'MDNS_REQUEST_STARTED '
                                                                  '| '
                                                                  'MDNS_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'MDNS_RESPONSE_STARTED '
                                                                  '| '
                                                                  'MDNS_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_STARTED '
                                                                  '| '
                                                                  'BITTORRENT_DHT_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'DNP3_REQUEST_STARTED '
                                                                  '| '
                                                                  'DNP3_REQUEST_COMPLETE '
                                                                  '| '
                                                                  'DNP3_RESPONSE_STARTED '
                                                                  '| '
                                                                  'DNP3_RESPONSE_COMPLETE '
                                                                  '| '
                                                                  'SSH_REQUEST_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_REQUEST_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_REQUEST_FINISHED '
                                                                  '| '
                                                                  'SSH_RESPONSE_IN_PROGRESS '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_WAIT_EOL '
                                                                  '| '
                                                                  'SSH_RESPONSE_BANNER_DONE '
                                                                  '| '
                                                                  'SSH_RESPONSE_FINISHED',
                                                          'Protocol': 'IP | '
                                                                      'TCP | '
                                                                      'UDP | '
                                                                      'ICMP | '
                                                                      'HTTP | '
                                                                      'FTP | '
                                                                      'TLS | '
                                                                      'SMB | '
                                                                      'DNS | '
                                                                      'DCERPC '
                                                                      '| SSH | '
                                                                      'SMTP | '
                                                                      'MSN | '
                                                                      'KRB5 | '
                                                                      'IKEV2 | '
                                                                      'TFTP | '
                                                                      'NTP | '
                                                                      'DHCP | '
                                                                      'HTTP2 | '
                                                                      'QUIC | '
                                                                      'ICMPV4 '
                                                                      '| '
                                                                      'ICMPV6 '
                                                                      '| SCTP '
                                                                      '| IPV4 '
                                                                      '| IPV6 '
                                                                      '| DOH2 '
                                                                      '| '
                                                                      'FTP_DATA '
                                                                      '| NFS | '
                                                                      'RDP | '
                                                                      'RFB | '
                                                                      'MQTT | '
                                                                      'PGSQL | '
                                                                      'SNMP | '
                                                                      'TELNET '
                                                                      '| '
                                                                      'WEBSOCKET '
                                                                      '| LDAP '
                                                                      '| POP3 '
                                                                      '| MDNS '
                                                                      '| '
                                                                      'BITTORRENT_DHT '
                                                                      '| DNP3',
                                                          'RuleMetadata': {'RuleDescription': 'string',
                                                                           'RuleEnabled': 'boolean'},
                                                          'RuleOptions': [{'Keyword': 'string',
                                                                           'Settings': ['string']}],
                                                          'SourceIPs': 'string',
                                                          'SourcePorts': 'string'}],
                                       'RulesSourceList': {'GeneratedRulesType': 'ALLOWLIST '
                                                                                 '| '
                                                                                 'DENYLIST '
                                                                                 '| '
                                                                                 'REJECTLIST '
                                                                                 '| '
                                                                                 'ALERTLIST',
                                                           'TargetTypes': ['TLS_SNI '
                                                                           '| '
                                                                           'HTTP_HOST '
                                                                           '| '
                                                                           'AWS_ROUTE_53_RESOLVED_DOMAIN'],
                                                           'Targets': ['string']},
                                       'RulesString': 'string'}},
 'IpsRuleGroup': {'ReferenceSets': {'IPSetReferences': {'string': {'ReferenceArn': 'string'}}},
                  'RuleVariables': {'IPSets': {'string': {'Definition': ['string']}},
                                    'PortSets': {'string': {'Definition': ['string']}}},
                  'RulesSource': {'RulesString': 'string'}},
 'Type': {'FIREWALL', 'IPS'}}
Response
{'RuleGroupResponse': {'Type': {'FIREWALL', 'IPS'}}}

Updates the rule settings for the specified rule group. You use a rule group by reference in one or more firewall policies. When you modify a rule group, you modify all firewall policies that use the rule group.

To update a rule group, first call DescribeRuleGroup to retrieve the current RuleGroup object, update the object as needed, and then provide the updated object to this call.

See also: AWS API Documentation

Request Syntax

client.update_rule_group(
    UpdateToken='string',
    RuleGroupArn='string',
    RuleGroupName='string',
    RuleGroup={
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        },
        'RulesSource': {
            'RulesString': 'string',
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            },
            'StatefulRules': [
                {
                    'Action': 'PASS'|'DROP'|'ALERT'|'REJECT',
                    'Header': {
                        'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'IMAP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC',
                        'Source': 'string',
                        'SourcePort': 'string',
                        'Direction': 'FORWARD'|'ANY',
                        'Destination': 'string',
                        'DestinationPort': 'string'
                    },
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ]
                },
            ],
            'StatelessRulesAndCustomActions': {
                'StatelessRules': [
                    {
                        'RuleDefinition': {
                            'MatchAttributes': {
                                'Sources': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'Destinations': [
                                    {
                                        'AddressDefinition': 'string'
                                    },
                                ],
                                'SourcePorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'DestinationPorts': [
                                    {
                                        'FromPort': 123,
                                        'ToPort': 123
                                    },
                                ],
                                'Protocols': [
                                    123,
                                ],
                                'TCPFlags': [
                                    {
                                        'Flags': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ],
                                        'Masks': [
                                            'FIN'|'SYN'|'RST'|'PSH'|'ACK'|'URG'|'ECE'|'CWR',
                                        ]
                                    },
                                ]
                            },
                            'Actions': [
                                'string',
                            ]
                        },
                        'Priority': 123
                    },
                ],
                'CustomActions': [
                    {
                        'ActionName': 'string',
                        'ActionDefinition': {
                            'PublishMetricAction': {
                                'Dimensions': [
                                    {
                                        'Value': 'string'
                                    },
                                ]
                            }
                        }
                    },
                ]
            }
        },
        'StatefulRuleOptions': {
            'RuleOrder': 'DEFAULT_ACTION_ORDER'|'STRICT_ORDER'
        }
    },
    FirewallRuleGroup={
        'RulesSource': {
            'RulesString': 'string',
            'FirewallRules': [
                {
                    'Action': 'ACCEPT'|'DROP'|'REJECT'|'REJECT_DST'|'REJECT_BOTH',
                    'ActionScope': 'FLOW'|'TX'|'HOOK'|'PACKET',
                    'Hook': 'TCP_ALL'|'TCP_FLOW_START'|'TCP_PRE_FLOW'|'TCP_PRE_STREAM'|'SCTP_ALL'|'SCTP_FLOW_START'|'SCTP_PRE_FLOW'|'SCTP_PRE_STREAM'|'IPV6_ALL'|'IPV6_FLOW_START'|'IPV6_PRE_FLOW'|'IPV6_PRE_STREAM'|'ICMPV6_ALL'|'ICMPV6_FLOW_START'|'ICMPV6_PRE_FLOW'|'ICMPV6_PRE_STREAM'|'UDP_ALL'|'UDP_FLOW_START'|'UDP_PRE_FLOW'|'UDP_PRE_STREAM'|'ICMP_ALL'|'ICMP_FLOW_START'|'ICMP_PRE_FLOW'|'ICMP_PRE_STREAM'|'ICMPV4_ALL'|'ICMPV4_FLOW_START'|'ICMPV4_PRE_FLOW'|'ICMPV4_PRE_STREAM'|'IP_ALL'|'IP_FLOW_START'|'IP_PRE_FLOW'|'IP_PRE_STREAM'|'IPV4_ALL'|'IPV4_FLOW_START'|'IPV4_PRE_FLOW'|'IPV4_PRE_STREAM'|'TLS_CLIENT_STARTED'|'TLS_CLIENT_HELLO'|'TLS_CLIENT_CERT'|'TLS_CLIENT_DATA'|'TLS_CLIENT_FINISHED'|'TLS_SERVER_STARTED'|'TLS_SERVER_HELLO'|'TLS_SERVER_CERT'|'TLS_SERVER_DATA'|'TLS_SERVER_FINISHED'|'HTTP1_REQUEST_STARTED'|'HTTP1_REQUEST_LINE'|'HTTP1_REQUEST_HEADERS'|'HTTP1_REQUEST_BODY'|'HTTP1_REQUEST_TRAILER'|'HTTP1_REQUEST_COMPLETE'|'HTTP1_RESPONSE_STARTED'|'HTTP1_RESPONSE_LINE'|'HTTP1_RESPONSE_HEADERS'|'HTTP1_RESPONSE_BODY'|'HTTP1_RESPONSE_TRAILER'|'HTTP1_RESPONSE_COMPLETE'|'HTTP2_STREAM_REQUEST_STARTED'|'HTTP2_STREAM_REQUEST_HEADERS'|'HTTP2_STREAM_REQUEST_DATA'|'HTTP2_STREAM_REQUEST_CLOSED'|'HTTP2_STREAM_REQUEST_COMPLETE'|'HTTP2_STREAM_RESPONSE_STARTED'|'HTTP2_STREAM_RESPONSE_HEADERS'|'HTTP2_STREAM_RESPONSE_DATA'|'HTTP2_STREAM_RESPONSE_CLOSED'|'HTTP2_STREAM_RESPONSE_COMPLETE'|'HTTP2_GLOBAL_REQUEST_STARTED'|'HTTP2_GLOBAL_REQUEST_COMPLETE'|'HTTP2_GLOBAL_RESPONSE_STARTED'|'HTTP2_GLOBAL_RESPONSE_COMPLETE'|'DOH2_STREAM_REQUEST_STARTED'|'DOH2_STREAM_REQUEST_HEADERS'|'DOH2_STREAM_REQUEST_DATA'|'DOH2_STREAM_REQUEST_CLOSED'|'DOH2_STREAM_REQUEST_COMPLETE'|'DOH2_STREAM_RESPONSE_STARTED'|'DOH2_STREAM_RESPONSE_HEADERS'|'DOH2_STREAM_RESPONSE_DATA'|'DOH2_STREAM_RESPONSE_CLOSED'|'DOH2_STREAM_RESPONSE_COMPLETE'|'DOH2_GLOBAL_REQUEST_STARTED'|'DOH2_GLOBAL_REQUEST_COMPLETE'|'DOH2_GLOBAL_RESPONSE_STARTED'|'DOH2_GLOBAL_RESPONSE_COMPLETE'|'DNS_REQUEST_STARTED'|'DNS_REQUEST_COMPLETE'|'DNS_RESPONSE_STARTED'|'DNS_RESPONSE_COMPLETE'|'SMTP_REQUEST_STARTED'|'SMTP_REQUEST_DATA'|'SMTP_REQUEST_COMPLETE'|'SMTP_RESPONSE_STARTED'|'SMTP_RESPONSE_DATA'|'SMTP_RESPONSE_COMPLETE'|'FTP_REQUEST_STARTED'|'FTP_REQUEST_COMPLETE'|'FTP_RESPONSE_STARTED'|'FTP_RESPONSE_COMPLETE'|'FTP_DATA_REQUEST_STARTED'|'FTP_DATA_REQUEST_COMPLETE'|'FTP_DATA_RESPONSE_STARTED'|'FTP_DATA_RESPONSE_COMPLETE'|'SMB_REQUEST_STARTED'|'SMB_REQUEST_COMPLETE'|'SMB_RESPONSE_STARTED'|'SMB_RESPONSE_COMPLETE'|'DCERPC_REQUEST_STARTED'|'DCERPC_REQUEST_COMPLETE'|'DCERPC_RESPONSE_STARTED'|'DCERPC_RESPONSE_COMPLETE'|'NFS_REQUEST_STARTED'|'NFS_REQUEST_COMPLETE'|'NFS_RESPONSE_STARTED'|'NFS_RESPONSE_COMPLETE'|'KRB5_REQUEST_STARTED'|'KRB5_REQUEST_COMPLETE'|'KRB5_RESPONSE_STARTED'|'KRB5_RESPONSE_COMPLETE'|'IKE_REQUEST_STARTED'|'IKE_REQUEST_COMPLETE'|'IKE_RESPONSE_STARTED'|'IKE_RESPONSE_COMPLETE'|'TFTP_REQUEST_STARTED'|'TFTP_REQUEST_COMPLETE'|'TFTP_RESPONSE_STARTED'|'TFTP_RESPONSE_COMPLETE'|'DHCP_REQUEST_STARTED'|'DHCP_REQUEST_COMPLETE'|'DHCP_RESPONSE_STARTED'|'DHCP_RESPONSE_COMPLETE'|'QUIC_REQUEST_STARTED'|'QUIC_REQUEST_COMPLETE'|'QUIC_RESPONSE_STARTED'|'QUIC_RESPONSE_COMPLETE'|'RDP_REQUEST_STARTED'|'RDP_REQUEST_COMPLETE'|'RDP_RESPONSE_STARTED'|'RDP_RESPONSE_COMPLETE'|'RFB_REQUEST_STARTED'|'RFB_REQUEST_COMPLETE'|'RFB_RESPONSE_STARTED'|'RFB_RESPONSE_COMPLETE'|'MQTT_REQUEST_STARTED'|'MQTT_REQUEST_COMPLETE'|'MQTT_RESPONSE_STARTED'|'MQTT_RESPONSE_COMPLETE'|'PGSQL_REQUEST_STARTED'|'PGSQL_REQUEST_COMPLETE'|'PGSQL_RESPONSE_STARTED'|'PGSQL_RESPONSE_COMPLETE'|'SNMP_REQUEST_STARTED'|'SNMP_REQUEST_COMPLETE'|'SNMP_RESPONSE_STARTED'|'SNMP_RESPONSE_COMPLETE'|'NTP_REQUEST_STARTED'|'NTP_REQUEST_COMPLETE'|'NTP_RESPONSE_STARTED'|'NTP_RESPONSE_COMPLETE'|'TELNET_REQUEST_STARTED'|'TELNET_REQUEST_COMPLETE'|'TELNET_RESPONSE_STARTED'|'TELNET_RESPONSE_COMPLETE'|'WEBSOCKET_REQUEST_STARTED'|'WEBSOCKET_REQUEST_COMPLETE'|'WEBSOCKET_RESPONSE_STARTED'|'WEBSOCKET_RESPONSE_COMPLETE'|'LDAP_REQUEST_STARTED'|'LDAP_REQUEST_COMPLETE'|'LDAP_RESPONSE_STARTED'|'LDAP_RESPONSE_COMPLETE'|'POP3_REQUEST_STARTED'|'POP3_REQUEST_COMPLETE'|'POP3_RESPONSE_STARTED'|'POP3_RESPONSE_COMPLETE'|'MDNS_REQUEST_STARTED'|'MDNS_REQUEST_COMPLETE'|'MDNS_RESPONSE_STARTED'|'MDNS_RESPONSE_COMPLETE'|'BITTORRENT_DHT_REQUEST_STARTED'|'BITTORRENT_DHT_REQUEST_COMPLETE'|'BITTORRENT_DHT_RESPONSE_STARTED'|'BITTORRENT_DHT_RESPONSE_COMPLETE'|'DNP3_REQUEST_STARTED'|'DNP3_REQUEST_COMPLETE'|'DNP3_RESPONSE_STARTED'|'DNP3_RESPONSE_COMPLETE'|'SSH_REQUEST_IN_PROGRESS'|'SSH_REQUEST_BANNER_WAIT_EOL'|'SSH_REQUEST_BANNER_DONE'|'SSH_REQUEST_FINISHED'|'SSH_RESPONSE_IN_PROGRESS'|'SSH_RESPONSE_BANNER_WAIT_EOL'|'SSH_RESPONSE_BANNER_DONE'|'SSH_RESPONSE_FINISHED',
                    'Protocol': 'IP'|'TCP'|'UDP'|'ICMP'|'HTTP'|'FTP'|'TLS'|'SMB'|'DNS'|'DCERPC'|'SSH'|'SMTP'|'MSN'|'KRB5'|'IKEV2'|'TFTP'|'NTP'|'DHCP'|'HTTP2'|'QUIC'|'ICMPV4'|'ICMPV6'|'SCTP'|'IPV4'|'IPV6'|'DOH2'|'FTP_DATA'|'NFS'|'RDP'|'RFB'|'MQTT'|'PGSQL'|'SNMP'|'TELNET'|'WEBSOCKET'|'LDAP'|'POP3'|'MDNS'|'BITTORRENT_DHT'|'DNP3',
                    'SourceIPs': 'string',
                    'DestIPs': 'string',
                    'SourcePorts': 'string',
                    'DestPorts': 'string',
                    'RuleOptions': [
                        {
                            'Keyword': 'string',
                            'Settings': [
                                'string',
                            ]
                        },
                    ],
                    'AcceptPriorHooks': True|False,
                    'AlertEnabled': True|False,
                    'BypassIPSEnabled': True|False,
                    'RuleMetadata': {
                        'RuleEnabled': True|False,
                        'RuleDescription': 'string'
                    }
                },
            ],
            'RulesSourceList': {
                'Targets': [
                    'string',
                ],
                'TargetTypes': [
                    'TLS_SNI'|'HTTP_HOST'|'AWS_ROUTE_53_RESOLVED_DOMAIN',
                ],
                'GeneratedRulesType': 'ALLOWLIST'|'DENYLIST'|'REJECTLIST'|'ALERTLIST'
            }
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    IpsRuleGroup={
        'RulesSource': {
            'RulesString': 'string'
        },
        'RuleVariables': {
            'IPSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            },
            'PortSets': {
                'string': {
                    'Definition': [
                        'string',
                    ]
                }
            }
        },
        'ReferenceSets': {
            'IPSetReferences': {
                'string': {
                    'ReferenceArn': 'string'
                }
            }
        }
    },
    Rules='string',
    Type='STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
    Description='string',
    DryRun=True|False,
    EncryptionConfiguration={
        'KeyId': 'string',
        'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
    },
    SourceMetadata={
        'SourceArn': 'string',
        'SourceUpdateToken': 'string'
    },
    AnalyzeRuleGroup=True|False,
    SummaryConfiguration={
        'RuleOptions': [
            'SID'|'MSG'|'METADATA',
        ]
    }
)
type UpdateToken:

string

param UpdateToken:

[REQUIRED]

A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.

To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

type RuleGroupArn:

string

param RuleGroupArn:

The Amazon Resource Name (ARN) of the rule group.

You must specify the ARN or the name, and you can specify both.

type RuleGroupName:

string

param RuleGroupName:

The descriptive name of the rule group. You can't change the name of a rule group after you create it.

You must specify the ARN or the name, and you can specify both.

type RuleGroup:

dict

param RuleGroup:

An object that defines the rule group rules.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the rule group. You can only use these for stateful rule groups.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

  • RulesSource (dict) -- [REQUIRED]

    The stateful rules or stateless rules for the rule group.

    • RulesString (string) --

      Stateful inspection criteria, provided in Suricata compatible rules. Suricata is an open-source threat detection framework that includes a standard rule-based language for network traffic inspection.

      These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.

    • RulesSourceList (dict) --

      Stateful inspection criteria for a domain list rule group.

      • Targets (list) -- [REQUIRED]

        The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

        • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

        • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

        • (string) --

      • TargetTypes (list) -- [REQUIRED]

        The types of matching to perform against the domains in Targets. You can specify any combination of the following:

        • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

        • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

        • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

        AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

        Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

        • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

        • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

        • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

        An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

        • (string) --

      • GeneratedRulesType (string) -- [REQUIRED]

        Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

    • StatefulRules (list) --

      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 on the Suricata website.

      • (dict) --

        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 on the Suricata website.

        • Action (string) -- [REQUIRED]

          Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow.

          The actions for a stateful rule are defined as follows:

          • PASS - Permits the packets to go to the intended destination.

          • DROP - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration.

          • ALERT - Sends an alert log message, if alert logging is configured in the Firewall LoggingConfiguration. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ALERT action, verify in the logs that the rule is filtering as you want, then change the action to DROP.

          • REJECT - Drops traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and an RST bit contained in the TCP header flags. REJECT is available only for TCP traffic. This option doesn't support FTP or IMAP protocols.

        • Header (dict) -- [REQUIRED]

          The stateful inspection criteria for this rule, used to inspect traffic flows.

          • Protocol (string) -- [REQUIRED]

            The protocol to inspect for. To specify all, you can use IP, because all traffic on Amazon Web Services and on the internet is IP.

          • Source (string) -- [REQUIRED]

            The source IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

            Examples:

            • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

            • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

            • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

            • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

            For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

          • SourcePort (string) -- [REQUIRED]

            The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

          • Direction (string) -- [REQUIRED]

            The direction of traffic flow to inspect. If set to ANY, the inspection matches bidirectional traffic, both from the source to the destination and from the destination to the source. If set to FORWARD, the inspection only matches traffic going from the source to the destination.

          • Destination (string) -- [REQUIRED]

            The destination IP address or address range to inspect for, in CIDR notation. To match with any address, specify ANY.

            Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

            Examples:

            • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

            • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

            • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

            • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

            For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

          • DestinationPort (string) -- [REQUIRED]

            The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

        • RuleOptions (list) -- [REQUIRED]

          Additional options for the rule. These are the Suricata RuleOptions settings.

          • (dict) --

            Additional settings for a stateful rule. This is part of the StatefulRule configuration.

            • Keyword (string) -- [REQUIRED]

              The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

            • Settings (list) --

              The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

              • (string) --

    • StatelessRulesAndCustomActions (dict) --

      Stateless inspection criteria to be used in a stateless rule group.

      • StatelessRules (list) -- [REQUIRED]

        Defines the set of stateless rules for use in a stateless rule group.

        • (dict) --

          A single stateless rule. This is used in StatelessRulesAndCustomActions.

          • RuleDefinition (dict) -- [REQUIRED]

            Defines the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria.

            • MatchAttributes (dict) -- [REQUIRED]

              Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags.

              • Sources (list) --

                The source IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any source address.

                • (dict) --

                  A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                  • AddressDefinition (string) -- [REQUIRED]

                    Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                    Examples:

                    • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                    • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                    • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                    • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                    For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • Destinations (list) --

                The destination IP addresses and address ranges to inspect for, in CIDR notation. If not specified, this matches with any destination address.

                • (dict) --

                  A single IP address specification. This is used in the MatchAttributes source and destination specifications.

                  • AddressDefinition (string) -- [REQUIRED]

                    Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6.

                    Examples:

                    • To configure Network Firewall to inspect for the IP address 192.0.2.44, specify 192.0.2.44/32.

                    • To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.

                    • To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.

                    • To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64.

                    For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing.

              • SourcePorts (list) --

                The source port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                If not specified, this matches with any source port.

                This setting is only used for protocols 6 (TCP) and 17 (UDP).

                • (dict) --

                  A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                  • FromPort (integer) -- [REQUIRED]

                    The lower limit of the port range. This must be less than or equal to the ToPort specification.

                  • ToPort (integer) -- [REQUIRED]

                    The upper limit of the port range. This must be greater than or equal to the FromPort specification.

              • DestinationPorts (list) --

                The destination port to inspect for. You can specify an individual port, for example 1994 and you can specify a port range, for example 1990:1994. To match with any port, specify ANY.

                This setting is only used for protocols 6 (TCP) and 17 (UDP).

                • (dict) --

                  A single port range specification. This is used for source and destination port ranges in the stateless rule MatchAttributes, SourcePorts, and DestinationPorts settings.

                  • FromPort (integer) -- [REQUIRED]

                    The lower limit of the port range. This must be less than or equal to the ToPort specification.

                  • ToPort (integer) -- [REQUIRED]

                    The upper limit of the port range. This must be greater than or equal to the FromPort specification.

              • Protocols (list) --

                The protocols to inspect for, specified using the assigned internet protocol number (IANA) for each protocol. If not specified, this matches with any protocol.

                • (integer) --

              • TCPFlags (list) --

                The TCP flags and masks to inspect for. If not specified, this matches with any settings. This setting is only used for protocol 6 (TCP).

                • (dict) --

                  TCP flags and masks to inspect packets for, used in stateless rules MatchAttributes settings.

                  • Flags (list) -- [REQUIRED]

                    Used in conjunction with the Masks setting to define the flags that must be set and flags that must not be set in order for the packet to match. This setting can only specify values that are also specified in the Masks setting.

                    For the flags that are specified in the masks setting, the following must be true for the packet to match:

                    • The ones that are set in this flags setting must be set in the packet.

                    • The ones that are not set in this flags setting must also not be set in the packet.

                    • (string) --

                  • Masks (list) --

                    The set of flags to consider in the inspection. To inspect all flags in the valid values list, leave this with no setting.

                    • (string) --

            • Actions (list) -- [REQUIRED]

              The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action and you can add custom actions.

              For every rule, you must specify exactly one of the following standard actions.

              • aws:pass - Discontinues all inspection of the packet and permits it to go to its intended destination.

              • aws:drop - Discontinues all inspection of the packet and blocks it from going to its intended destination.

              • aws:forward_to_sfe - Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection.

              Additionally, you can specify a custom action. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this Actions setting. For information about the options, see CustomAction.

              To provide more than one action in this setting, separate the settings with a comma. For example, if you have a custom PublishMetrics action that you've named MyMetricsAction, then you could specify the standard action aws:pass and the custom action with [“aws:pass”, “MyMetricsAction”].

              • (string) --

          • Priority (integer) -- [REQUIRED]

            Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group.

            Each stateless rule group uses exactly one StatelessRulesAndCustomActions object, and each StatelessRulesAndCustomActions contains exactly one StatelessRules object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single StatelessRules object.

            You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.

      • CustomActions (list) --

        Defines an array of individual custom action definitions that are available for use by the stateless rules in this StatelessRulesAndCustomActions specification. You name each custom action that you define, and then you can use it by name in your StatelessRule RuleDefinition Actions specification.

        • (dict) --

          An optional, non-standard action to use for stateless packet handling. You can define this in addition to the standard action that you must specify.

          You define and name the custom actions that you want to be able to use, and then you reference them by name in your actions settings.

          You can use custom actions in the following places:

          • In a rule group's StatelessRulesAndCustomActions specification. The custom actions are available for use by name inside the StatelessRulesAndCustomActions where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.

          • In a FirewallPolicy specification, in StatelessCustomActions. The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.

          • ActionName (string) -- [REQUIRED]

            The descriptive name of the custom action. You can't change the name of a custom action after you create it.

          • ActionDefinition (dict) -- [REQUIRED]

            The custom action associated with the action name.

            • PublishMetricAction (dict) --

              Stateless inspection criteria that publishes the specified metrics to Amazon CloudWatch for the matching packet. This setting defines a CloudWatch dimension value to be published.

              You can pair this custom action with any of the standard stateless rule actions. For example, you could pair this in a rule action with the standard action that forwards the packet for stateful inspection. Then, when a packet matches the rule, Network Firewall publishes metrics for the packet and forwards it.

              • Dimensions (list) -- [REQUIRED]

                • (dict) --

                  The value to use in an Amazon CloudWatch custom metric dimension. This is used in the PublishMetrics CustomAction. A CloudWatch custom metric dimension is a name/value pair that's part of the identity of a metric.

                  Network Firewall sets the dimension name to CustomAction and you provide the dimension value.

                  For more information about CloudWatch custom metric dimensions, see Publishing Custom Metrics in the Amazon CloudWatch User Guide.

                  • Value (string) -- [REQUIRED]

                    The value to use in the custom metric dimension.

  • StatefulRuleOptions (dict) --

    Additional options governing how Network Firewall handles stateful rules. The policies where you use your stateful rule group must have stateful rule options settings that are compatible with these settings. Some limitations apply; for more information, see Strict evaluation order in the Network Firewall Developer Guide.

    • RuleOrder (string) --

      Indicates how to manage the order of the rule evaluation for the rule group. DEFAULT_ACTION_ORDER is the default behavior. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

type FirewallRuleGroup:

dict

param FirewallRuleGroup:

An object that defines the rules in a firewall engine rule group, for use in a Next Generation policy.

  • RulesSource (dict) -- [REQUIRED]

    The stateful inspection criteria for the firewall engine rule group.

    • RulesString (string) --

      Firewall engine rules, provided as a single Suricata-compatible rule string in firewall mode. Use this to provide rules that you've already written in the Suricata firewall-mode format. For the rule format, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

    • FirewallRules (list) --

      An array of individual firewall engine rules, provided as structured rules rather than as a rule string.

      • (dict) --

        A single structured firewall engine rule, for use in a firewall engine rule group or as an embedded rule in a Next Generation policy. A firewall rule accepts, drops, or rejects traffic at a connection-state hook. For more information about authoring firewall engine rules, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • Action (string) -- [REQUIRED]

          The action that the firewall engine takes on traffic that matches the rule. The firewall engine supports the following actions:

          • ACCEPT - Allow the traffic.

          • DROP - Block the traffic and discontinue inspection.

          • REJECT - Block the traffic and send a TCP reset packet back to the client.

          • REJECT_DST - Block the traffic and send a TCP reset packet to the destination.

          • REJECT_BOTH - Block the traffic and send a TCP reset packet to both the client and the destination.

          You combine the action with an action scope, for example accept:flow. To send accepted traffic straight to its destination and skip the IPS engine, pair an accept action with the BypassIPSEnabled setting. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • ActionScope (string) -- [REQUIRED]

          The scope that controls how much of the matched traffic the action applies to. The valid scopes depend on the action: ACCEPT supports all four scopes, and DROP, REJECT, REJECT_DST, and REJECT_BOTH support only PACKET and FLOW.

          • PACKET - The current packet only.

          • HOOK - The current hook only. The firewall engine evaluates the connection again at the next hook.

          • TX - The current transaction. The firewall engine continues to evaluate later transactions on the connection.

          • FLOW - The entire connection. For an accept action, the connection skips the firewall engine's remaining hooks and advances to the IPS engine.

          In a Suricata-compatible rule string, you write the scope in lowercase, for example accept:flow.

        • Hook (string) -- [REQUIRED]

          The connection-state hook at which the firewall engine evaluates the rule. The hook encodes both the protocol and the connection state, for example a TCP hook or a TLS client_hello hook. For the hooks that the firewall engine supports and how they map to the connection lifecycle, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide and the Suricata firewall mode documentation.

        • Protocol (string) -- [REQUIRED]

          The protocol of the rule's hook. The protocol is derived from the hook and must match the hook's protocol prefix. Network Firewall rejects a rule whose protocol doesn't match its hook.

        • SourceIPs (string) --

          The source IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

        • DestIPs (string) --

          The destination IP addresses and address ranges to inspect for, in CIDR notation. A firewall rule always compiles to a forward-direction rule, so you express inbound compared to outbound traffic through the source and destination addresses.

        • SourcePorts (string) --

          The source ports to inspect for.

        • DestPorts (string) --

          The destination ports to inspect for.

        • RuleOptions (list) --

          Additional options for the rule. These are the Suricata RuleOptions settings, such as the signature ID ( sid) and match keywords.

          • (dict) --

            Additional settings for a stateful rule. This is part of the StatefulRule configuration.

            • Keyword (string) -- [REQUIRED]

              The keyword for the Suricata compatible rule option. You must include a sid (signature ID), and can optionally include other keywords. For information about Suricata compatible keywords, see Rule options in the Suricata documentation.

            • Settings (list) --

              The settings of the Suricata compatible rule option. Rule options have zero or more setting values, and the number of possible and required settings depends on the Keyword. For more information about the settings for specific options, see Rule options.

              • (string) --

        • AcceptPriorHooks (boolean) --

          Whether Network Firewall automatically accepts the earlier application-layer hooks that a connection must pass to reach this rule's hook. Because the firewall engine is drop by default, accepting prior hooks lets you author a single rule for the hook you care about, instead of also authoring a rule for each earlier hook. This setting accepts the earlier application-layer hooks only; it doesn't accept the TCP layer. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • AlertEnabled (boolean) --

          Specifies whether the rule also generates an alert log for the traffic that it matches. Turning on alerting adds a secondary alert action to the rule, so that Network Firewall logs the match in addition to taking the rule's primary action.

        • BypassIPSEnabled (boolean) --

          Specifies whether an accepted connection bypasses the IPS engine. By default, traffic that the firewall engine accepts advances to the IPS engine for threat inspection. When you turn on this setting for an accept rule, the accepted traffic goes straight to its destination without IPS inspection. You can set the bypass only on accept rules, and it uses the same scope as the rule's accept action; only the flow and packet scopes support a bypass. For more information, see Rule groups for a firewall using a Next Generation policy in the Network Firewall Developer Guide.

        • RuleMetadata (dict) --

          Optional metadata for the rule: whether the rule is enabled and a description. Metadata doesn't change how the rule matches or acts on traffic.

          • RuleEnabled (boolean) --

            Specifies whether the rule is active. The default is TRUE. When you set this to FALSE, Network Firewall keeps the rule in the rule group but doesn't evaluate it against traffic and doesn't count it toward the rule group's consumed capacity.

          • RuleDescription (string) --

            A description of the rule, up to 512 characters. The description can span multiple lines. A description line can't itself look like a firewall rule; to disable a rule, set RuleEnabled to FALSE instead.

    • RulesSourceList (dict) --

      Stateful inspection criteria for a domain list, specified as the list of domain names that Network Firewall generates firewall engine rules from.

      • Targets (list) -- [REQUIRED]

        The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:

        • Explicit names. For example, abc.example.com matches only the domain abc.example.com.

        • Names that use a domain wildcard, which you indicate with an initial ' .'. For example, .example.com matches example.com and matches all subdomains of example.com, such as abc.example.com and www.example.com.

        • (string) --

      • TargetTypes (list) -- [REQUIRED]

        The types of matching to perform against the domains in Targets. You can specify any combination of the following:

        • AWS_ROUTE_53_RESOLVED_DOMAIN – Match the domain against the domain that the Amazon Route 53 Resolver resolved the connection's destination IP address for.

        • HTTP_HOST – Match the domain against the Host header of HTTP traffic.

        • TLS_SNI – Match the domain against the Server Name Indication (SNI) of HTTPS traffic.

        AWS_ROUTE_53_RESOLVED_DOMAIN matches on how the destination IP address was resolved, rather than on the domain that the client asserts in its TLS SNI or HTTP Host header. This target type takes effect when you configure resolved IP validation on the firewall policy. For more information, see Route53ResolvedIPValidation.

        Whether you include AWS_ROUTE_53_RESOLVED_DOMAIN changes what the generated rules match, together with GeneratedRulesType:

        • Combining AWS_ROUTE_53_RESOLVED_DOMAIN with TLS_SNI or HTTP_HOST in an ALLOWLIST requires both conditions to match. The SNI or Host header must match the domain, and the Route 53 Resolver must have resolved the destination IP address for that domain. Network Firewall allows traffic only in that case. Traffic that matches one condition, such as a spoofed Host header sent to an unresolved IP address, is not allowed.

        • In a DENYLIST, or when AWS_ROUTE_53_RESOLVED_DOMAIN is the only target type, Network Firewall evaluates each condition independently: a match on either the domain (SNI or Host) or the resolved destination IP address triggers the rule.

        • When you don't include AWS_ROUTE_53_RESOLVED_DOMAIN, the generated rules match only on the SNI or Host header, without checking how the destination IP address was resolved.

        An ALLOWLIST whose only target type is AWS_ROUTE_53_RESOLVED_DOMAIN is additive: it allows matching traffic but doesn't generate a default rule that drops non-matching traffic. Only the TLS_SNI and HTTP_HOST target types generate that default drop. To allow only the resolved domains and drop all other traffic, include a protocol target type as well.

        • (string) --

      • GeneratedRulesType (string) -- [REQUIRED]

        Whether you want to apply allow, reject, alert, or drop behavior to the domains in your target list.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the firewall engine rule group, such as IP set and port variables that the rules reference.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets. Firewall engine rule groups don't support IP set references (reference sets); this setting applies to IPS engine rule groups. To use CIDR ranges in firewall engine rules, use rule variables instead.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

type IpsRuleGroup:

dict

param IpsRuleGroup:

An object that defines the rules in an IPS engine rule group, for use in a Next Generation policy.

  • RulesSource (dict) -- [REQUIRED]

    The stateful inspection criteria for the IPS engine rule group.

    • RulesString (string) --

      IPS engine rules, provided as a single Suricata-compatible rule string. For the rule format, see Rules Format on the Suricata website.

  • RuleVariables (dict) --

    Settings that are available for use in the rules in the IPS engine rule group.

    • IPSets (dict) --

      A list of IP addresses and address ranges, in CIDR notation.

      • (string) --

        • (dict) --

          A list of IP addresses and address ranges, in CIDR notation. This is part of a RuleVariables.

          • Definition (list) -- [REQUIRED]

            The list of IP addresses and address ranges, in CIDR notation.

            • (string) --

    • PortSets (dict) --

      A list of port ranges.

      • (string) --

        • (dict) --

          A set of port ranges for use in the rules in a rule group.

          • Definition (list) --

            The set of port ranges.

            • (string) --

  • ReferenceSets (dict) --

    The list of a rule group's reference sets.

    • IPSetReferences (dict) --

      The list of IP set references.

      • (string) --

        • (dict) --

          Configures one or more IP set references for a Suricata-compatible rule group. This is used in CreateRuleGroup or UpdateRuleGroup. An IP set reference is a rule variable that references resources that you create and manage in another Amazon Web Services service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the resource you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall, see Using IP set references in the Network Firewall Developer Guide.

          Network Firewall currently supports Amazon VPC prefix lists and resource groups in IP set references.

          • ReferenceArn (string) --

            The Amazon Resource Name (ARN) of the resource that you are referencing in your rule group.

type Rules:

string

param Rules:

A string containing stateful rule group rules specifications in Suricata flat format, with one rule per line. Use this to import your existing Suricata compatible rule groups.

You can provide your rule group specification in Suricata flat format through this setting when you create or update your rule group. The call response returns a RuleGroup object that Network Firewall has populated from your string.

type Type:

string

param Type:

Indicates the type of the rule group. Valid values are:

  • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

  • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

  • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

  • IPS - IPS engine rules, for use in a Next Generation policy.

type Description:

string

param Description:

A description of the rule group.

type DryRun:

boolean

param DryRun:

Indicates whether you want Network Firewall to just check the validity of the request, rather than run the request.

If set to TRUE, Network Firewall checks whether the request can run successfully, but doesn't actually make the requested changes. The call returns the value that the request would return if you ran it with dry run set to FALSE, but doesn't make additions or changes to your resources. This option allows you to make sure that you have the required permissions to run the request and that your request parameters are valid.

If set to FALSE, Network Firewall makes the requested changes to your resources.

type EncryptionConfiguration:

dict

param EncryptionConfiguration:

A complex type that contains settings for encryption of your rule group resources.

  • KeyId (string) --

    The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

  • Type (string) -- [REQUIRED]

    The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

type SourceMetadata:

dict

param SourceMetadata:

A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to keep track of updates made to the originating rule group.

  • SourceArn (string) --

    The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

  • SourceUpdateToken (string) --

    The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

type AnalyzeRuleGroup:

boolean

param AnalyzeRuleGroup:

Indicates whether you want Network Firewall to analyze the stateless rules in the rule group for rule behavior such as asymmetric routing. If set to TRUE, Network Firewall runs the analysis and then updates the rule group for you. To run the stateless rule group analyzer without updating the rule group, set DryRun to TRUE.

type SummaryConfiguration:

dict

param SummaryConfiguration:

Updates the selected summary configuration for a rule group.

Changes affect subsequent responses from DescribeRuleGroupSummary.

  • RuleOptions (list) --

    Specifies the selected rule options returned by DescribeRuleGroupSummary.

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'UpdateToken': 'string',
    'RuleGroupResponse': {
        'RuleGroupArn': 'string',
        'RuleGroupName': 'string',
        'RuleGroupId': 'string',
        'Description': 'string',
        'Type': 'STATELESS'|'STATEFUL'|'STATEFUL_DOMAIN'|'FIREWALL'|'IPS',
        'Capacity': 123,
        'RuleGroupStatus': 'ACTIVE'|'DELETING'|'ERROR'|'UPDATING',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ],
        'ConsumedCapacity': 123,
        'NumberOfAssociations': 123,
        'EncryptionConfiguration': {
            'KeyId': 'string',
            'Type': 'CUSTOMER_KMS'|'AWS_OWNED_KMS_KEY'
        },
        'SourceMetadata': {
            'SourceArn': 'string',
            'SourceUpdateToken': 'string'
        },
        'SnsTopic': 'string',
        'LastModifiedTime': datetime(2015, 1, 1),
        'AnalysisResults': [
            {
                'IdentifiedRuleIds': [
                    'string',
                ],
                'IdentifiedType': 'STATELESS_RULE_FORWARDING_ASYMMETRICALLY'|'STATELESS_RULE_CONTAINS_TCP_FLAGS',
                'AnalysisDetail': 'string'
            },
        ],
        'SummaryConfiguration': {
            'RuleOptions': [
                'SID'|'MSG'|'METADATA',
            ]
        }
    }
}

Response Structure

  • (dict) --

    • UpdateToken (string) --

      A token used for optimistic locking. Network Firewall returns a token to your requests that access the rule group. The token marks the state of the rule group resource at the time of the request.

      To make changes to the rule group, you provide the token in your request. Network Firewall uses the token to ensure that the rule group hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the rule group again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

    • RuleGroupResponse (dict) --

      The high-level properties of a rule group. This, along with the RuleGroup, define the rule group. You can retrieve all objects for a rule group by calling DescribeRuleGroup.

      • RuleGroupArn (string) --

        The Amazon Resource Name (ARN) of the rule group.

      • RuleGroupName (string) --

        The descriptive name of the rule group. You can't change the name of a rule group after you create it.

      • RuleGroupId (string) --

        The unique identifier for the rule group.

      • Description (string) --

        A description of the rule group.

      • Type (string) --

        Indicates the type of the rule group. Valid values are:

        • STATELESS - Stateless rules, for use in a Classic Network Firewall policy.

        • STATEFUL - Stateful rules, for use in a Classic Network Firewall policy.

        • FIREWALL - Firewall engine rules, for use in a Next Generation policy.

        • IPS - IPS engine rules, for use in a Next Generation policy.

      • Capacity (integer) --

        The maximum operating resources that this rule group can use. Rule group capacity is fixed at creation. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.

        You can retrieve the capacity that would be required for a rule group before you create the rule group by calling CreateRuleGroup with DryRun set to TRUE.

      • RuleGroupStatus (string) --

        Detailed information about the current status of a rule group.

      • Tags (list) --

        The key:value pairs to associate with the resource.

        • (dict) --

          A key:value pair associated with an Amazon Web Services resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each Amazon Web Services resource.

          • Key (string) --

            The part of the key:value pair that defines a tag. You can use a tag key to describe a category of information, such as "customer." Tag keys are case-sensitive.

          • Value (string) --

            The part of the key:value pair that defines a tag. You can use a tag value to describe a specific value within a category, such as "companyA" or "companyB." Tag values are case-sensitive.

      • ConsumedCapacity (integer) --

        The number of capacity units currently consumed by the rule group rules.

      • NumberOfAssociations (integer) --

        The number of firewall policies that use this rule group.

      • EncryptionConfiguration (dict) --

        A complex type that contains the Amazon Web Services KMS encryption configuration settings for your rule group.

        • KeyId (string) --

          The ID of the Amazon Web Services Key Management Service (KMS) customer managed key. You can use any of the key identifiers that KMS supports, unless you're using a key that's managed by another account. If you're using a key managed by another account, then specify the key ARN. For more information, see Key ID in the Amazon Web Services KMS Developer Guide.

        • Type (string) --

          The type of Amazon Web Services KMS key to use for encryption of your Network Firewall resources.

      • SourceMetadata (dict) --

        A complex type that contains metadata about the rule group that your own rule group is copied from. You can use the metadata to track the version updates made to the originating rule group.

        • SourceArn (string) --

          The Amazon Resource Name (ARN) of the rule group that your own rule group is copied from.

        • SourceUpdateToken (string) --

          The update token of the Amazon Web Services managed rule group that your own rule group is copied from. To determine the update token for the managed rule group, call DescribeRuleGroup.

      • SnsTopic (string) --

        The Amazon Resource Name (ARN) of the Amazon Simple Notification Service SNS topic that's used to record changes to the managed rule group. You can subscribe to the SNS topic to receive notifications when the managed rule group is modified, such as for new versions and for version expiration. For more information, see the Amazon Simple Notification Service Developer Guide..

      • LastModifiedTime (datetime) --

        The last time that the rule group was changed.

      • AnalysisResults (list) --

        The list of analysis results for AnalyzeRuleGroup. If you set AnalyzeRuleGroup to TRUE in CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup, Network Firewall analyzes the rule group and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in the list of analysis results.

        • (dict) --

          The analysis result for Network Firewall's stateless rule group analyzer. Every time you call CreateRuleGroup, UpdateRuleGroup, or DescribeRuleGroup on a stateless rule group, Network Firewall analyzes the stateless rule groups in your account and identifies the rules that might adversely effect your firewall's functionality. For example, if Network Firewall detects a rule that's routing traffic asymmetrically, which impacts the service's ability to properly process traffic, the service includes the rule in a list of analysis results.

          The AnalysisResult data type is not related to traffic analysis reports you generate using StartAnalysisReport. For information on traffic analysis report results, see AnalysisTypeReportResult.

          • IdentifiedRuleIds (list) --

            The priority number of the stateless rules identified in the analysis.

            • (string) --

          • IdentifiedType (string) --

            The types of rule configurations that Network Firewall analyzes your rule groups for. Network Firewall analyzes stateless rule groups for the following types of rule configurations:

            • STATELESS_RULE_FORWARDING_ASYMMETRICALLY Cause: One or more stateless rules with the action pass or forward are forwarding traffic asymmetrically. Specifically, the rule's set of source IP addresses or their associated port numbers, don't match the set of destination IP addresses or their associated port numbers. To mitigate: Make sure that there's an existing return path. For example, if the rule allows traffic from source 10.1.0.0/24 to destination 20.1.0.0/24, you should allow return traffic from source 20.1.0.0/24 to destination 10.1.0.0/24.

            • STATELESS_RULE_CONTAINS_TCP_FLAGS Cause: At least one stateless rule with the action pass or forward contains TCP flags that are inconsistent in the forward and return directions. To mitigate: Prevent asymmetric routing issues caused by TCP flags by following these actions:

              • Remove unnecessary TCP flag inspections from the rules.

              • If you need to inspect TCP flags, check that the rules correctly account for changes in TCP flags throughout the TCP connection cycle, for example SYN and ACK flags used in a 3-way TCP handshake.

          • AnalysisDetail (string) --

            Provides analysis details for the identified rule.

      • SummaryConfiguration (dict) --

        A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by DescribeRuleGroupSummary.

        • The RuleOptions specified in SummaryConfiguration

        • Rule metadata organization preferences

        • RuleOptions (list) --

          Specifies the selected rule options returned by DescribeRuleGroupSummary.

          • (string) --