community.aws.aws_waf_condition – Создание и удаление условий WAF
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в плейбуке укажите: community.aws.aws_waf_condition.
Новое в версии 1.0.0: of community.aws
Обзор
- Прочитайте документацию AWS по WAF https://aws.amazon.com/documentation/waf/
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное использование параметров aws_access_key и profile устарело и после 2022-06-01 будет сделано взаимоисключающим. псевдонимы: ec2_access_key, access_key | |||
| aws_ca_bundle путь | Расположение файла с набором сертификатов CA для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: набор CA считывается со стороны модуля и может потребоваться явное копирование с контроллера, если он не запущен локально. | |||
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Дополнительную информацию о конфигурации boto см. по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | |||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Одновременное использование параметров aws_secret_key и profile устарело и после 2022-06-01 будет сделано взаимоисключающим. псевдонимы: ec2_secret_key, secret_key | |||
| debug_botocore_endpoint_logs булево |
| Используйте логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, выполненного во время выполнения сценария. Также может использоваться переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. | ||
| ec2_url строка | URL для подключения к облаку EC2 или Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не указан, используется значение переменной окружения EC2_URL, если она задана. псевдонимы: aws_endpoint_url, endpoint_url | |||
| filters список / элементы=словарь | Список фильтров, по которым необходимо выполнить соответствие. Для type=byte, допустимые ключи — field_to_match, position, header, transformation и target_string. Для type=geo, единственный допустимый ключ — country. Для type=ip, единственный допустимый ключ — ip_address. Для type=regex, допустимые ключи — field_to_match, transformation и regex_pattern. Для type=size, допустимые ключи — field_to_match, transformation, comparison и size. Для type=sql, допустимые ключи — field_to_match и transformation. Для type=xss, допустимые ключи — field_to_match и transformation. Требуется при state=present. | |||
| comparison строка |
| Тип сравнения, который необходимо выполнить. Допустим только при type=size. | ||
| country строка | Значение географического ограничения (обычно двухбуквенный код страны). Единственный допустимый ключ при type=geo. | |||
| field_to_match строка |
| Поле, по которому выполняется соответствие. Допустимо при type=byte, type=regex, type=sql или type=xss. | ||
| header строка | Какой конкретный заголовок должен сопоставляться. Требуется при field_to_match=header. Допустимо при type=byte. | |||
| ip_address строка | IP-адрес или CIDR для сопоставления. Единственный допустимый ключ при type=ip. | |||
| position строка |
| Место в поле, где должно произойти сопоставление. Допустимо только при type=byte. | ||
| regex_pattern словарь | Словарь, описывающий регулярные выражения, используемые для сопоставления. Допустимо только при type=regex. | |||
| name строка | Название, описывающее набор шаблонов. | |||
| regex_strings список / элементы=строка | Список регулярных выражений для сопоставления. | |||
| size целое число | Размер поля (в байтах). Единственный допустимый ключ при type=size. | |||
| target_string строка | Строка, которую необходимо найти. Может составлять до 50 байт. Допустимо при type=byte. | |||
| transformation строка |
| Преобразование, которое необходимо применить к полю перед выполнением сопоставления. Допустимо при type=byte, type=regex, type=sql или type=xss. | ||
| name строка / обязательно | Имя условия межсайтовой атаки (Web Application Firewall) для управления. | |||
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, и поддержка их одновременного использования с profile устарела.
aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | |||
| purge_filters булево |
| Удалить ли существующие фильтры из условия, если они не переданы в filters. | ||
| region строка | Регион AWS для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она задана. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | |||
| security_token строка | AWS STS токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и после 2022-06-01 будет сделано взаимоисключающим. псевдонимы: aws_security_token, access_token | |||
| state строка |
| Нужно ли present или absent. | ||
| type строка / обязательно |
| Тип соответствия. | ||
| validate_certs булево |
| Если установлено значение "нет", SSL-сертификаты не будут проверены для версий boto >= 2.6.0. | ||
| waf_regional булево |
| Использовать ли модуль waf-regional. | ||
Примечания
Примечание
- Если параметры не заданы в модуле, следующие переменные среды могут быть использованы в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE - Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в конфигурационном файле boto
Примеры
- name: create WAF byte condition
community.aws.aws_waf_condition:
name: my_byte_condition
filters:
- field_to_match: header
position: STARTS_WITH
target_string: Hello
header: Content-type
type: byte
- name: create WAF geo condition
community.aws.aws_waf_condition:
name: my_geo_condition
filters:
- country: US
- country: AU
- country: AT
type: geo
- name: create IP address condition
community.aws.aws_waf_condition:
name: "{{ resource_prefix }}_ip_condition"
filters:
- ip_address: "10.0.0.0/8"
- ip_address: "192.168.0.0/24"
type: ip
- name: create WAF regex condition
community.aws.aws_waf_condition:
name: my_regex_condition
filters:
- field_to_match: query_string
regex_pattern:
name: greetings
regex_strings:
- '[hH]ello'
- '^Hi there'
- '.*Good Day to You'
type: regex
- name: create WAF size condition
community.aws.aws_waf_condition:
name: my_size_condition
filters:
- field_to_match: query_string
size: 300
comparison: GT
type: size
- name: create WAF sql injection condition
community.aws.aws_waf_condition:
name: my_sql_condition
filters:
- field_to_match: query_string
transformation: url_decode
type: sql
- name: create WAF xss condition
community.aws.aws_waf_condition:
name: my_xss_condition
filters:
- field_to_match: query_string
transformation: url_decode
type: xss
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |||
|---|---|---|---|---|---|
| condition complex | всегда | Условие, возвращаемое операцией. | |||
| byte_match_set_id string | всегда | Идентификатор набора совпадений байтов. Пример: c4882c96-837b-44a2-a762-4ea87dbf812b | |||
| byte_match_tuples complex | всегда | Список кортежей совпадений байтов. | |||
| field_to_match complex | всегда | Поле для сравнения. | |||
| data string | успех | Конкретный заголовок (если тип - заголовок). Пример: content-type | |||
| type string | успех | Тип поля. Пример: HEADER | |||
| positional_constraint string | успех | Позиция в поле для сравнения. Пример: STARTS_WITH | |||
| target_string string | успех | Строка для поиска. Пример: Hello | |||
| text_transformation string | успех | Преобразование, применяемое к полю перед сравнением. Пример: NONE | |||
| condition_id string | при наличии состояния | Идентификатор условия, не зависящий от типа. Пример: dd74b1ff-8c06-4a4f-897a-6b23605de413 | |||
| geo_match_constraints complex | при типе geo и наличии состояния | Список географических ограничений. | |||
| type string | успех | Тип географического ограничения. Пример: Country | |||
| value string | успех | Значение географического ограничения (обычно код страны). Пример: AT | |||
| geo_match_set_id string | при типе geo и наличии состояния | Идентификатор набора географических совпадений. Пример: dd74b1ff-8c06-4a4f-897a-6b23605de413 | |||
| ip_set_descriptors complex | при типе ip и наличии состояния | список фильтров IP-адресов | |||
| type string | всегда | Тип IP-адреса (IPV4 или IPV6). Пример: IPV4 | |||
| value string | всегда | IP-адрес. Пример: 10.0.0.0/8 | |||
| ip_set_id string | при типе ip и наличии состояния | Идентификатор условия. Пример: 78ad334a-3535-4036-85e6-8e11e745217b | |||
| name string | при наличии состояния | Имя условия. Пример: my_waf_condition | |||
| regex_match_set_id string | при типе regex и наличии состояния | Идентификатор набора совпадений по регулярным выражениям. Пример: 5ea3f6a8-3cd3-488b-b637-17b79ce7089c | |||
| regex_match_tuples complex | при типе regex и наличии состояния | Список совпадений по регулярным выражениям. | |||
| field_to_match complex | успех | Поле, к которому применяется совпадение по регулярному выражению. | |||
| type string | при типе regex и наличии состояния | Имя поля. Пример: QUERY_STRING | |||
| regex_pattern_set_id string | успех | Идентификатор набора регулярных выражений. Пример: 6fdf7f2d-9091-445c-aef2-98f3c051ac9e | |||
| text_transformation string | успех | Преобразование, применяемое к тексту перед сравнением. Пример: NONE | |||
| size_constraint_set_id string | при типе size и наличии состояния | Идентификатор набора ограничений размера. Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| size_constraints complex | при типе size и наличии состояния | Список ограничений размера. | |||
| comparison_operator string | успех | Оператор сравнения. Пример: GT | |||
| field_to_match complex | успех | Поле, к которому применяется ограничение размера. | |||
| type string | успех | Имя поля. Пример: QUERY_STRING | |||
| size integer | успех | Размер для сравнения с полем. Пример: 300 | |||
| text_transformation string | успех | Преобразование, применяемое к тексту перед сравнением. Пример: NONE | |||
| sql_injection_match_set_id string | при типе sql и наличии состояния | Идентификатор набора совпадений SQL-инъекций. Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| sql_injection_match_tuples complex | при типе sql и наличии состояния | Список наборов совпадений SQL-инъекций. | |||
| field_to_match complex | успех | Поле, к которому применяется сравнение на SQL-инъекцию. | |||
| type string | успех | Имя поля. Пример: QUERY_STRING | |||
| text_transformation string | успех | Преобразование, применяемое к тексту перед сравнением. Пример: URL_DECODE | |||
| xss_match_set_id string | при типе xss и наличии состояния | Идентификатор набора совпадений XSS. Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| xss_match_tuples complex | при типе xss и наличии состояния | Список наборов совпадений XSS. | |||
| field_to_match complex | успех | Поле, к которому применяется сравнение XSS. | |||
| type string | успех | Имя поля Пример: QUERY_STRING | |||
| text_transformation string | успех | Преобразование, применяемое к тексту перед сравнением. Пример: URL_DECODE | |||
Авторы
- Will Thames (@willthames)
- Mike Mochan (@mmochan)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/aws_waf_condition_module.html