Skip to content

aws.network_firewall.describe_rule_group

Example SQL Queries

SELECT * FROM
aws.network_firewall.describe_rule_group;

Description

Returns the data objects for the specified rule group.

Table Definition

Column NameColumn Data Type
analyze_rule_group Input Column

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.

BOOLEAN
rule_group_arn Input Column

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

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

VARCHAR
rule_group_name Input Column

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.

VARCHAR
type Input Column

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.

This setting is required for requests that do not include the RuleGroupARN.

VARCHAR
_aws_profile Input Column

The AWS profile defines the AWS identity used. It can be defined via credentials or by assuming a IAM role.

STRUCT(
"type" VARCHAR,
"name" VARCHAR,
"account_id" VARCHAR,
"via_profile_name" VARCHAR,
"assumed_role_arn" VARCHAR,
"organization" STRUCT(
"account_name" VARCHAR,
"id" VARCHAR,
"tags" STRUCT(
"key" VARCHAR,
"value" VARCHAR
)[],
"master_account" STRUCT(
"id" VARCHAR,
"email" VARCHAR
),
"parents" STRUCT(
"type" VARCHAR,
"id" VARCHAR,
"name" VARCHAR,
"tags" STRUCT(
"key" VARCHAR,
"value" VARCHAR
)[]
)[]
)
)
Show child fields
_aws_profile.account_id

The AWS account id

_aws_profile.assumed_role_arn

The ARN of the assumed role

_aws_profile.name

The unique name of the profile.

_aws_profile.organization

Information about this profile's membership in the AWS organization.

Show child fields
_aws_profile.organization.account_name

The name of account speciifed by the organization

_aws_profile.organization.id

The organization id

_aws_profile.organization.master_account
Show child fields
_aws_profile.organization.master_account.email

The organization master account email address

_aws_profile.organization.master_account.id

The organization master account id

_aws_profile.organization.parents[]
Show child fields
_aws_profile.organization.parents[].id

The id of the parent

_aws_profile.organization.parents[].name

The name of the parent

_aws_profile.organization.parents[].tags[]
Show child fields
_aws_profile.organization.parents[].tags[].key
_aws_profile.organization.parents[].tags[].value
_aws_profile.organization.parents[].type

The type of parent can be an organization unit or a root

_aws_profile.organization.tags[]
Show child fields
_aws_profile.organization.tags[].key
_aws_profile.organization.tags[].value
_aws_profile.type

The type of profile, either 'credentials' or 'assumed_role'

_aws_profile.via_profile_name

This IAM role for this profile is assumed by first utilizing another profile with this name to obtain credentials.

_aws_region Input Column

The AWS region to use.

VARCHAR
rule_group

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.

STRUCT(
"rule_variables" STRUCT(
"ip_sets" MAP(VARCHAR, STRUCT(
"definition" VARCHAR[]
)),
"port_sets" MAP(VARCHAR, STRUCT(
"definition" VARCHAR[]
))
),
"reference_sets" STRUCT(
"ip_set_references" MAP(VARCHAR, STRUCT(
"reference_arn" VARCHAR
))
),
"rules_source" STRUCT(
"rules_string" VARCHAR,
"rules_source_list" STRUCT(
"targets" VARCHAR[],
"target_types" VARCHAR[],
"generated_rules_type" VARCHAR
),
"stateful_rules" STRUCT(
"action" VARCHAR,
"header" STRUCT(
"protocol" VARCHAR,
"source" VARCHAR,
"source_port" VARCHAR,
"direction" VARCHAR,
"destination" VARCHAR,
"destination_port" VARCHAR
),
"rule_options" STRUCT(
"keyword" VARCHAR,
"settings" VARCHAR[]
)[]
)[],
"stateless_rules_and_custom_actions" STRUCT(
"stateless_rules" STRUCT(
"rule_definition" STRUCT(
"match_attributes" STRUCT(
"sources" STRUCT(
"address_definition" VARCHAR
)[],
"destinations" STRUCT(
"address_definition" VARCHAR
)[],
"source_ports" STRUCT(
"from_port" BIGINT,
"to_port" BIGINT
)[],
"destination_ports" STRUCT(
"from_port" BIGINT,
"to_port" BIGINT
)[],
"protocols" BIGINT[],
"tcp_flags" STRUCT(
"flags" VARCHAR[],
"masks" VARCHAR[]
)[]
),
"actions" VARCHAR[]
),
"priority" BIGINT
)[],
"custom_actions" STRUCT(
"action_name" VARCHAR,
"action_definition" STRUCT(
"publish_metric_action" STRUCT(
"dimensions" STRUCT(
"value" VARCHAR
)[]
)
)
)[]
)
),
"stateful_rule_options" STRUCT(
"rule_order" VARCHAR
)
)
Show child fields
rule_group.reference_sets

The list of a rule group's reference sets.

Show child fields
rule_group.reference_sets.ip_set_references

The list of IP set references.

rule_group.rule_variables

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

Show child fields
rule_group.rule_variables.ip_sets

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

rule_group.rule_variables.port_sets

A list of port ranges.

rule_group.rules_source

The stateful rules or stateless rules for the rule group.

Show child fields
rule_group.rules_source.rules_source_list

Stateful inspection criteria for a domain list rule group.

Show child fields
rule_group.rules_source.rules_source_list.generated_rules_type

Whether you want to allow or deny access to the domains in your target list.

rule_group.rules_source.rules_source_list.target_types[]
rule_group.rules_source.rules_source_list.targets[]
rule_group.rules_source.rules_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.

You can't use the priority keyword if the RuleOrder option in StatefulRuleOptions is set to STRICT_ORDER.

rule_group.rules_source.stateful_rules[]
Show child fields
rule_group.rules_source.stateful_rules[].action

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.

rule_group.rules_source.stateful_rules[].header

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

Show child fields
rule_group.rules_source.stateful_rules[].header.destination

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.

rule_group.rules_source.stateful_rules[].header.destination_port

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.

rule_group.rules_source.stateful_rules[].header.direction

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.

rule_group.rules_source.stateful_rules[].header.protocol

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.

rule_group.rules_source.stateful_rules[].header.source

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.

rule_group.rules_source.stateful_rules[].header.source_port

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.

rule_group.rules_source.stateful_rules[].rule_options[]
Show child fields
rule_group.rules_source.stateful_rules[].rule_options[].keyword

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.

rule_group.rules_source.stateful_rules[].rule_options[].settings[]
rule_group.rules_source.stateless_rules_and_custom_actions

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

Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[].action_definition

The custom action associated with the action name.

Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[].action_definition.publish_metric_action

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.

Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[].action_definition.publish_metric_action.dimensions[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[].action_definition.publish_metric_action.dimensions[].value

The value to use in the custom metric dimension.

rule_group.rules_source.stateless_rules_and_custom_actions.custom_actions[].action_name

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

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].priority

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.

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition

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

Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.actions[]
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes

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.

Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.destination_ports[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.destination_ports[].from_port

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

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.destination_ports[].to_port

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

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.destinations[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.destinations[].address_definition

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.

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.protocols[]
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.source_ports[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.source_ports[].from_port

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

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.source_ports[].to_port

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

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.sources[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.sources[].address_definition

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.

rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.tcp_flags[]
Show child fields
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.tcp_flags[].flags[]
rule_group.rules_source.stateless_rules_and_custom_actions.stateless_rules[].rule_definition.match_attributes.tcp_flags[].masks[]
rule_group.stateful_rule_options

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.

Show child fields
rule_group.stateful_rule_options.rule_order

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.

rule_group_response

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.

STRUCT(
"rule_group_arn" VARCHAR,
"rule_group_name" VARCHAR,
"rule_group_id" VARCHAR,
"description" VARCHAR,
"type" VARCHAR,
"capacity" BIGINT,
"rule_group_status" VARCHAR,
"tags" STRUCT(
"key" VARCHAR,
"value" VARCHAR
)[],
"consumed_capacity" BIGINT,
"number_of_associations" BIGINT,
"encryption_configuration" STRUCT(
"key_id" VARCHAR,
"type" VARCHAR
),
"source_metadata" STRUCT(
"source_arn" VARCHAR,
"source_update_token" VARCHAR
),
"sns_topic" VARCHAR,
"last_modified_time" TIMESTAMP_S,
"analysis_results" STRUCT(
"identified_rule_ids" VARCHAR[],
"identified_type" VARCHAR,
"analysis_detail" VARCHAR
)[]
)
Show child fields
rule_group_response.analysis_results[]
Show child fields
rule_group_response.analysis_results[].analysis_detail

Provides analysis details for the identified rule.

rule_group_response.analysis_results[].identified_rule_ids[]
rule_group_response.analysis_results[].identified_type

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 orforward 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.

rule_group_response.capacity

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.

rule_group_response.consumed_capacity

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

rule_group_response.description

A description of the rule group.

rule_group_response.encryption_configuration

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

Show child fields
rule_group_response.encryption_configuration.key_id

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.

rule_group_response.encryption_configuration.type

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

rule_group_response.last_modified_time

The last time that the rule group was changed.

rule_group_response.number_of_associations

The number of firewall policies that use this rule group.

rule_group_response.rule_group_arn

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

If this response is for a create request that had DryRun set to TRUE, then this ARN is a placeholder that isn't attached to a valid resource.

rule_group_response.rule_group_id

The unique identifier for the rule group.

rule_group_response.rule_group_name

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

rule_group_response.rule_group_status

Detailed information about the current status of a rule group.

rule_group_response.sns_topic

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..

rule_group_response.source_metadata

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.

Show child fields
rule_group_response.source_metadata.source_arn

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

rule_group_response.source_metadata.source_update_token

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.

rule_group_response.tags[]
Show child fields
rule_group_response.tags[].key

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.

rule_group_response.tags[].value

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.

rule_group_response.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.

update_token

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.

VARCHAR