Модуль community.aws.networkfirewall_rule_group — создание, удаление и изменение групп правил AWS Network Firewall
Примечание
Этот модуль входит в коллекцию community.aws (версия 8.0.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.26.0
- botocore >= 1.29.0
Параметры
Параметр | Комментарии |
|---|---|
access_key псевдонимы: aws_access_key_id, aws_access_key, ec2_access_key строка | Идентификатор ключа доступа 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 для обеспечения согласованности с SDK AWS botocore. Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной окружения |
arn строка | ARN группы правил брандмауэра Network Firewall. Должен быть указан ровно один из параметров arn и name. |
aws_ca_bundle путь | Расположение файла сертификата CA, используемого для проверки SSL-сертификатов. Также может использоваться переменная окружения |
aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. |
capacity целое число | Максимальные оперативные ресурсы, которые может использовать эта группа правил. После создания группы правил этот параметр неизменяем. См. также документацию AWS о том, как рассчитывается емкость https://docs.aws.amazon.com/network-firewall/latest/developerguide/nwfw-rule-group-capacity.html Этот параметр обязателен при создании новой группы правил. |
debug_botocore_endpoint_logs логический тип | Использовать Также может использоваться переменная окружения Варианты:
|
description строка | Описание группы правил брандмауэра AWS Network Firewall. |
domain_list словарь | Критерии проверки для группы правил с перечнем доменов. При установке переписывает все настройки списка доменов новой конфигурацией. Дополнительную информацию о фильтрации по доменным именам см. в документации 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 строка / обязательный |
Действие, которое следует выполнить для трафика, соответствующего параметрам соответствия правил. Варианты:
|
|
domain_names список / элементы=строка / обязательный |
Список доменных имён для поиска в потоке трафика. |
|
filter_http логический тип |
Необходимо ли проверять HTTP-трафик (используется заголовок host). Варианты:
|
|
filter_https логический тип |
Необходимо ли проверять HTTPS-трафик (используется SNI). Варианты:
|
|
source_ips список / элементы=строка |
Используется для расширения определения локальной сети за пределы диапазона CIDR VPC, в котором вы развертываете брандмауэр Network Firewall. |
endpoint_url псевдонимы: ec2_url, aws_endpoint_url, s3_url строка | URL для подключения вместо стандартных конечных точек AWS. Хотя это может быть использовано для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только против AWS. Также могут использоваться переменные окружения Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01. Поддержка переменной окружения |
ip_variables aliases: ip_set_variables словарь | Словарь, сопоставляющий имена переменных списку IP-адресов и диапазонов адресов в нотации CIDR. Например Взаимоисключающее с domain_list. |
name строка | Имя группы правил брандмауэра сети. При установке name также необходимо установить rule_type. |
port_variables aliases: port_set_variables словарь | Словарь, сопоставляющий имена переменных списку портов. Например |
profile aliases: aws_profile строка | Используемый профиль AWS для аутентификации. Дополнительную информацию о профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html. Также можно использовать переменную окружения Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и security_token. |
purge_ip_variables aliases: purge_ip_set_variables логическое | Удалить имена переменных, отсутствующие в словаре ip_variables. Для удаления всех переменных IP-наборов необходимо явно установить ip_variables={} и purge_port_variables=true. Варианты:
|
purge_port_variables aliases: purge_port_set_variables логическое | Удалить имена переменных, отсутствующие в словаре port_variables. Для удаления всех наборов переменных портов необходимо явно установить port_variables={} и purge_port_variables=true. Варианты:
|
purge_tags логическое | Если purge_tags=true и tags установлено, существующие метки будут очищены для точного соответствия параметру tags. Если параметр tags не задан, метки не будут изменены, даже если purge_tags=True. Ключи меток, начинающиеся с Варианты:
|
region aliases: aws_region, ec2_region строка | Используемый регион 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 список / элементы=словарь | Критерии проверки, используемые для группы правил на основе 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 Web UI и Ansible не представляется возможным |
|
action строка / обязательно |
Действие, которое должен выполнить Network Firewall с пакетами в потоке трафика, когда поток соответствует. Варианты:
|
|
destination строка / обязательно |
IP-адрес или диапазон назначения для проверки в нотации CIDR. Для соответствия любому адресу, укажите |
|
destination_port строка / обязательно |
Порт источника для проверки. Для соответствия любому порту, укажите |
|
direction string |
Направление потока трафика для проверки. Если установлено значение Если установлено значение Варианты:
|
|
protocol string / обязательно |
Протокол для проверки. Для указания всех протоколов можно использовать |
|
rule_options словарь |
Дополнительные параметры для правила. Правила на основе 5-ти кортежей преобразуются AWS в правила Suricata. Для более сложных требований, где важен порядок, используйте rule_strings. Словарь, сопоставляющий имена параметров правила 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 целое число / обязательно |
Идентификатор подписи правила. Для всех правил необходимо указать уникальный sid. |
|
source строка / обязательно |
IP-адрес или диапазон IP-адресов источника для проверки в формате CIDR. Для сопоставления с любым адресом укажите |
|
source_port строка / обязательно |
Порт источника для проверки. Для сопоставления с любым портом укажите |
rule_order псевдонимы: stateful_rule_order строка | Указывает способ управления порядком оценки правил для группы правил. После создания группы правил этот параметр неизменяем. Взаимоисключающий с rule_type=stateless. Дополнительную информацию о том, как оцениваются правила, см. в документации AWS https://docs.aws.amazon.com/network-firewall/latest/developerguide/suricata-rule-evaluation-order.html. Варианты:
|
rule_strings список / элементы=строка | Правила в формате 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 псевдонимы: type строка | Указывает, является ли группа правил бессостоятельной или состоятельной. Бессостоятельные наборы правил в настоящее время не поддерживаются. Обязательно, если задано name. Варианты:
|
secret_key псевдонимы: aws_secret_access_key, aws_secret_key, ec2_secret_key строка | Секретный ключ доступа 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 для обеспечения соответствия с SDK AWS botocore. Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01. Поддержка переменной среды |
session_token aliases: aws_session_token, security_token, aws_security_token, access_token string | Токен сеанса AWS STS для использования с временными учетными данными. Дополнительную информацию об маркерах доступа см. в документации AWS по https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys. Также могут использоваться переменные среды Параметры security_token и profile взаимоисключающие. Алиасы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0. Алиасы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01. Поддержка переменных среды |
state string | Создать или удалить группу правил брандмауэра Network Firewall. Варианты:
|
tags aliases: resource_tags dictionary | Словарь, представляющий метки, которые необходимо применить к ресурсу. Если параметр tags не задан, метки не будут изменены. |
validate_certs boolean | При установке в Установка validate_certs=false настоятельно не рекомендуется. В качестве альтернативы, рассмотрите настройку aws_ca_bundle вместо этого. Варианты:
|
wait boolean | Ожидать ли достижения группой правил брандмауэра состояния Варианты:
|
wait_timeout integer | Максимальное время ожидания достижения группой правил брандмауэра ожидаемого состояния в секундах. По умолчанию 600 секунд. |
Примечания
Примечание
- Внимание: Для модулей переменные среды и конфигурационные файлы читаются из контекста Ansible ‘host’, а не ‘controller’. Поэтому файлы может потребоваться явно скопировать на ‘host’. Для плагинов поиска и подключения переменные среды и конфигурационные файлы читаются из контекста Ansible ‘controller’, а не ‘host’.
- AWS SDK (boto3), используемый Ansible, также может читать значения по умолчанию для учетных данных и других настроек, таких как регион, из своих конфигурационных файлов в контексте Ansible ‘host’ (обычно
~/.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 словарь | Подробности правил в группе правил Возвращается: успешно |
|
rule_group словарь |
Подробности правил в группе правил Возвращается: успешно |
|
rule_variables сложный |
Настройки, доступные для использования в правилах группы правил. Возвращается: при присоединении переменных правил к группе правил. |
|
ip_sets словарь |
Словарь, сопоставляющий имена переменных с IP-адресами в формате CIDR. Возвращается: успешно Пример: |
|
port_sets словарь |
Словарь, сопоставляющий имена переменных с портами. Возвращается: успешно Пример: |
|
rules_source словарь |
Критерии проверки, используемые для группы правил на основе 5-кортежа. Возвращается: успешно |
|
rules_source_list словарь |
Описание критериев для группы правил на основе списка доменов. Возвращается: при использовании группы правил на основе «списка доменов». |
|
generated_rules_type строка |
Разрешает или запрещает доступ к доменам в списке. Возвращается: успешно Пример: |
|
target_types список / элементы=строка |
Протоколы, подлежащие проверке группой правил. Возвращается: успешно Пример: |
|
targets список / элементы=строка |
Список имен доменов, подлежащих проверке. Возвращается: успешно Пример: |
|
rules_string строка |
Строка, описывающая правила, из которых состоит группа правил. Возвращается: при использовании группы правил на основе «строки правил». |
|
stateful_rules список / элементы=словарь |
Список словарей, описывающих правила, из которых состоит группа правил. Возвращается: при использовании группы правил на основе «списка правил». |
|
action строка |
Действие, которое необходимо выполнить, когда поток соответствует критериям правила. Возвращается: успешно Пример: |
|
header словарь |
Описание критериев, используемых для правила. Возвращается: успешно |
|
destination строка |
Адрес назначения или диапазон адресов, подлежащих проверке. Возвращается: успешно Пример: |
|
destination_port строка |
Порт назначения для проверки. Возвращается: успешно Пример: |
|
direction строка |
Направление потока трафика для проверки. Возвращается: успешно Пример: |
|
protocol string |
Протокол для проверки. Возвращается: success Пример: |
|
source string |
Исходный адрес или диапазон адресов для проверки. Возвращается: success Пример: |
|
source_port string |
Исходный порт для проверки. Возвращается: success Пример: |
|
rule_options list / elements=dictionary |
Дополнительные параметры Suricata RuleOptions для правила. Возвращается: success |
|
keyword string |
Ключевое слово для настройки. Возвращается: success Пример: |
|
settings list / elements=string |
Список значений, переданных в настройку. Возвращается: Когда значения доступны |
|
stateless_rules_and_custom_actions dictionary |
Описание критериев для группы правил без сохранения состояния. Возвращается: Когда группа правил является группой правил без сохранения состояния. |
|
custom_actions list / elements=dictionary |
Список отдельных определений пользовательских действий, которые доступны для использования в правилах без сохранения состояния. Возвращается: success |
|
action_definition dictionary |
Пользовательское действие, связанное с именем действия. Возвращается: success |
|
publish_metric_action dictionary |
Описание действия, которое публикует в CloudWatch. Возвращается: Когда действие публикуется в CloudWatch. |
|
dimensions list / elements=dictionary |
Значение для использования в измерении пользовательского метрика Amazon CloudWatch. Возвращается: success |
|
value string |
Значение для использования в пользовательском измерении метрики. Возвращается: success |
|
action_name string |
Имя для пользовательского действия. Возвращается: success |
|
stateless_rules list / elements=dictionary |
Список правил без сохранения состояния для использования в группе правил без сохранения состояния. Возвращается: success |
|
priority integer |
Указывает порядок выполнения этого правила относительно всех правил, определенных для группы правил без сохранения состояния. Возвращается: success |
|
rule_definition dictionary |
Описывает критерии проверки 5-кортежей без сохранения состояния и действия для правила. Возвращается: success |
|
actions list / elements=string |
Действия, которые необходимо выполнить, когда поток соответствует правилу. Возвращается: success Пример: |
|
match_attributes dictionary |
Описывает критерии проверки 5-кортежа без сохранения состояния для правила. Возвращено: success |
|
destination_ports list / elements=dictionary |
Диапазоны портов назначения для проверки. Возвращено: success |
|
from_port integer |
Нижний предел диапазона портов. Возвращено: success |
|
to_port integer |
Верхний предел диапазона портов. Возвращено: success |
|
destinations list / elements=dictionary |
IP-адреса и диапазоны адресов назначения для проверки. Возвращено: success |
|
address_definition string |
IP-адрес или блок IP-адресов в нотации CIDR. Возвращено: success Пример: |
|
protocols list / elements=integer |
Номера протоколов IANA, которые необходимо проверить. Возвращено: success Пример: |
|
source_ports list / elements=dictionary |
Диапазоны исходных портов для проверки. Возвращено: success |
|
from_port integer |
Нижний предел диапазона портов. Возвращено: success |
|
to_port integer |
Верхний предел диапазона портов. Возвращено: success |
|
sources list / elements=dictionary |
Исходные IP-адреса и диапазоны адресов для проверки. Возвращено: success |
|
address_definition string |
IP-адрес или блок IP-адресов в нотации CIDR. Возвращено: success Пример: |
|
tcp_flags list / elements=dictionary |
Флаги и маски TCP для проверки. Возвращено: success |
|
flags list / elements=string |
Используется с масками для определения флагов TCP, для которых проверяются потоки. Возвращено: success |
|
masks list / elements=string |
Набор флагов, учитываемых при проверке. Возвращено: success |
|
stateful_rule_options dictionary |
Дополнительные параметры, определяющие, как Network Firewall обрабатывает правила с сохранением состояния. Возвращено: Когда группа правил основана либо на «строке правил», либо на «списке правил». |
|
rule_order string |
Порядок, в котором будут оцениваться правила. Возвращается: success Пример: |
|
rule_group_metadata dictionary |
Подробности правил в группе правил Возвращается: success |
|
capacity integer |
Максимальные операционные ресурсы, которые может использовать эта группа правил. Возвращается: success |
|
consumed_capacity integer |
Количество единиц емкости, в настоящее время потребляемых правилами группы правил. Возвращается: success |
|
description string |
Описание группы правил. Возвращается: success |
|
number_of_associations integer |
Количество правил брандмауэра, которые используют эту группу правил. Возвращается: success |
|
rule_group_arn integer |
ARN группы правил Возвращается: success Пример: |
|
rule_group_id integer |
Уникальный идентификатор группы правил. Возвращается: success Пример: |
|
rule_group_name string |
Название группы правил. Возвращается: success |
|
rule_group_status string |
Текущий статус группы правил. Возвращается: success Пример: |
|
tags dictionary |
Словарь, представляющий теги, связанные с группой правил. Возвращается: success |
|
type string |
Является ли группа правил бессостоятельной или состоятельной. Возвращается: success Пример: |
Ссылки на коллекции
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/networkfirewall_rule_group_module.html