aws_waf_condition – создание и удаление условий WAF
Новое в версии 2.5.
Обзор
- Прочитайте документацию 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. псевдонимы: ec2_access_key, access_key | |
| aws_secret_key - | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | |
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. | |
| filters - | Список фильтров для сопоставления Для type= byte, допустимые ключи — field_to_match, position, header, transformation.
Для 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
field_to_match может быть одним из uri, query_string, header method и body
Если field_to_match — header, то необходимо также указать header
transformation может быть одним из none, compress_white_space, html_entity_decode, lowercase, cmd_line, url_decode
position может быть одним из exactly, starts_with, ends_with, contains, contains_word.
comparison может быть одним из EQ, NE, LE, LT, GE, GT.
target_string имеет максимальную длину 50 байт.
regex_pattern — словарь с ключом name и списком строк regex_strings для сопоставления. | |
| name - / обязательно | Имя условия межсайтовой атаки (WAF condition), подлежащего управлению | |
| profile - добавлено в 1.6 | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_filters - | Удалять ли существующие фильтры из условия, если они не переданы в filters. По умолчанию — false | |
| region - | Регион AWS. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | |
| security_token - добавлено в 1.6 | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | |
| state - |
| Должно ли условие быть present или absent
|
| type - |
| Тип сопоставления |
| validate_certs boolean добавлено в 1.5 |
| При значении "no" сертификаты SSL не будут проверяться для boto-версий >= 2.6.0. |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но их также можно настроить в файле конфигурации boto
Примеры
- name: create WAF byte condition
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
aws_waf_condition:
name: my_geo_condition
filters:
- country: US
- country: AU
- country: AT
type: geo
- name: create IP address condition
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
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
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
aws_waf_condition:
name: my_sql_condition
filters:
- field_to_match: query_string
transformation: url_decode
type: sql
- name: create WAF xss condition
aws_waf_condition:
name: my_xss_condition
filters:
- field_to_match: query_string
transformation: url_decode
type: xss
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |||
|---|---|---|---|---|---|
| condition сложное | всегда | условие, возвращаемое операцией | |||
| byte_match_set_id строка | всегда | Идентификатор набора совпадений байтов Пример: c4882c96-837b-44a2-a762-4ea87dbf812b | |||
| byte_match_tuples сложное | всегда | список кортежей совпадений байтов | |||
| field_to_match сложное | всегда | Поле для сопоставления | |||
| data строка | Какой конкретный заголовок (если тип заголовок) Пример: content-type | ||||
| type строка | Тип поля Пример: HEADER | ||||
| positional_constraint строка | Позиция в поле для сопоставления Пример: STARTS_WITH | ||||
| target_string строка | Строка для поиска Пример: Hello | ||||
| text_transformation строка | Преобразование, применяемое к полю перед сопоставлением Пример: NONE | ||||
| condition_id строка | при наличии состояния | Идентификатор условия, не зависящий от типа Пример: dd74b1ff-8c06-4a4f-897a-6b23605de413 | |||
| geo_match_constraints сложное | при type = geo и наличии состояния | Список географических ограничений | |||
| type строка | Тип географического ограничения Пример: Страна | ||||
| value строка | Значение географического ограничения (обычно код страны) Пример: AT | ||||
| geo_match_set_id строка | при type = geo и наличии состояния | Идентификатор набора географических совпадений Пример: dd74b1ff-8c06-4a4f-897a-6b23605de413 | |||
| ip_set_descriptors сложное | при type = ip и наличии состояния | список фильтров IP-адресов | |||
| type строка | всегда | Тип IP-адреса (IPV4 или IPV6) Пример: IPV4 | |||
| value строка | всегда | IP-адрес Пример: 10.0.0.0/8 | |||
| ip_set_id строка | при type = ip и наличии состояния | Идентификатор условия Пример: 78ad334a-3535-4036-85e6-8e11e745217b | |||
| name строка | при наличии состояния | Имя условия Пример: my_waf_condition | |||
| regex_match_set_id строка | при type = regex и наличии состояния | Идентификатор набора совпадений по регулярному выражению Пример: 5ea3f6a8-3cd3-488b-b637-17b79ce7089c | |||
| regex_match_tuples сложное | при type = regex и наличии состояния | Список совпадений по регулярному выражению | |||
| field_to_match сложное | Поле, к которому применяется совпадение по регулярному выражению | ||||
| type строка | при type = regex и наличии состояния | Имя поля Пример: QUERY_STRING | |||
| regex_pattern_set_id строка | Идентификатор набора регулярных выражений Пример: 6fdf7f2d-9091-445c-aef2-98f3c051ac9e | ||||
| text_transformation строка | Преобразование, применяемое к тексту перед сопоставлением Пример: NONE | ||||
| size_constraint_set_id строка | при type = size и наличии состояния | Идентификатор набора ограничений по размеру Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| size_constraints сложное | при type = size и наличии состояния | Список ограничений по размеру | |||
| comparison_operator строка | Оператор сравнения Пример: GT | ||||
| field_to_match сложное | Поле, к которому применяется ограничение по размеру | ||||
| type строка | Имя поля Пример: QUERY_STRING | ||||
| size целое число | Размер для сравнения с полем Пример: 300 | ||||
| преобразование_текста строка | преобразование, применяемое к тексту перед сопоставлением Пример: NONE | ||||
| id_набора_сопоставлений_sql_инъекции строка | когда тип sql и состояние присутствует | ID набора сопоставлений SQL-инъекции Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| кортежи_сопоставлений_sql_инъекции сложное | когда тип sql и состояние присутствует | Список наборов сопоставлений SQL-инъекции | |||
| поле_для_сопоставления сложное | Поле, к которому применяется сопоставление SQL-инъекции | ||||
| тип строка | Имя поля Пример: QUERY_STRING | ||||
| преобразование_текста строка | преобразование, применяемое к тексту перед сопоставлением Пример: URL_DECODE | ||||
| id_набора_сопоставлений_xss строка | когда тип xss и состояние присутствует | ID набора сопоставлений XSS Пример: de84b4b3-578b-447e-a9a0-0db35c995656 | |||
| кортежи_сопоставлений_xss сложное | когда тип xss и состояние присутствует | Список наборов сопоставлений XSS | |||
| поле_для_сопоставления сложное | Поле, к которому применяется сопоставление XSS | ||||
| тип строка | Имя поля Пример: QUERY_STRING | ||||
| преобразование_текста строка | преобразование, применяемое к тексту перед сопоставлением Пример: URL_DECODE | ||||
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- 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.7/modules/aws_waf_condition_module.html