Модуль community.aws.networkfirewall_rule_group — создание, удаление и изменение групп правил AWS Network Firewall
Примечание
Этот модуль входит в коллекцию community.aws (версия 10.1.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.aws. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.aws.networkfirewall_rule_group.
Добавлено в community.aws 4.0.0
Обзор
- Модуль для управления группами правил AWS Network Firewall.
- https://docs.aws.amazon.com/network-firewall/latest/developerguide/index.html
- В настоящее время поддерживаются только группы брандмауэра
stateful.
Требования
Следующие требования необходимо выполнить на узле, на котором запускается этот модуль.
- python >= 3.6
- boto3 >= 1.34.0
- botocore >= 1.34.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key string | Идентификатор ключа доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные среды Параметры aws_access_key и profile являются взаимоисключающими. Псевдоним aws_access_key_id добавлен в выпуске 5.1.0 для согласованности с AWS SDK botocore. |
arn string | ARN группы правил Network Firewall. Необходимо указать ровно один из параметров arn и name. |
aws_ca_bundle path | Путь к пакету сертификатов CA, используемому при проверке SSL-сертификатов. Также можно использовать переменную среды |
aws_config dictionary | Словарь для изменения конфигурации botocore. Параметры описаны в документации AWS: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
capacity integer | Максимальное количество вычислительных ресурсов, которое может использовать эта группа правил. После создания группы правил этот параметр нельзя изменить. См. также документацию AWS о расчёте ёмкости: https://docs.aws.amazon.com/network-firewall/latest/developerguide/nwfw-rule-group-capacity.html Этот параметр обязателен при создании группы правил. |
debug_botocore_endpoint_logs boolean | Используйте регистратор Также можно использовать переменную среды Варианты:
|
description string | Описание группы правил AWS Network Firewall. |
domain_list dictionary | Критерии проверки для группы правил со списком доменов. При задании этого параметра все настройки списка доменов заменяются новой конфигурацией. Дополнительные сведения о фильтрации на основе доменных имён см. в документации AWS: https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html. Взаимоисключающий с rule_type=stateless. Взаимоисключающий с ip_variables, rule_list и rule_strings. При создании необходимо указать ровно один из параметров rule_strings, domain_list или rule_list. |
|
action string / обязательный |
Действие, которое необходимо выполнить с трафиком, соответствующим настройкам сопоставления правила. Варианты:
|
|
domain_names list / elements=string / обязательный |
Список доменных имён, которые необходимо искать в потоке трафика. |
|
filter_http boolean |
Следует ли проверять HTTP-трафик (используется заголовок host). Варианты:
|
|
filter_https boolean |
Следует ли проверять HTTPS-трафик (используется SNI). Варианты:
|
|
source_ips list / elements=string |
Используется для расширения определения локальной сети за пределы диапазона CIDR VPC, в которой развёрнут Network Firewall. |
endpoint_url aliases: aws_endpoint_url string | URL-адрес для подключения вместо конечных точек AWS по умолчанию. Этот параметр можно использовать для подключения к другим совместимым с AWS сервисам, однако коллекции amazon.aws и community.aws тестируются только с AWS. Также можно использовать переменную среды |
ip_variables aliases: ip_set_variables dictionary | Словарь, сопоставляющий имена переменных со списками IP-адресов и диапазонов адресов в нотации CIDR. Например, Взаимоисключающий с domain_list. |
name string | Имя группы правил Network Firewall. Если задан параметр name, необходимо также задать rule_type. |
port_variables aliases: port_set_variables dictionary | Словарь, сопоставляющий имена переменных со списком портов. Например, |
profile aliases: aws_profile string | Именованный профиль AWS для аутентификации. Дополнительные сведения об именованных профилях см. в документации AWS: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную среды Параметр profile является взаимоисключающим с параметрами aws_access_key, aws_secret_key и session_token. |
purge_ip_variables aliases: purge_ip_set_variables boolean | Следует ли удалять имена переменных, не указанные в словаре ip_variables. Чтобы удалить все переменные набора IP-адресов, необходимо явно задать ip_variables={} и purge_port_variables=true. Варианты:
|
purge_port_variables aliases: purge_port_set_variables boolean | Следует ли удалять имена переменных, не указанные в словаре port_variables. Чтобы удалить все переменные набора портов, необходимо явно задать port_variables={} и purge_port_variables=true. Варианты:
|
purge_tags boolean | Если задано Если параметр Ключи тегов, начинающиеся с Варианты:
|
region aliases: aws_region string | Регион AWS для использования. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется. Также можно использовать переменную среды Дополнительные сведения см. в документации Amazon AWS: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. |
rule_list aliases: stateful_rule_list list / elements=dictionary | Критерии проверки для группы правил на основе 5-кортежа. При задании этого параметра все существующие правила 5-кортежа заменяются новой конфигурацией. Взаимоисключающий с domain_list и rule_strings. Взаимоисключающий с rule_type=stateless. При создании необходимо указать ровно один из параметров rule_strings, domain_list или rule_list. Допустимые значения см. в документации AWS: https://docs.aws.amazon.com/network-firewall/latest/APIReference/API_StatefulRule.html и https://docs.aws.amazon.com/network-firewall/latest/APIReference/API_Header.html. Примечание. Идемпотентность при сравнении правил, заданных в веб-интерфейсе AWS и управляемых Ansible, не гарантируется. |
|
action string / обязательный |
Действие, которое Network Firewall должен выполнить с пакетами в потоке трафика при совпадении с правилом. Варианты:
|
|
destination string / обязательный |
IP-адрес или диапазон адресов назначения для проверки в нотации CIDR. Чтобы сопоставить любой адрес, укажите |
|
destination_port string / обязательный |
Порт источника для проверки. Чтобы сопоставить любой порт, укажите |
|
direction string |
Направление потока трафика для проверки. Если задано значение Если задано значение Варианты:
|
|
protocol string / обязательный |
Протокол для проверки. Чтобы указать все протоколы, можно использовать |
|
rule_options dictionary |
Дополнительные параметры правила. Правила на основе 5-кортежа преобразуются AWS в правила Suricata. Для более сложных параметров, где важен порядок, рассмотрите возможность использования rule_strings. Словарь, сопоставляющий имена RuleOptions Suricata со списками значений. В разделе примеров приведены примеры использования rule_options. Дополнительные сведения см. в документации AWS: https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-limitations-caveats.html и в документации Suricata: https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html. |
|
sid integer / обязательный |
Идентификатор сигнатуры правила. Для всех правил необходимо указать уникальный sid. |
|
source string / обязательный |
IP-адрес или диапазон адресов источника для проверки в нотации CIDR. Чтобы сопоставить любой адрес, укажите |
|
source_port string / обязательный |
Порт источника для проверки. Чтобы сопоставить любой порт, укажите |
rule_order aliases: stateful_rule_order string | Определяет способ управления порядком проверки правил в группе правил. После создания группы правил этот параметр нельзя изменить. Взаимоисключающий с rule_type=stateless. Дополнительные сведения о проверке правил см. в документации AWS: https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html. Варианты:
|
rule_strings list / elements=string | Правила в формате Suricata. Если задан параметр rule_strings, он должен содержать как минимум один элемент. Дополнительные сведения см. в документации AWS: https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-limitations-caveats.html и в документации Suricata: https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html. Взаимоисключающий с rule_type=stateless. Взаимоисключающий с domain_list и rule_list. При создании необходимо указать ровно один из параметров rule_strings, domain_list или rule_list. |
rule_type aliases: type string | Определяет, является ли группа правил stateless или stateful. Наборы правил stateless в настоящее время не поддерживаются. Обязательный параметр, если задан name. Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key string | Секретный ключ доступа AWS. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменные окружения Параметры secret_key и profile являются взаимоисключающими. Псевдоним aws_secret_access_key добавлен в выпуске 5.1.0 для единообразия с AWS SDK botocore. |
session_token псевдонимы: aws_session_token string | Токен сеанса AWS STS для использования с временными учетными данными. Дополнительные сведения о токенах доступа см. в документации AWS: https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также можно использовать переменную окружения Параметры session_token и profile являются взаимоисключающими. |
state string | Создать или удалить группу правил Network Firewall. Варианты:
|
tags псевдонимы: resource_tags dictionary | Словарь, представляющий теги, которые необходимо применить к ресурсу. Если параметр |
validate_certs boolean | Если задано значение Настоятельно не рекомендуется задавать validate_certs=false; вместо этого рекомендуется указать aws_ca_bundle. Варианты:
|
wait boolean | Ожидать ли, пока группа правил межсетевого экрана достигнет состояния Варианты:
|
wait_timeout integer | Максимальное время ожидания достижения группой правил межсетевого экрана ожидаемого состояния, в секундах. По умолчанию — 600 секунд. |
Примечания
Примечание
- Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста «узла» Ansible, а не из контекста «контроллера». Поэтому может потребоваться явно скопировать файлы на «узел». Для подключаемых модулей поиска и подключения переменные окружения и файлы конфигурации считываются из контекста «контроллера» Ansible, а не из контекста «узла».
- Используемый Ansible пакет AWS SDK (boto3) также может считывать значения по умолчанию для учетных данных и других параметров, например региона, из файлов конфигурации в контексте «узла» Ansible (обычно
~/.aws/credentials). Дополнительные сведения см. здесь: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
# Create a rule group
- name: Create a minimal AWS Network Firewall Rule Group
community.aws.networkfirewall_rule_group:
name: 'MinimalGroup'
type: 'stateful'
capacity: 200
rule_strings:
- 'pass tcp any any -> any any (sid:1000001;)'
# Create an example rule group using rule_list
- name: Create 5-tuple Rule List based rule group
community.aws.networkfirewall_rule_group:
name: 'ExampleGroup'
type: 'stateful'
description: 'My description'
rule_order: default
capacity: 100
rule_list:
- sid: 1
direction: forward
action: pass
protocol: IP
source: any
source_port: any
destination: any
destination_port: any
# Create an example rule group using rule_list
- name: Create 5-tuple Rule List based rule group
community.aws.networkfirewall_rule_group:
name: 'ExampleGroup'
type: 'stateful'
description: 'My description'
ip_variables:
SOURCE_IPS: ['203.0.113.0/24', '198.51.100.42']
DESTINATION_IPS: ['192.0.2.0/24', '198.51.100.48']
port_variables:
HTTP_PORTS: [80, 8080]
rule_order: default
capacity: 100
rule_list:
# Allow 'Destination Unreachable' traffic
- sid: 1
action: pass
protocol: icmp
source: any
source_port: any
destination: any
destination_port: any
rule_options:
itype: 3
- sid: 2
action: drop
protocol: tcp
source: "$SOURCE_IPS"
source_port: any
destination: "$DESTINATION_IPS"
destination_port: "$HTTP_PORTS"
rule_options:
urilen: ["20<>40"]
# Where only a keyword is needed, add the keword, but no value
http_uri:
# Settings where Suricata expects raw strings (like the content
# keyword) will need to have the double-quotes explicitly escaped and
# passed because there's no practical way to distinguish between them
# and flags.
content: '"index.php"'
# Create an example rule group using Suricata rule strings
- name: Create Suricata rule string based rule group
community.aws.networkfirewall_rule_group:
name: 'ExampleSuricata'
type: 'stateful'
description: 'My description'
capacity: 200
ip_variables:
EXAMPLE_IP: ['203.0.113.0/24', '198.51.100.42']
ANOTHER_EXAMPLE: ['192.0.2.0/24', '198.51.100.48']
port_variables:
EXAMPLE_PORT: [443, 22]
rule_strings:
- 'pass tcp any any -> $EXAMPLE_IP $EXAMPLE_PORT (sid:1000001;)'
- 'pass udp any any -> $ANOTHER_EXAMPLE any (sid:1000002;)'
# Create an example Domain List based rule group
- name: Create Domain List based rule group
community.aws.networkfirewall_rule_group:
name: 'ExampleDomainList'
type: 'stateful'
description: 'My description'
capacity: 100
domain_list:
domain_names:
- 'example.com'
- '.example.net'
filter_https: true
filter_http: true
action: allow
source_ips: '192.0.2.0/24'
# Update the description of a rule group
- name: Update the description of a rule group
community.aws.networkfirewall_rule_group:
name: 'MinimalGroup'
type: 'stateful'
description: 'Another description'
# Update IP Variables for a rule group
- name: Update IP Variables
community.aws.networkfirewall_rule_group:
name: 'ExampleGroup'
type: 'stateful'
ip_variables:
EXAMPLE_IP: ['192.0.2.0/24', '203.0.113.0/24', '198.51.100.42']
purge_ip_variables: false
# Delete a rule group
- name: Delete a rule group
community.aws.networkfirewall_rule_group:
name: 'MinimalGroup'
type: 'stateful'
state: absent
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
rule_group dictionary | Сведения о правилах в группе правил Возвращается: при успешном выполнении |
|
rule_group dictionary |
Сведения о правилах в группе правил Возвращается: при успешном выполнении |
|
rule_variables complex |
Параметры, доступные для использования в правилах группы правил. Возвращается: если к группе правил прикреплены переменные правил. |
|
ip_sets dictionary |
Словарь, сопоставляющий имена переменных IP-адресам в формате CIDR. Возвращается: при успешном выполнении Пример: |
|
port_sets dictionary |
Словарь, сопоставляющий имена переменных портам Возвращается: при успешном выполнении Пример: |
|
rules_source dictionary |
Критерии проверки, используемые для группы правил на основе 5-кортежей. Возвращается: при успешном выполнении |
|
rules_source_list dictionary |
Описание критериев для группы правил со списком доменов. Возвращается: если группа правил основана на «списке доменов». |
|
generated_rules_type string |
Указывает, разрешает или запрещает группа правил доступ к доменам из списка. Возвращается: при успешном выполнении Пример: |
|
target_types list / elements=string |
Протоколы, проверяемые группой правил. Возвращается: при успешном выполнении Пример: |
|
targets list / elements=string |
Список доменных имён для проверки. Возвращается: при успешном выполнении Пример: |
|
rules_string string |
Строка с описанием правил, из которых состоит группа правил. Возвращается: если группа правил основана на «строке правил». |
|
stateful_rules list / elements=dictionary |
Список словарей с описанием правил, из которых состоит группа правил. Возвращается: если группа правил основана на «списке правил». |
|
action string |
Действие, выполняемое при совпадении потока с критериями правила. Возвращается: при успешном выполнении Пример: |
|
header dictionary |
Описание критериев, используемых правилом. Возвращается: при успешном выполнении |
|
destination string |
Адрес назначения или диапазон адресов для проверки. Возвращается: при успешном выполнении Пример: |
|
destination_port string |
Порт назначения для проверки. Возвращается: при успешном выполнении Пример: |
|
direction string |
Направление проверяемого потока трафика. Возвращается: при успешном выполнении Пример: |
|
protocol string |
Протокол для проверки. Возвращается: при успешном выполнении Пример: |
|
source string |
Адрес источника или диапазон адресов для проверки. Возвращается: при успешном выполнении Пример: |
|
source_port string |
Порт источника для проверки. Возвращается: при успешном выполнении Пример: |
|
rule_options list / elements=dictionary |
Дополнительные параметры RuleOptions Suricata для правила. Возвращается: при успешном выполнении |
|
keyword string |
Ключевое слово для параметра. Возвращается: при успешном выполнении Пример: |
|
settings list / elements=string |
Список значений, переданных параметру. Возвращается: когда доступны значения |
|
stateless_rules_and_custom_actions dictionary |
Описание критериев для группы правил без сохранения состояния. Возвращается: если группа правил не сохраняет состояние. |
|
custom_actions list / elements=dictionary |
Список отдельных определений пользовательских действий, доступных для использования в правилах без сохранения состояния. Возвращается: при успешном выполнении |
|
action_definition dictionary |
Пользовательское действие, связанное с именем действия. Возвращается: при успешном выполнении |
|
publish_metric_action dictionary |
Описание действия, публикующего данные в CloudWatch. Возвращается: если действие публикует данные в CloudWatch. |
|
dimensions list / elements=dictionary |
Значение для пользовательского измерения метрики Amazon CloudWatch. Возвращается: при успешном выполнении |
|
value string |
Значение для пользовательского измерения метрики. Возвращается: при успешном выполнении |
|
action_name string |
Имя пользовательского действия. Возвращается: при успешном выполнении |
|
stateless_rules list / elements=dictionary |
Список правил для использования в группе правил без сохранения состояния. Возвращается: при успешном выполнении |
|
priority integer |
Определяет порядок выполнения этого правила относительно всех правил, заданных для группы правил без сохранения состояния. Возвращается: при успешном выполнении |
|
rule_definition dictionary |
Описывает критерии проверки 5-кортежей и действия правила без сохранения состояния. Возвращается: при успешном выполнении |
|
actions list / elements=string |
Действия, выполняемые при совпадении потока с правилом. Возвращается: при успешном выполнении Пример: |
|
match_attributes dictionary |
Описывает критерии проверки 5-кортежей для правила без сохранения состояния. Возвращается: при успешном выполнении |
|
destination_ports list / elements=dictionary |
Диапазоны портов назначения для проверки. Возвращается: при успешном выполнении |
|
from_port integer |
Нижняя граница диапазона портов. Возвращается: при успешном выполнении |
|
to_port integer |
Верхняя граница диапазона портов. Возвращается: при успешном выполнении |
|
destinations list / elements=dictionary |
IP-адреса назначения и диапазоны адресов для проверки. Возвращается: при успешном выполнении |
|
address_definition string |
IP-адрес или блок IP-адресов в нотации CIDR. Возвращается: при успешном выполнении Пример: |
|
protocols list / elements=integer |
Номера протоколов IANA для проверки. Возвращается: при успешном выполнении Пример: |
|
source_ports list / elements=dictionary |
Диапазоны портов источника для проверки. Возвращается: при успешном выполнении |
|
from_port integer |
Нижняя граница диапазона портов. Возвращается: при успешном выполнении |
|
to_port integer |
Верхняя граница диапазона портов. Возвращается: при успешном выполнении |
|
sources list / elements=dictionary |
IP-адреса источника и диапазоны адресов для проверки. Возвращается: при успешном выполнении |
|
address_definition string |
IP-адрес или блок IP-адресов в нотации CIDR. Возвращается: при успешном выполнении Пример: |
|
tcp_flags list / elements=dictionary |
Флаги TCP и маски, которые необходимо проверять. Возвращается: при успешном выполнении |
|
flags list / elements=string |
Используются вместе с масками для определения флагов TCP, которые проверяются в потоках. Возвращается: при успешном выполнении |
|
masks list / elements=string |
Набор флагов, учитываемых при проверке. Возвращается: при успешном выполнении |
|
stateful_rule_options dictionary |
Дополнительные параметры, определяющие обработку правил с отслеживанием состояния в Network Firewall. Возвращается: если группа правил основана на строке правил или списке правил. |
|
rule_order string |
Порядок проверки правил. Возвращается: при успешном выполнении Пример: |
|
rule_group_metadata dictionary |
Сведения о правилах в группе правил Возвращается: при успешном выполнении |
|
capacity integer |
Максимальный объем ресурсов, который может использовать эта группа правил. Возвращается: при успешном выполнении |
|
consumed_capacity integer |
Количество единиц емкости, используемых в данный момент правилами группы. Возвращается: при успешном выполнении |
|
description string |
Описание группы правил. Возвращается: при успешном выполнении |
|
number_of_associations integer |
Количество политик брандмауэра, использующих эту группу правил. Возвращается: при успешном выполнении |
|
rule_group_arn integer |
ARN группы правил Возвращается: при успешном выполнении Пример: |
|
rule_group_id integer |
Уникальный идентификатор группы правил. Возвращается: при успешном выполнении Пример: |
|
rule_group_name string |
Имя группы правил. Возвращается: при успешном выполнении |
|
rule_group_status string |
Текущий статус группы правил. Возвращается: при успешном выполнении Пример: |
|
tags dictionary |
Словарь, представляющий теги, связанные с группой правил. Возвращается: при успешном выполнении |
|
type string |
Определяет, является ли группа правил группой без отслеживания состояния или с отслеживанием состояния. Возвращается: при успешном выполнении Пример: |
Ссылки коллекции
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/aws/networkfirewall_rule_group_module.html