Spec-Zone.ru › Ansible

Модуль 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_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY также могут использоваться в порядке убывания приоритета.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id был добавлен в версии 5.1.0 для согласованности с AWS botocore SDK.

Псевдоним ec2_access_key устарел и будет удален в выпуске после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в выпуске после 2024-12-01.

aws_ca_bundle

path

Расположение пакета CA, используемого при проверке SSL-сертификатов.

Переменная среды AWS_CA_BUNDLE также может использоваться.

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.

Варианты:

  • false
  • true ← (по умолчанию)

custom_response_bodies

dictionary

добавлено в community.aws 3.1.0

Карта ключей пользовательских ответов и текстов сообщений. Определите тексты ответов здесь и сошлитесь на них в правилах, указав

ключ элемента словаря тела.

Каждый элемент должен иметь уникальный ключ dict и в dict два ключа для content_type и content.

debug_botocore_endpoint_logs

boolean

Использовать botocore.endpoint регистратор для анализа уникальных (а не общих) "resource:action" вызовов API, выполненных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения playbook.

Переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS также может использоваться.

Варианты:

  • false ← (по умолчанию)
  • true

default_action

string

Действие по умолчанию для wafv2 web acl.

Варианты:

  • "Block"
  • "Allow"

description

string

Описание wafv2 web acl.

endpoint_url

aliases: ec2_url, aws_endpoint_url, s3_url

string

URL для подключения вместо стандартных конечных точек AWS. Хотя это может использоваться для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws тестируются только с AWS.

Переменные среды AWS_URL или EC2_URL также могут использоваться в порядке убывания приоритета.

Псевдонимы ec2_url и s3_url устарели и будут удалены в выпуске после 2024-12-01.

Поддержка переменной среды EC2_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.

Переменная среды AWS_PROFILE также может использоваться.

Параметр profile является взаимоисключающим с параметрами aws_access_key, aws_secret_key и security_token.

purge_rules

boolean

При установке в no, существующие правила балансировщика нагрузки остаются на месте. Будет изменять и добавлять, но не удалять.

Варианты:

  • false
  • true ← (по умолчанию)

purge_tags

boolean

Если purge_tags=true и установлен tags, существующие теги будут очищены из ресурса, чтобы точно соответствовать тому, что определено параметром tags.

Если параметр tags не установлен, теги не будут изменены, даже если purge_tags=True.

Ключи тегов, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Таким образом, они будут игнорироваться для параметра purge_tags. Дополнительную информацию см. в документации Amazon https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (по умолчанию)

region

aliases: aws_region, ec2_region

string

Регион AWS для использования.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, region игнорируется.

Также можно использовать переменные окружения AWS_REGION или EC2_REGION.

Дополнительную информацию можно найти в документации Amazon AWS по ссылке http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01

Поддержка переменной окружения EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

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.

Варианты:

  • false ← (по умолчанию)
  • true

scope

string / обязательно

Географический охват веб-ACL.

Варианты:

  • "CLOUDFRONT"
  • "REGIONAL"

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.

Также можно использовать переменные окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, или EC2_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile взаимоисключающие.

Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для соответствия AWS botocore SDK.

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной окружения 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.

Также можно использовать переменные окружения AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN в порядке убывания приоритета.

Параметры 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.

Поддержка переменных окружения EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

state

string / обязательно

Присутствует или отсутствует правило.

Варианты:

  • "present"
  • "absent"

tags

aliases: resource_tags

dictionary

Словарь, представляющий метки, которые будут применены к ресурсу.

Если параметр tags не задан, метки не будут изменены.

validate_certs

boolean

При установке в значение false, сертификаты SSL для связи с API AWS не будут проверяться.

Установка validate_certs=false настоятельно не рекомендуется. В качестве альтернативы, рассмотрите возможность установки aws_ca_bundle вместо этого.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Поддержка параметра 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 существует

Пример: "arn:aws:wafv2:eu-central-1:123456789012:regional/webacl/test05/318c1ab9-fa74-4b3b-a974-f92e25106f61"

capacity

целое число

Текущая емкость веб-ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: 140

custom_response_bodies

словарь

Конфигурации пользовательских ответов, используемые в правилах

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: {"too_many_requests": {"content": "{ message: \"Your request has been blocked due to too many HTTP requests coming from your IP\" }", "content_type": "APPLICATION_JSON"}}

default_action

словарь

Действие по умолчанию ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: {"allow": {}}

description

строка

Описание веб-ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: "Some web acl description"

name

строка

Имя веб-ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: "test02"

rules

список / элементы=строка

Текущие правила веб-ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: [{"name": "admin_protect", "override_action": {"none": {}}, "priority": 1, "statement": {"managed_rule_group_statement": {"name": "AWSManagedRulesAdminProtectionRuleSet", "vendor_name": "AWS"}}, "visibility_config": {"cloud_watch_metrics_enabled": true, "metric_name": "admin_protect", "sampled_requests_enabled": true}}]

visibility_config

словарь

Конфигурация видимости веб-ACL

Возвращаемое значение: Всегда, при условии, что веб-ACL существует

Пример: {"cloud_watch_metrics_enabled": true, "metric_name": "blub", "sampled_requests_enabled": false}

Авторы

  • Markus Bergholz (@markuman)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API