Модуль community.aws.wafv2_web_acl – Создание и удаление правил WAF Web ACL
Примечание
Этот модуль является частью коллекции community.aws (версия 8.0.0).
У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля потребуются дополнительные требования, см. Требования для получения подробной информации.
Для использования в playbook укажите: community.aws.wafv2_web_acl.
Новая функция в community.aws 1.5.0
Описание
- Создание, изменение или удаление правил AWS WAF v2 web ACL (не для классических WAF).
- См. документацию по адресу https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 3.6
- boto3 >= 1.26.0
- botocore >= 1.29.0
Параметры
Параметр | Комментарии |
|---|---|
access_key aliases: aws_access_key_id, aws_access_key, ec2_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 botocore SDK. Псевдоним ec2_access_key устарел и будет удален в выпуске после 2024-12-01. Поддержка переменной среды |
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. |
cloudwatch_metrics boolean | Включить метрику cloudwatch для wafv2 web acl. Варианты:
|
custom_response_bodies dictionary добавлено в community.aws 3.1.0 | Карта ключей пользовательских ответов и текстов сообщений. Определите тексты ответов здесь и сошлитесь на них в правилах, указав ключ элемента словаря тела. Каждый элемент должен иметь уникальный ключ dict и в dict два ключа для content_type и content. |
debug_botocore_endpoint_logs boolean | Использовать Переменная среды Варианты:
|
default_action string | Действие по умолчанию для wafv2 web acl. Варианты:
|
description string | Описание wafv2 web acl. |
endpoint_url aliases: ec2_url, aws_endpoint_url, s3_url string | URL для подключения вместо стандартных конечных точек AWS. Хотя это может использоваться для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws тестируются только с AWS. Переменные среды Псевдонимы ec2_url и s3_url устарели и будут удалены в выпуске после 2024-12-01. Поддержка переменной среды |
metric_name string | Имя метрик cloudwatch. Если не указано, а cloudwatch_metrics включен, будет взято имя самого web acl. |
name string / required | Имя web acl. |
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 и security_token. |
purge_rules boolean | При установке в Варианты:
|
purge_tags boolean | Если purge_tags=true и установлен tags, существующие теги будут очищены из ресурса, чтобы точно соответствовать тому, что определено параметром tags. Если параметр tags не установлен, теги не будут изменены, даже если purge_tags=True. Ключи тегов, начинающиеся с Варианты:
|
region aliases: aws_region, ec2_region string | Регион AWS для использования. Для глобальных сервисов, таких как IAM, Route53 и CloudFront, region игнорируется. Также можно использовать переменные окружения Дополнительную информацию можно найти в документации Amazon AWS по ссылке http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Псевдоним Поддержка переменной окружения |
rules list / elements=dictionary | Утверждения правил, используемые для определения веб-запросов, которые нужно разрешить, заблокировать или подсчитать. Список управляемых правил см. по ссылке https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html. |
|
action dictionary |
Блокировка, разрешение или подсчет правила. |
|
name string |
Имя правила wafv2. |
|
priority integer |
Приоритет правила. |
|
statement dictionary |
Настройка правила. |
|
visibility_config dictionary |
Видимость отдельного правила wafv2. |
sampled_requests boolean | Сохранять ли образец веб-запросов, true или false. Варианты:
|
scope string / обязательно | Географический охват веб-ACL. Варианты:
|
secret_key aliases: aws_secret_access_key, aws_secret_key, ec2_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 botocore SDK. Псевдоним 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 / обязательно | Присутствует или отсутствует правило. Варианты:
|
tags aliases: resource_tags dictionary | Словарь, представляющий метки, которые будут применены к ресурсу. Если параметр tags не задан, метки не будут изменены. |
validate_certs boolean | При установке в значение Установка validate_certs=false настоятельно не рекомендуется. В качестве альтернативы, рассмотрите возможность установки aws_ca_bundle вместо этого. Варианты:
|
Примечания
Примечание
- Поддержка параметра purge_tags была добавлена в релизе 4.0.0.
- Внимание: Для модулей переменные окружения и конфигурационные файлы считываются из контекста Ansible «хост», а не из контекста «контроллер». Поэтому файлы могут потребоваться явно скопировать на «хост». Для плагинов поиска и подключения переменные окружения и конфигурационные файлы считываются из контекста Ansible «контроллер», а не из контекста «хост».
- AWS SDK (boto3), используемый Ansible, также может читать значения по умолчанию для учетных данных и других настроек, таких как регион, из своих конфигурационных файлов в контексте Ansible «хост» (обычно
~/.aws/credentials). Дополнительную информацию см. в https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.
Примеры
- name: Create test web acl
community.aws.wafv2_web_acl:
name: test05
description: hallo eins
scope: REGIONAL
default_action: Allow
sampled_requests: false
cloudwatch_metrics: true
metric_name: test05-acl-metric
rules:
- name: zwei
priority: 0
action:
block: {}
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: ddos
statement:
xss_match_statement:
field_to_match:
body: {}
text_transformations:
- type: NONE
priority: 0
- name: admin_protect
priority: 1
override_action:
none: {}
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: fsd
statement:
managed_rule_group_statement:
vendor_name: AWS
name: AWSManagedRulesAdminProtectionRuleSet
# AWS Managed Bad Input Rule Set
# but allow PROPFIND_METHOD used e.g. by webdav
- name: bad_input_protect_whitelist_webdav
priority: 2
override_action:
none: {}
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: bad_input_protect
statement:
managed_rule_group_statement:
vendor_name: AWS
name: AWSManagedRulesKnownBadInputsRuleSet
excluded_rules:
- name: PROPFIND_METHOD
# Rate Limit example. 1500 req/5min
# counted for two domains via or_statement. login.mydomain.tld and api.mydomain.tld
- name: rate_limit_example
priority: 3
action:
block: {}
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: mydomain-ratelimit
statement:
rate_based_statement:
limit: 1500
aggregate_key_type: IP
scope_down_statement:
or_statement:
statements:
- byte_match_statement:
search_string: login.mydomain.tld
positional_constraint: CONTAINS
field_to_match:
single_header:
name: host
text_transformations:
- type: LOWERCASE
priority: 0
- byte_match_dtatement:
search_string: api.mydomain.tld
positional_constraint: CONTAINS
field_to_match:
single_header:
name: host
text_transformations:
- type: LOWERCASE
priority: 0
purge_rules: true
tags:
A: B
C: D
state: present
- name: Create IP filtering web ACL
community.aws.wafv2_web_acl:
name: ip-filtering-traffic
description: ACL that filters web traffic based on rate limits and whitelists some IPs
scope: REGIONAL
default_action: Allow
sampled_requests: true
cloudwatch_metrics: true
metric_name: ip-filtering-traffic
rules:
- name: whitelist-own-IPs
priority: 0
action:
allow: {}
statement:
ip_set_reference_statement:
arn: 'arn:aws:wafv2:us-east-1:123456789012:regional/ipset/own-public-ips/1c4bdfc4-0f77-3b23-5222-123123123'
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: waf-acl-rule-whitelist-own-IPs
- name: rate-limit-per-IP
priority: 1
action:
block:
custom_response:
response_code: 429
custom_response_body_key: too_many_requests
statement:
rate_based_statement:
limit: 5000
aggregate_key_type: IP
visibility_config:
sampled_requests_enabled: true
cloud_watch_metrics_enabled: true
metric_name: waf-acl-rule-rate-limit-per-IP
purge_rules: true
custom_response_bodies:
too_many_requests:
content_type: APPLICATION_JSON
content: '{ message: "Your request has been blocked due to too many HTTP requests coming from your IP" }'
region: us-east-1
state: present
Значения возврата
Общие значения возврата описаны здесь, ниже приведены поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
arn строка | arn веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
capacity целое число | Текущая емкость веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
custom_response_bodies словарь | Конфигурации пользовательских ответов, используемые в правилах Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
default_action словарь | Действие по умолчанию ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
description строка | Описание веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
name строка | Имя веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
rules список / элементы=строка | Текущие правила веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
visibility_config словарь | Конфигурация видимости веб-ACL Возвращаемое значение: Всегда, при условии, что веб-ACL существует Пример: |
Ссылки на коллекцию
© 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/wafv2_web_acl_module.html