Spec-Zone.ru › AWS CLI v2

[ aws . wafv2 ]

create-rule-group

Описание

Создает RuleGroup в соответствии с предоставленными спецификациями.

Группа правил определяет набор правил для проверки и управления веб-запросами, которые вы можете использовать в WebACL. При создании группы правил вы определяете неизменяемый предел емкости. При обновлении группы правил необходимо оставаться в пределах емкости. Это позволяет другим повторно использовать группу правил с уверенностью в ее требованиях к емкости.

См. также: Документация по API AWS

Сводка

  create-rule-group
--name <value>
--scope <value>
--capacity <value>
[--description <value>]
[--rules <value>]
--visibility-config <value>
[--tags <value>]
[--custom-response-bodies <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--name (string)

Имя группы правил. Вы не можете изменить имя группы правил после ее создания.

--scope (string)

Указывает, относится ли это к глобальному типу ресурса, такому как дистрибутив Amazon CloudFront. Для приложения Amplify используйте CLOUDFRONT .

Для работы с CloudFront необходимо также указать регион Восток США (Северная Вирджиния) следующим образом:

  • CLI - Укажите регион при использовании области действия CloudFront: --scope=CLOUDFRONT --region=us-east-1 .
  • API и SDK - Для всех вызовов используйте конечную точку региона us-east-1.

Возможные значения:

  • CLOUDFRONT
  • REGIONAL

--capacity (long)

Блоки единиц емкости веб-ACL (WCUs), требуемые для этой группы правил.

При создании собственной группы правил вы определяете это, и вы не можете изменить это после создания. При добавлении или изменении правил в группе правил WAF применяет это ограничение. Вы можете проверить емкость для набора правил с помощью CheckCapacity .

WAF использует WCUs для расчета и управления операционными ресурсами, которые используются для запуска ваших правил, групп правил и веб-ACL. WAF рассчитывает емкость по-разному для каждого типа правила, чтобы отразить относительную стоимость каждого правила. Простые правила, выполнение которых обходится недорого, используют меньше WCUs, чем более сложные правила, использующие больше вычислительной мощности. Емкость группы правил фиксируется при создании, что помогает пользователям планировать использование WCU веб-ACL при использовании группы правил. Для получения дополнительной информации см. Единицы емкости (WCU) веб-ACL WAF в Руководстве разработчика WAF .

--description (string)

Описание группы правил, которое помогает с идентификацией.

--rules (list)

Операторы правил, используемые для идентификации веб-запросов, которыми вы хотите управлять. Каждое правило включает один оператор верхнего уровня, который WAF использует для идентификации соответствующих веб-запросов, и параметры, которые управляют тем, как WAF обрабатывает их.

(structure)

Отдельное правило, которое вы можете использовать в WebACL или RuleGroup для идентификации веб-запросов, которыми вы хотите управлять каким-либо образом. Каждое правило включает один оператор верхнего уровня, который WAF использует для идентификации соответствующих веб-запросов, и параметры, которые управляют тем, как WAF обрабатывает их.

Name -> (string)

Имя правила.

Если вы измените имя Rule после его создания и хотите, чтобы имя метрики правила отражало это изменение, обновите имя метрики в настройках VisibilityConfig правила. WAF не обновляет имя метрики автоматически при изменении имени правила.

Priority -> (integer)

Если вы определите более одного Rule в WebACL , WAF оценивает каждый запрос по отношению к Rules в порядке, основанном на значении Priority . WAF обрабатывает правила с более низким приоритетом первыми. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Statement -> (structure)

Оператор обработки WAF для правила, например ByteMatchStatement или SizeConstraintStatement .

ByteMatchStatement -> (structure)

Оператор правила, который определяет поиск соответствия строк для WAF, который будет применяться к веб-запросам. Оператор сопоставления байтов предоставляет байты для поиска, местоположение в запросах, которые вы хотите, чтобы WAF искал, и другие настройки. Байты для поиска обычно представляют собой строку, которая соответствует символам ASCII. В консоли WAF и в руководстве разработчика это называется оператором сопоставления строк.

SearchString -> (blob)

Строковое значение, которое вы хотите, чтобы WAF искал. WAF выполняет поиск только в той части веб-запросов, которую вы назначаете для проверки в FieldToMatch . Максимальная длина значения составляет 200 байт.

Допустимые значения зависят от компонента, который вы указываете для проверки в FieldToMatch :

  • Method : HTTP-метод, который вы хотите, чтобы WAF искал. Это указывает тип операции, указанной в запросе.
  • UriPath : Значение, которое вы хотите, чтобы WAF искал в пути URI, например, /images/daily-ad.jpg .
  • JA3Fingerprint : Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. Вы можете использовать этот выбор только с оператором сопоставления строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY . Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может рассчитать отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе Поля журнала в Руководстве разработчика WAF .
  • HeaderOrder : Список имен заголовков для сопоставления. WAF создает строку, которая содержит упорядоченный список имен заголовков из заголовков в веб-запросе, а затем сопоставляет с этой строкой.

Если SearchString включает в себя буквы A-Z и a-z, обратите внимание, что значение чувствительно к регистру.

Если вы используете API WAF

Укажите версию значения, закодированную в формате base64. Максимальная длина значения перед кодированием base64 составляет 200 байт.

Например, предположим, что значение Type равно HEADER, а значение Data равно User-Agent . Если вы хотите найти в заголовке User-Agent значение BadBot , вы кодируете BadBot в формате base64, используя кодирование MIME base64, и включаете полученное значение, QmFkQm90 , в значение SearchString .

Если вы используете CLI или один из SDK Amazon Web Services

Значение, которое вы хотите, чтобы WAF искал. SDK автоматически кодирует значение в base64.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

В качестве альтернативы можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверьте все аргументы запроса.

UriPath -> (structure)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (structure)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверьте тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большего размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — проверять доступное содержимое тела в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами вашего правила и действия веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверьте тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большего размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью параметра MatchPattern. Если вы укажете параметр ALL, WAF будет сопоставлять ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих случаях. Чтобы требовать совпадения в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — проверять тело как обычный текст. WAF применяет текстовые преобразования и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки анализа, с которой он сталкивается.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда анализ завершен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — проверять доступное содержимое тела в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами вашего правила и действия веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Вы должны настроить фильтры соответствия области действия и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Вы должны настроить обработку любого содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков, которые необходимо сопоставить с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, или значениях, или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое - значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Вы должны настроить область действия и фильтры сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Вы должны настроить обработку любого содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, или значениях, или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое - значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверить строку, содержащую список имен заголовков запроса, упорядоченных в том виде, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента при проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 - это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, для которого имеется достаточная информация TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора соответствия строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Вы можете указать следующие варианты поведения при отступлении:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 - это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, для которого имеется достаточная информация TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора соответствия строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Вы можете указать следующие варианты поведения при отступлении:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверить фрагменты URI запроса. Вы должны настроить область действия и фильтры сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Вы должны настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите эту настройку, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет поведение при отступлении. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют часть необычного форматирования, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют часть необычного форматирования, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от самого низкого приоритета к самому высокому, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но все они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в WAF Developer Guide .

PositionalConstraint -> (string)

Область в части веб-запроса, в которой WAF должен искать SearchString . Допустимые значения включают следующее:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString , но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString , и SearchString должен содержать только буквенно-цифровые символы или символ подчеркивания (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что истинны оба следующих условия:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_). Примеры включают значение заголовка и ;BadBot .
  • SearchString находится в конце указанной части веб-запроса или за ним следует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_), например, BadBot; и -BadBot; .
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString .

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (structure)

Правило, которое проверяет наличие вредоносного SQL-кода. Злоумышленники вставляют вредоносный SQL-код в веб-запросы, чтобы выполнять такие действия, как изменение вашей базы данных или извлечение данных из нее.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете отфильтровать и проверить все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверка всех аргументов запроса.

UriPath -> (structure)

Проверка пути URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (structure)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверка тела запроса в виде простого текста. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные комиссии за обработку.
  • Для Amplify используйте ограничение CloudFront.

Для получения информации о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные комиссии за обработку.
  • Для Amplify используйте ограничение CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE - Обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверка метода HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверка тела запроса в формате JSON. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные комиссии за обработку.
  • Для Amplify используйте ограничение CloudFront.

Для получения информации о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Информацию об этом синтаксисе см. в документации Рабочей группы разработки Интернет (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON, с которыми нужно сопоставить с помощью MatchPattern. Если вы укажете ALL, WAF выполняет сопоставление с ключами и значениями.

All не требует, чтобы сопоставление было найдено в ключах, и сопоставление было найдено в значениях. Он требует, чтобы сопоставление было найдено в ключах, или в значениях, или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое AND утверждение для объединения двух правил сопоставления, одного для проверки ключей и другого для проверки значений.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверка тела в виде простого текста. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для недействительного JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные комиссии за обработку.
  • Для Amplify используйте ограничение CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE - Обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Требуется найти соответствие в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого cookie-файлов, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Требуется найти соответствие в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что должен делать WAF, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных так, как они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журналов см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации утверждения сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если в запросе нет отпечатка пальца JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журналов см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации утверждения сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если в запросе нет отпечатка пальца JA4.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide .

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного контента, начиная с самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

SensitivityLevel -> (string)

Чувствительность, которую вы хотите, чтобы WAF использовал для проверки на предмет атак путем внедрения SQL-кода.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Информацию о выявлении и смягчении последствий ложных срабатываний см. в разделе Testing and tuning в WAF Developer Guide .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак путем внедрения SQL-кода или имеют низкую устойчивость к ложным срабатываниям.

По умолчанию: LOW

XssMatchStatement -> (structure)

Заявление правила, которое проверяет атаки межсайтового скриптинга (XSS). При атаках XSS злоумышленник использует уязвимости на безобидном веб-сайте в качестве средства для внедрения вредоносных клиентских скриптов в другие законные веб-браузеры.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью настройки Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL, которая отображается после символа ?, если таковая имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки большого размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами вашего правила и действия веб ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос просит выполнить исходник.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте настройку All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет текстовые преобразования и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

WAF синтаксический анализ не полностью проверяет входную строку JSON, поэтому синтаксический анализ может пройти даже для неверного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе о теле JSON в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение фиксировано на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки большого размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами вашего правила и действия веб ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запросов. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байт) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL, WAF проверит как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое оператор AND для объединения двух правил соответствия: одно для проверки ключей, а другое — для проверки значений.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки негабаритных размеров следующие:

  • CONTINUE — Обычным образом проверьте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файла cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если вы укажете ALL, WAF проверит как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое оператор AND для объединения двух правил соответствия: одно для проверки ключей, а другое — для проверки значений.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или в общей сложности 200 файлов cookie. Базовая служба хоста пересылает в WAF максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Варианты обработки негабаритных размеров следующие:

  • CONTINUE — Обычным образом проверьте доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки негабаритных размеров следующие:

  • CONTINUE — Обычным образом проверьте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие варианты поведения при отказе:

  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие варианты поведения при отказе:

  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — Проверьте тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет поведение при отказе. Дополнительную информацию см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным контентом, начиная с самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF.

SizeConstraintStatement -> (структура)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, например, больше чем (>) или меньше чем (<). Например, вы можете использовать оператор ограничения размера для поиска строк запроса, которые длиннее 100 байт.

Если вы настроите WAF для проверки тела запроса, WAF проверяет только количество байтов в теле до предела для веб-ACL и типа защищенного ресурса. Если вы знаете, что тело запроса для ваших веб-запросов никогда не должно превышать лимит проверки, вы можете использовать оператор ограничения размера, чтобы заблокировать запросы с большим размером тела запроса. Для получения дополнительной информации об ограничениях проверки см. параметры Body и JsonBody для типа данных FieldToMatch.

Если вы выберете URI в качестве значения параметра Часть запроса для фильтрации, косая черта (/) в URI учитывается как один символ. Например, URI /logo.jpg имеет длину девять символов.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

В качестве альтернативы вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как простой текст. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки переразмера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки переразмера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF сопоставляет с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления, одно из которых проверяет ключи, а другое - значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки переразмера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки переразмера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запросов. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Headers , чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого контента заголовка, превышающего размер, в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All , IncludedHeaders или ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из строк, указанных здесь.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL , WAF проверит и ключи, и значения.

All не требует, чтобы совпадение было найдено в ключах, и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать соответствия ключам и значениям, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie, превышающего размер, в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All , IncludedCookies , или ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверять все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из строк, указанных здесь.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL , WAF проверит и ключи, и значения.

All не требует, чтобы совпадение было найдено в ключах, и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать соответствия ключам и значениям, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает в WAF максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

HeaderOrder -> (структура)

Проверить строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве поля для сопоставления компонента при проверке. WAF разделяет имена заголовков в строке двоеточиями и без добавления пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Укажите строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, присваиваемый веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные режимы:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Укажите строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, присваиваемый веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные режимы:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment , чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите эту настройку, WAF анализирует и оценивает контент только до первой ошибки анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может пройти даже для недействительного JSON. Когда анализ выполняется успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

ComparisonOperator -> (строка)

Оператор для использования для сравнения части запроса с настройкой размера.

Размер -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF.

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и который соответствует веб-запросам на основе кода страны. Правило географического соответствия помечает каждый запрос, который оно проверяет, независимо от того, находит ли оно соответствие.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор сам по себе и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes.
  • В противном случае настройте правило географического соответствия с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил соответствия меткам, чтобы они выполнялись после правила географического соответствия, и настройте их на соответствие географическим меткам и обработку запросов по мере необходимости.

WAF помечает запросы, используя двухбуквенные коды страны и региона из международного стандарта ISO 3166 (Международная организация по стандартизации). WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы его укажете, адрес в ForwardedIPConfig географического соответствия.

Если вы используете источник веб-запроса, форматы меток — awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code>.

Если вы используете переадресованный IP-адрес, форматы меток — awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code>.

Для получения дополнительной информации см. раздел Оператор правила географического соответствия в Руководстве разработчика WAF.

CountryCodes -> (list)

Массив двухзначных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ], из двухзначных кодов стран ISO международного стандарта ISO 3166.

Когда вы используете оператор географического соответствия только для меток региона и страны, которые он добавляет к запросам, вам все равно необходимо указать код страны, чтобы правило выполнялось. В этом случае вы настраиваете правило только для подсчета соответствующих запросов, но оно все равно будет генерировать ведение журнала и метрики подсчета для любых совпадений. Вы можете уменьшить ведение журнала и метрики, которые производит правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами HTTP-заголовке вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя HTTP-заголовка для использования IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, присваиваемый веб-запросу, если запрос не содержит допустимого IP-адреса в указанном положении.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правил, используемый для запуска правил, определенных в RuleGroup. Чтобы использовать это, создайте группу правил с вашими правилами, затем укажите ARN группы правил в этом операторе.

Вы не можете вкладывать RuleGroupReferenceStatement , например, для использования внутри NotStatement или OrStatement . Нельзя использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

ARN -> (string)

Имя ресурса Amazon (ARN) сущности.

ExcludedRules -> (list)

Правила в указанной группе правил, для которых действия установлены в Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любое допустимое значение действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любое допустимое значение действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

RuleActionOverrides -> (list)

Настройки действия, которые необходимо использовать вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные показатели количества, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления вашим веб-трафиком группой правил.

(structure)

Настройка действия для использования вместо действия правила, которое настроено внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные показатели количества, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления вашим веб-трафиком группой правил.

Name -> (string)

Имя правила для переопределения.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

ActionToUse -> (structure)

Действие переопределения, которое необходимо использовать вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF блокировать веб-запрос.

CustomResponse -> (structure)

Определяет настраиваемый ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP, который необходимо вернуть клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылки на текст ответа, который WAF должен вернуть клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое настроено на блокировку. Чтобы сделать это, сначала определите ключ и значение текста ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите использовать его. Затем, в действии правила или действии по умолчанию веб-ACL настройка BlockAction , вы ссылаетесь на текст ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка ответа определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Заявление правила, используемое для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который указывает адреса, которые вы хотите обнаружить, а затем используйте ARN этого набора в этом заявлении. Чтобы создать набор IP, см. CreateIPSet.

Каждое заявление правила IPset ссылается на набор IP. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет вам использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Amazon Resource Name (ARN) IPSet, на который ссылается это заявление.

IPSetForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в заголовке HTTP, который вы указываете, вместо использования IP-адреса, который сообщается исходным веб-запросом. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP для использования IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Состояние соответствия, которое необходимо присвоить веб-запросу, если запрос не имеет действительного IP-адреса в указанном положении.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие типы поведения при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

Position -> (string)

Позиция в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные — прокси-серверы, через которые прошел запрос.

Параметры для этой настройки следующие:

  • FIRST - Проверьте первый IP-адрес в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST - Проверьте последний IP-адрес в списке IP-адресов в заголовке.
  • ANY - Проверьте все IP-адреса в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (structure)

Оператор правила, используемый для поиска соответствий в компонентах веб-запроса с помощью регулярных выражений. Чтобы использовать это, создайте RegexPatternSet, который указывает выражения, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Веб-запрос соответствует оператору правила набора шаблонов, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов регулярных выражений, см. CreateRegexPatternSet.

Каждый оператор правила набора шаблонов регулярных выражений ссылается на набор шаблонов регулярных выражений. Вы создаете и поддерживаете набор независимо от своих правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Имя ресурса Amazon (ARN) RegexPatternSet, на которое ссылается этот оператор.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите проверить с помощью WAF.

SingleHeader -> (structure)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете отфильтровать и проверить все заголовки с помощью параметра Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody .

MatchPattern -> (structure)

Шаблоны, которые нужно искать в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Соответствовать всем элементам. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Соответствовать только указанным путям включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации Рабочей группы разработки Интернет (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL , WAF сопоставляет с ключами и значениями.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логический оператор AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда анализ успешен, WAF не применяет поведение отката. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Вы должны настроить область действия и фильтры сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой хост-службой. Вы должны настроить обработку любого негабаритного содержимого заголовка в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой хост-службы.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать совпадение в ключах и в значениях, используйте логическое AND утверждение для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая хост-служба пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного содержимого следующие:

  • CONTINUE - Проверяйте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

Cookies -> (структура)

Проверить файлы cookie запроса. Вы должны настроить область действия и фильтры сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой хост-службой. Вы должны настроить обработку любого негабаритного содержимого файлов cookie в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой хост-службы.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно одну настройку: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать совпадение в ключах и в значениях, используйте логическое AND утверждение для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая хост-служба пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки негабаритного содержимого следующие:

  • CONTINUE - Проверяйте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая хост-служба пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного содержимого следующие:

  • CONTINUE - Проверяйте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Для получения информации о полях ведения журнала см. Log fields в руководстве WAF Developer Guide .

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Вы можете указать следующие резервные режимы:

  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Для получения информации о полях ведения журнала см. Log fields в руководстве WAF Developer Guide .

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Вы можете указать следующие резервные режимы:

  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Вы должны настроить область действия и фильтры сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой хост-службой. Вы должны настроить обработку любого негабаритного содержимого фрагмента URI в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой хост-службы.

FallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body в руководстве WAF Developer Guide .

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробное описание каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

RateBasedStatement -> (structure)

Правило на основе частоты подсчитывает входящие запросы и ограничивает их частоту, если они поступают слишком быстро. Правило классифицирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования, а также подсчитывает и ограничивает частоту запросов для каждого экземпляра.

Примечание

Если изменить какие-либо из этих настроек в используемом правиле, изменение сбрасывает счетчики ограничения частоты правила. Это может приостановить действия правила по ограничению частоты на срок до минуты.

Можно указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Также можно указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie-файл.

Каждый уникальный набор значений для указанных ключей агрегирования является отдельным экземпляром агрегирования, при этом значение из каждого ключа участвует в определении экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило будет создавать разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1: количество 3
    • IP-адрес 127.0.0.0: количество 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • Метод HTTP POST: количество 2
    • Метод HTTP GET: количество 2
  • Если критерием агрегирования является IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут участвовать в объединенном экземпляре агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1, метод HTTP POST: количество 1
    • IP-адрес 10.1.1.1, метод HTTP GET: количество 2
    • IP-адрес 127.0.0.0, метод HTTP POST: количество 1

Для любой n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по частоте по отдельности.

При желании можно вложить другое выражение внутрь выражения на основе частоты, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало частоту только тех запросов, которые соответствуют вложенному выражению. Это вложенное выражение для сужения области действия можно использовать в сочетании со спецификациями ключа агрегирования или просто подсчитывать и ограничивать частоту всех запросов, которые соответствуют выражению для сужения области действия, без дополнительного агрегирования. Если вы решите просто управлять всеми запросами, которые соответствуют выражению для сужения области действия, экземпляр агрегирования является единственным для правила.

Нельзя вложить RateBasedStatement в другое выражение, например, внутри NotStatement или OrStatement. Можно определить RateBasedStatement внутри веб-ACL и внутри группы правил.

Дополнительную информацию об этих параметрах см. в разделе Ограничение частоты веб-запросов с помощью правил на основе частоты в Руководстве разработчика WAF.

Если вы агрегируете только по отдельному IP-адресу или перенаправленному IP-адресу, вы можете получить список IP-адресов, частота которых в настоящее время ограничивается WAF для правила, с помощью вызова API GetRateBasedStatementManagedKeys. Этот параметр недоступен для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе частоты, которое вы используете. Например, если вы предоставите одни и те же настройки правила на основе частоты в двух веб-ACL, каждое из двух выражений правила представляет собой отдельный экземпляр правила на основе частоты и получает собственное отслеживание и управление со стороны WAF. Если вы определите правило на основе частоты внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе частоты, который получает собственное отслеживание и управление со стороны WAF.

Limit -> (long)

Ограничение на запросы во время указанного окна оценки для одного экземпляра агрегирования для правила на основе частоты. Если выражение на основе частоты включает в себя ScopeDownStatement, это ограничение применяется только к запросам, которые соответствуют выражению.

Примеры:

  • Если вы агрегируете только по IP-адресу, это ограничение на запросы с любого одного IP-адреса.
  • Если вы агрегируете по методу HTTP и имени аргумента запроса «city», то это ограничение на запросы для любой одной пары метод, город.

EvaluationWindowSec -> (long)

Промежуток времени в секундах, который WAF должен включать в подсчет запросов, оглядываясь назад от текущего времени. Например, при настройке 120, когда WAF проверяет частоту, он подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет частоту, а определяет, как далеко назад он смотрит каждый раз, когда проверяет. WAF проверяет частоту примерно каждые 10 секунд.

По умолчанию: 300 (5 минут)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правилом на основе частоты.
  • CONSTANT — Подсчитывайте и ограничивайте запросы, которые соответствуют выражению для сужения области действия правила на основе частоты. При использовании этого параметра подсчитываемые запросы не агрегируются далее. Выражение для сужения области действия — единственная используемая спецификация. Когда количество всех запросов, удовлетворяющих выражению для сужения области действия, превышает лимит, WAF применяет действие правила ко всем запросам, которые удовлетворяют выражению для сужения области действия. При использовании этого параметра необходимо настроить свойство ScopeDownStatement.
  • CUSTOM_KEYS — Агрегируйте количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. При использовании этого параметра необходимо указать ключи агрегирования в свойстве CustomKeys. Чтобы агрегировать только по IP-адресу или только по перенаправленному IP-адресу, не используйте пользовательские ключи. Вместо этого установите тип ключа агрегирования в IP или FORWARDED_IP.
  • FORWARDED_IP — Агрегируйте количество запросов по первому IP-адресу в заголовке HTTP. При использовании этого параметра необходимо указать заголовок для использования в свойстве ForwardedIPConfig. Чтобы агрегировать по комбинации перенаправленного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS.
  • IP — Агрегируйте количество запросов по IP-адресу из источника веб-запроса. Чтобы агрегировать по комбинации IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS.

ScopeDownStatement -> (structure)

Необязательное вложенное выражение, которое сужает область действия веб-запросов, которые оцениваются и управляются выражением на основе частоты. При использовании выражения для сужения области действия правило на основе частоты отслеживает и ограничивает частоту только запросов, которые соответствуют выражению для сужения области действия. Можно использовать любое вкладываемое выражение в выражении для сужения области действия, и можно вкладывать выражения на любом уровне, так же, как и для выражения правила.

ByteMatchStatement -> (structure)

Выражение правила, которое определяет поиск соответствия строки, который WAF должен применить к веб-запросам. Выражение соответствия байта предоставляет байты для поиска, местоположение в запросах, которое WAF должен искать, и другие настройки. Байты для поиска обычно представляют собой строку, которая соответствует символам ASCII. В консоли WAF и руководстве разработчика это называется выражением соответствия строк.

SearchString -> (blob)

Значение строки, которое WAF должен искать. WAF выполняет поиск только в той части веб-запросов, которую вы указываете для проверки в FieldToMatch. Максимальная длина значения — 200 байт.

Допустимые значения зависят от компонента, который вы указываете для проверки в FieldToMatch:

  • Method: метод HTTP, который WAF должен искать. Это указывает тип операции, указанной в запросе.
  • UriPath: значение, которое WAF должен искать в пути URI, например, /images/daily-ad.jpg.
  • JA3Fingerprint: доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancer. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. Этот выбор можно использовать только с соответствием строк ByteMatchStatement с параметром PositionalConstraint, установленным в EXACTLY. Отпечаток JA3 для запросов клиентов можно получить из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе Поля журнала в Руководстве разработчика WAF.
  • HeaderOrder: список имен заголовков для сопоставления. WAF создает строку, содержащую упорядоченный список имен заголовков из заголовков в веб-запросе, а затем выполняет сопоставление с этой строкой.

Если SearchString включает буквенные символы A-Z и a-z, обратите внимание, что значение учитывает регистр.

Если вы используете API WAF

Укажите версию значения с кодировкой base64. Максимальная длина значения перед кодированием base64 составляет 200 байт.

Например, предположим, что значение Type — HEADER, а значение Data — User-Agent. Если вы хотите выполнить поиск в заголовке User-Agent значения BadBot, вы выполняете кодирование base64 BadBot с использованием кодировки base64 MIME и включаете полученное значение, QmFkQm90, в значение SearchString.

Если вы используете CLI или один из пакетов SDK Amazon Web Services

Значение, которое WAF должен искать. Пакет SDK автоматически кодирует значение в base64.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверьте все аргументы запроса.

UriPath -> (структура)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg .

QueryString -> (структура)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (структура)

Проверьте тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело запроса больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие варианты обработки большого размера:

  • CONTINUE - Проверьте доступное содержимое тела запроса в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки большого размера с настройками вашего правила и действий веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверьте тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих совпадений шаблонов с критериями проверки правила.

All -> (structure)

Совпадение со всеми элементами. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Совпадение только с указанными путями включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием параметра MatchPattern . Если вы укажете параметр ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или в значениях, или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому разбор может быть успешным даже для недопустимого JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. Тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело запроса больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие варианты обработки большого размера:

  • CONTINUE - Проверьте доступное содержимое тела запроса в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки большого размера с настройками вашего правила и действий веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовков большего размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или и в том, и в другом. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF не более 200 заголовков и не более 8 КБ содержимого заголовков.

Параметры обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (структура)

Проверить файлы cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверить только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверить только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или и в том, и в другом. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что должен делать WAF, если файлы cookie запроса более многочисленны или больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает в WAF не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Параметры обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонентов в своей проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF не более 200 заголовков и не более 8 КБ содержимого заголовков.

Параметры обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе Поля журналов в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации вашего оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если в запросе нет отпечатка JA3.

Можно указать следующие резервные параметры:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе Поля журналов в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации вашего оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если в запросе нет отпечатка JA4.

Можно указать следующие резервные параметры:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (структура)

Проверить фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если не удается полностью разобрать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для неверного JSON. Если синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе Тело JSON в Руководстве разработчика WAF.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного контента, начиная с самой низкой настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробное описание каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

PositionalConstraint -> (string)

Область в части веб-запроса, в которой вы хотите, чтобы WAF искал SearchString . Допустимые значения включают следующие:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString , но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString , и SearchString должен содержать только буквенно-цифровые символы или символ подчеркивания (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что оба следующих утверждения верны:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_). Примеры включают значение заголовка и ;BadBot .
  • SearchString находится в конце указанной части веб-запроса или за ним следует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_), например, BadBot; и -BadBot; .
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString .

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (structure)

Инструкция по правилу, проверяющая вредоносный код SQL. Злоумышленники вставляют вредоносный код SQL в веб-запросы, чтобы выполнять такие действия, как изменение вашей базы данных или извлечение данных из нее.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверьте все аргументы запроса.

UriPath -> (структура)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверьте тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения об обработке тел запросов больших размеров см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки переразмеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела обычным образом в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки переразмеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (структура)

Проверьте тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения об обработке тел запросов больших размеров см. в конфигурации объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (структура)

Сопоставьте все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставляйте только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое утверждение AND для объединения двух правил соответствия: одно для проверки ключей, а другое для проверки значений.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ завершен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки переразмеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела обычным образом в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий утверждению правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки переразмеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка большого размера в объекте Headers. WAF применяет фильтры соответствия шаблону к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Он требует нахождения соответствия в ключах или в значениях, или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила соответствия: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файла cookie большого размера в объекте Cookies. WAF применяет фильтры соответствия шаблону к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Он требует нахождения соответствия в ключах или в значениях, или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила соответствия: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента поля для соответствия в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия, и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 представляет собой 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные поведения:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 представляет собой 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные поведения:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры соответствия шаблону к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недействительного JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед использованием их в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного контента, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

SensitivityLevel -> (строка)

Уровень чувствительности, который вы хотите, чтобы WAF использовал для проверки на атаки путем внедрения SQL-кода.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Для получения информации об определении и смягчении последствий ложных срабатываний см. раздел Тестирование и настройка в Руководстве разработчика WAF .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак путем внедрения SQL-кода или которые имеют низкую толерантность к ложным срабатываниям.

По умолчанию: LOW

XssMatchStatement -> (структура)

Инструкция правила, которое проверяет наличие атак типа межсайтового скриптинга (XSS). Во время XSS-атак злоумышленник использует уязвимости на безобидном веб-сайте как средство внедрения вредоносных клиентских скриптов в другие легитимные веб-браузеры.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (структура)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверить тело запроса как простой текст. Тело запроса следует сразу после заголовков запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать большие тела запросов, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — Проверить доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — Рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу после заголовков запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать большие тела запросов, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Соответствовать только указанным путям включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF сопоставляет с ключами и значениями.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется соответствие в ключах или значениях, или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING — Проверить тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — Рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий инструкции правила.

Если вы не укажете этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет поведение отката. Для получения дополнительной информации см. раздел «Тело JSON» в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — Проверить доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — Рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — Рассматривать веб-запрос как не соответствующий инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запросов. Необходимо настроить фильтры сопоставления области действия и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого заголовка большого размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для определения подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет и ключи, и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое оператор AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF следует сделать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки большого размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого файлов cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверьте все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет и ключи, и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое оператор AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF следует сделать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки большого размера следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента соответствия полей в своей проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF следует сделать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки большого размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, назначаемый веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные режимы:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, назначаемый веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные режимы:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области действия и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому разбор может быть успешным даже для недействительного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительную информацию см. в разделе JSON body в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF.

SizeConstraintStatement -> (структура)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, например, больше чем (>) или меньше чем (<). Например, вы можете использовать оператор ограничения размера для поиска строк запроса, длина которых превышает 100 байт.

Если вы настроите WAF для проверки тела запроса, WAF проверяет только количество байтов в теле до лимита для веб-ACL и типа защищенного ресурса. Если вы знаете, что тело запроса для ваших веб-запросов никогда не должно превышать лимит проверки, вы можете использовать оператор ограничения размера для блокировки запросов с большим размером тела запроса. Для получения дополнительной информации о лимитах проверки см. Body и JsonBody настройки для FieldToMatch типа данных.

Если вы выберете URI для значения Части запроса для фильтрации, косая черта (/) в URI будет считаться одним символом. Например, URI /logo.jpg имеет длину девять символов.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Эта настройка не чувствительна к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью настройки Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может быть длиной до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверить тело запроса как простой текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать негабаритные тела запросов, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки негабаритных размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки негабаритных размеров с настройками действия вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверить HTTP-метод. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (структура)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать негабаритные тела запросов, см. конфигурацию объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правил.

All -> (структура)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо эту настройку, либо настройку IncludedPaths, но не обе сразу.

IncludedPaths -> (list)

Соответствует только указанным путям включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо эту настройку, либо настройку All, но не обе сразу.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте настройку All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах или значениях или в обоих. Чтобы требовать соответствие в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите эту настройку, WAF выполняет синтаксический анализ и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

WAF синтаксического анализа не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки негабаритных размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки негабаритных размеров с настройками действия вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте Headers , чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка, превышающего размер, в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All , IncludedHeaders , либо ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL , WAF проверит как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах или значениях, или и в том, и в другом. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил соответствия: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie, превышающего размер, в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All , IncludedCookies , либо ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если вы укажете ALL , WAF проверит как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах или значениях, или и в том, и в другом. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил соответствия: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том виде, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для соответствия компоненту в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавления пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (string)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 представляет собой 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Укажите строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, присваиваемый веб-запросу, если в запросе нет отпечатка пальца JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 представляет собой 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Укажите строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, присваиваемый веб-запросу, если в запросе нет отпечатка пальца JA4.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте UriFragment , чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF синтаксический анализ не полностью проверяет входную строку JSON, поэтому синтаксический анализ может пройти даже для недействительного JSON. Когда синтаксический анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. раздел «Тело JSON» в Руководстве разработчика WAF .

ComparisonOperator -> (string)

Оператор для сравнения части запроса с настройкой размера.

Size -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам, чтобы преобразовать компонент запроса FieldToMatch перед его проверкой, и они используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробное описание каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и который сопоставляет веб-запросы на основе кода страны. Правило геосоответствия помечает каждый проверяемый запрос независимо от того, находит ли оно соответствие.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор отдельно и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes .
  • В противном случае настройте свое правило геосоответствия с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил соответствия меткам, чтобы запустить их после правила геосоответствия, и настройте их для соответствия географическим меткам и обработки запросов по мере необходимости.

WAF помечает запросы, используя двухбуквенные коды страны и региона из международного стандарта ISO 3166 Международной организации по стандартизации (ISO). WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы его укажете, адрес в геосоответствии ForwardedIPConfig .

Если вы используете источник веб-запроса, форматы меток — awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code> .

Если вы используете переадресованный IP-адрес, форматы меток — awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code> .

Дополнительные сведения см. в разделе Оператор правила географического соответствия в Руководстве разработчика WAF .

CountryCodes -> (list)

Массив двухбуквенных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ] , из кодов стран ISO alpha-2 международного стандарта ISO 3166.

Когда вы используете оператор геосоответствия только для меток региона и страны, которые он добавляет к запросам, вам все равно придется предоставить код страны для оценки правила. В этом случае вы настраиваете правило так, чтобы оно подсчитывало только соответствующие запросы, но оно по-прежнему будет создавать журналы и подсчитывать показатели для любых совпадений. Вы можете уменьшить ведение журналов и показатели, которые создает правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP для использования для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если в запросе нет допустимого IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в RuleGroup. Чтобы использовать это, создайте группу правил с вашими правилами, а затем укажите ARN группы правил в этом операторе.

Вы не можете вложить RuleGroupReferenceStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

ARN -> (string)

Amazon Resource Name (ARN) сущности.

ExcludedRules -> (list)

Правила в ссылаемой группе правил, действия которых установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любые допустимые настройки действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любые допустимые настройки действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

RuleActionOverrides -> (list)

Настройки действия, которые будут использоваться вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

(structure)

Настройка действия, используемая вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

Name -> (string)

Имя правила для переопределения.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure)

Действие переопределения, которое будет использоваться вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет настраиваемый ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в ваших настраиваемых ответах, см. в разделе Поддерживаемые коды состояния для настраиваемого ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Указывает на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить настраиваемый ответ для действия правила или действия веб-ACL по умолчанию, которое настроено на блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии по умолчанию веб-ACL настройке BlockAction , вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP, которые следует использовать в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA против веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge против веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер настроек пользовательских запросов и ответов см. Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Заявление о правиле, используемое для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который указывает адреса, которые вы хотите обнаружить, затем используйте ARN этого набора в этом заявлении. Чтобы создать IP-набор, см. CreateIPSet.

Каждое заявление о правиле набора IP ссылается на IP-набор. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет вам использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (строка)

Имя ресурса Amazon (ARN) набора IP, на который ссылается это заявление.

IPSetForwardedIPConfig -> (структура)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, а не использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (строка)

Имя заголовка HTTP, используемого для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение равным X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (строка)

Статус соответствия, который нужно присвоить веб-запросу, если запрос не имеет действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Обрабатывать веб-запрос как соответствующий заявлению о правиле. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий заявлению о правиле.

Position -> (строка)

Положение в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные идентифицируют прокси-серверы, через которые прошел запрос.

Параметры для этого параметра следующие:

  • FIRST — Проверить первый IP-адрес в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST — Проверить последний IP-адрес в списке IP-адресов в заголовке.
  • ANY — Проверить все IP-адреса в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (структура)

Оператор правила, используемый для поиска соответствий в компонентах веб-запросов с использованием регулярных выражений. Чтобы использовать его, создайте RegexPatternSet, который указывает выражения, которые вы хотите обнаружить, а затем используйте ARN этого набора в этом операторе. Веб-запрос соответствует оператору правила набора шаблонов регулярных выражений, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов регулярных выражений, см. CreateRegexPatternSet .

Каждый оператор правила набора шаблонов регулярных выражений ссылается на набор шаблонов регулярных выражений. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Имя ресурса Amazon (ARN) набора RegexPatternSet, на который ссылается этот оператор.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите проверить с помощью WAF.

SingleHeader -> (structure)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью настройки Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверка всех аргументов запроса.

UriPath -> (structure)

Проверка пути URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверка тела запроса в виде обычного текста. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверка метода HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверка тела запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Соответствовать всем элементам. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON, с которыми нужно сопоставить, используя MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах или значениях, или в обоих случаях. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверка тела в виде обычного текста. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества заголовков, которые необходимо проверить в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Для этого требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF следует делать, если заголовки запроса больше или многочисленнее, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файла cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества файлов cookie, которые необходимо проверить в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверять все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Для этого требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF следует делать, если файлов cookie запроса больше или многочисленнее, чем может проверить WAF. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонентов при проверке. WAF разделяет имена заголовков в строке с помощью двоеточий без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF следует делать, если заголовки запроса больше или многочисленнее, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток пальца JA3 запроса. Отпечаток пальца JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF .

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные режимы:

  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток пальца JA4 запроса. Отпечаток пальца JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF .

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные режимы:

  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует заявлению правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе Тело JSON в Руководстве разработчика WAF .

TextTransformations -> (list)

Преобразования текста исключают некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста исключают некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations (Преобразования текста) в WAF Developer Guide (Руководство разработчика WAF) .

RateBasedStatement -> (structure)

Правило на основе скорости подсчитывает входящие запросы и ограничивает скорость запросов, когда они поступают слишком быстро. Правило классифицирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования, а также подсчитывает и ограничивает скорость запросов для каждого экземпляра.

Примечание

Если вы измените какие-либо из этих настроек в используемом в настоящее время правиле, изменение сбрасывает счетчики ограничения скорости правила. Это может приостановить деятельность по ограничению скорости правила на срок до одной минуты.

Вы можете указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Вы также можете указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie.

Каждый уникальный набор значений для указанных вами ключей агрегирования является отдельным экземпляром агрегирования, при этом значение каждого ключа способствует определению экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило создаст разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1: количество 3
    • IP-адрес 127.0.0.0: количество 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • Метод HTTP POST: количество 2
    • Метод HTTP GET: количество 2
  • Если критерием агрегирования является IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут вносить вклад в комбинированный экземпляр агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1, метод HTTP POST: количество 1
    • IP-адрес 10.1.1.1, метод HTTP GET: количество 2
    • IP-адрес 127.0.0.0, метод HTTP POST: количество 1

Для любого n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по скорости индивидуально.

При необходимости вы можете вложить другой оператор внутри оператора на основе скорости, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало скорость только тех запросов, которые соответствуют вложенному оператору. Вы можете использовать этот вложенный оператор сужения области действия в сочетании со спецификациями ключей агрегирования или просто подсчитывать и ограничивать скорость всех запросов, которые соответствуют оператору сужения области действия, без дополнительного агрегирования. Если вы решите просто управлять всеми запросами, которые соответствуют оператору сужения области действия, экземпляр агрегирования является единственным для правила.

Нельзя вложить RateBasedStatement внутри другого оператора, например, внутри NotStatement или OrStatement . Вы можете определить RateBasedStatement внутри веб-ACL и внутри группы правил.

Дополнительные сведения об опциях см. в разделе Rate limiting web requests using rate-based rules (Ограничение скорости веб-запросов с помощью правил на основе скорости) в WAF Developer Guide (Руководство разработчика WAF) .

Если вы агрегируете только по отдельному IP-адресу или перенаправленному IP-адресу, вы можете получить список IP-адресов, скорость которых WAF в настоящее время ограничивает для правила, с помощью вызова API GetRateBasedStatementManagedKeys . Эта опция недоступна для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе скорости, которое вы используете. Например, если вы предоставите одни и те же параметры правила на основе скорости в двух веб-ACL, каждый из двух операторов правил представляет отдельный экземпляр правила на основе скорости и получает собственное отслеживание и управление от WAF. Если вы определяете правило на основе скорости внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе скорости, который получает собственное отслеживание и управление от WAF.

Limit -> (long)

Лимит запросов в течение указанного окна оценки для одного экземпляра агрегирования для правила на основе скорости. Если оператор на основе скорости включает ScopeDownStatement , этот лимит применяется только к запросам, соответствующим оператору.

Примеры:

  • Если вы агрегируете только по IP-адресу, это ограничение на запросы с любого отдельного IP-адреса.
  • Если вы агрегируете по методу HTTP и имени аргумента запроса "city", то это ограничение на запросы для любой отдельной пары метод-город.

EvaluationWindowSec -> (long)

Количество времени в секундах, которое WAF должен включать в свои подсчеты запросов, заглядывая назад с текущего момента времени. Например, для настройки 120, когда WAF проверяет скорость, он подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет скорость, а определяет, как далеко назад он смотрит каждый раз, когда проверяет. WAF проверяет скорость примерно каждые 10 секунд.

По умолчанию: 300 (5 minutes)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо из компонентов, указанных в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.
  • CONSTANT - Подсчитывать и ограничивать запросы, которые соответствуют оператору сужения области действия правила на основе скорости. С помощью этой опции подсчитываемые запросы не агрегируются далее. Оператор сужения области действия является единственной используемой спецификацией. Когда количество всех запросов, удовлетворяющих оператору сужения области действия, превышает лимит, WAF применяет действие правила ко всем запросам, которые удовлетворяют оператору сужения области действия. С этой опцией необходимо настроить свойство ScopeDownStatement .
  • CUSTOM_KEYS - Агрегировать количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. С помощью этой опции необходимо указать ключи агрегирования в свойстве CustomKeys . Чтобы агрегировать только по IP-адресу или только по перенаправленному IP-адресу, не используйте пользовательские ключи. Вместо этого установите тип ключа агрегирования в IP или FORWARDED_IP .
  • FORWARDED_IP - Агрегировать количество запросов по первому IP-адресу в заголовке HTTP. С помощью этой опции необходимо указать заголовок для использования в свойстве ForwardedIPConfig . Чтобы агрегировать комбинацию перенаправленного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .
  • IP - Агрегировать количество запросов по IP-адресу из источника веб-запроса. Чтобы агрегировать комбинацию IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .

( … recursive … )ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это необходимо, если вы указываете перенаправленный IP-адрес в настройках ключа агрегирования правила.

HeaderName -> (string)

Имя заголовка HTTP для использования для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите его значение в X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия для присвоения веб-запросу, если запрос не содержит допустимого IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отмене:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

CustomKeys -> (list)

Указывает агрегатные ключи для использования в правиле на основе скорости.

(структура)

Указывает один настраиваемый агрегатный ключ для правила на основе скорости.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.

Заголовок -> (структура)

Используйте значение заголовка в запросе в качестве агрегатного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегирования. Если вы используете один заголовок в качестве настраиваемого ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя заголовка для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в Руководстве разработчика WAF .

Cookie -> (структура)

Используйте значение cookie в запросе в качестве агрегатного ключа. Каждое отдельное значение в cookie вносит вклад в экземпляр агрегирования. Если вы используете один cookie в качестве настраиваемого ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя cookie для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в Руководстве разработчика WAF .

QueryArgument -> (структура)

Используйте указанный аргумент запроса в качестве агрегатного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегирования. Если вы используете один аргумент запроса в качестве настраиваемого ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя аргумента запроса для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в Руководстве разработчика WAF .

QueryString -> (структура)

Используйте строку запроса запроса в качестве агрегатного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегирования. Если вы используете только строку запроса в качестве настраиваемого ключа, то каждая строка полностью определяет экземпляр агрегирования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в Руководстве разработчика WAF .

HTTPMethod -> (структура)

Используйте метод HTTP запроса в качестве агрегатного ключа. Каждый отдельный метод HTTP вносит вклад в экземпляр агрегирования. Если вы используете только метод HTTP в качестве настраиваемого ключа, то каждый метод полностью определяет экземпляр агрегирования.

ForwardedIP -> (структура)

Используйте первый IP-адрес в заголовке HTTP в качестве агрегатного ключа. Каждый отдельный переадресованный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или переадресованного IP-адреса в параметрах настраиваемого ключа необходимо также указать как минимум один другой ключ для использования. Вы можете агрегировать только по переадресованному IP-адресу, указав FORWARDED_IP в AggregateKeyType вашего оператора на основе скорости.

С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig правила на основе скорости.

IP -> (структура)

Используйте исходный IP-адрес запроса в качестве агрегатного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или переадресованного IP-адреса в параметрах настраиваемого ключа необходимо также указать как минимум один другой ключ для использования. Вы можете агрегировать только по IP-адресу, указав IP в AggregateKeyType вашего оператора на основе скорости.

LabelNamespace -> (структура)

Используйте указанное пространство имен меток в качестве агрегатного ключа. Каждое отдельное полное имя метки, имеющее указанное пространство имен меток, вносит вклад в экземпляр агрегирования. Если вы используете только одно пространство имен меток в качестве настраиваемого ключа, то каждое имя метки полностью определяет экземпляр агрегирования.

Это использует только метки, которые были добавлены к запросу правилами, которые оцениваются перед этим правилом на основе скорости в веб-ACL.

Информацию о пространствах имен и именах меток см. в разделе Синтаксис меток и требования к именованию в Руководстве разработчика WAF .

Пространство имен -> (строка)

Пространство имен для использования для агрегирования.

UriPath -> (структура)

Используйте путь URI запроса в качестве агрегатного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегирования. Если вы используете только путь URI в качестве настраиваемого ключа, то каждый путь URI полностью определяет экземпляр агрегирования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в Руководстве разработчика WAF .

JA3Fingerprint -> (структура)

Используйте отпечаток JA3 запроса в качестве агрегатного ключа. Если вы используете один отпечаток JA3 в качестве настраиваемого ключа, то каждое значение полностью определяет экземпляр агрегирования.

FallbackBehavior -> (строка)

Статус соответствия для присвоения веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA3.

Можно указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Использовать отпечаток пальца JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток пальца JA4 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка пальца JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

AndStatement -> (structure)

Логическое утверждение правила, используемое для объединения других утверждений правила с логикой AND. Вы предоставляете более одного Statement в пределах AndStatement .

Statements -> (list)

Утверждения для объединения с логикой AND. Вы можете использовать любые утверждения, которые могут быть вложены.

( … recursive … )

OrStatement -> (structure)

Логическое утверждение правила, используемое для объединения других утверждений правила с логикой OR. Вы предоставляете более одного Statement в пределах OrStatement .

Statements -> (list)

Утверждения для объединения с логикой OR. Вы можете использовать любые утверждения, которые могут быть вложены.

( … recursive … )

NotStatement -> (structure)

Логическое утверждение правила, используемое для отрицания результатов другого утверждения правила. Вы предоставляете одно Statement в пределах NotStatement .

( … recursive … )

ManagedRuleGroupStatement -> (structure)

Утверждение правила, используемое для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом утверждении. Вы можете получить необходимые имена, вызвав ListAvailableManagedRuleGroups .

Вы не можете вкладывать ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Нельзя использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на утверждение верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control account takeover prevention (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control account creation fraud prevention (ACFP) AWSManagedRulesACFPRuleSet . Для получения дополнительной информации см. WAF Pricing .

VendorName -> (string)

Имя поставщика управляемой группы правил. Вы используете это вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Вы используете это вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия используемой управляемой группы правил. Если вы укажете это, настройка версии будет зафиксирована до тех пор, пока вы ее не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика, когда поставщик обновляет настройки управляемой группы правил.

ExcludedRules -> (list)

Правила в ссылающейся группе правил, действия которых установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

( … recursive … )ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил этого не требуют.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает в себя страницы регистрации и регистрации вашего приложения, а также места в полезной нагрузке запроса на создание учетной записи данных, таких как поля адреса электронной почты пользователя и номера телефона.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает в себя страницу входа в ваше приложение и места в полезной нагрузке запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

(structure)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил этого не требуют.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает в себя страницы регистрации и регистрации вашего приложения, а также места в полезной нагрузке запроса на создание учетной записи данных, таких как поля адреса электронной почты пользователя и номера телефона.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает в себя страницу входа в ваше приложение и места в полезной нагрузке запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

Например, спецификации см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация имени пользователя - /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 , спецификация имени пользователя - username1

PasswordField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация пароля - /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 , спецификация пароля - password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил Bot Control. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Для получения информации об использовании управляемой группы правил Bot Control см. WAF Bot Control rule group и WAF Bot Control в WAF Developer Guide .

InspectionLevel -> (string)

Уровень проверки для использования в группе правил Bot Control. Общий уровень является наименее затратным. Целевой уровень включает в себя все правила общего уровня и добавляет правила с более продвинутыми критериями проверки. Подробности см. в WAF Bot Control rule group в WAF Developer Guide .

EnableMachineLearning -> (boolean)

Применимо только к целевому уровню проверки.

Определяет, следует ли использовать машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение требуется для правил Bot Control TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют наличие аномального поведения, которое может указывать на распределенную, скоординированную активность ботов.

Для получения дополнительной информации об этом выборе см. список этих правил в таблице в разделе Bot Control rules listing в WAF Developer Guide .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетной записи (ATP), AWSManagedRulesATPRuleSet . Используйте это для предоставления информации о запросах на вход в систему для группы правил. Для web ACL, которые защищают дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на вход в систему.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. WAF Fraud Control account takeover prevention (ATP) rule group и WAF Fraud Control account takeover prevention (ATP) в WAF Developer Guide .

LoginPath -> (string)

Путь к конечной точке входа в систему вашего приложения. Например, для URL https://example.com/web/login , вы предоставите путь /web/login . Пути входа в систему, которые начинаются с предоставленного вами пути, считаются совпадением. Например, /web/login соответствует путям входа /web/login , /web/login/ , /web/loginPage и /web/login/thisPage , но не соответствует пути входа /home/web/login или /website/login .

Группа правил проверяет только HTTP POST запросы к указанной конечной точке входа в систему.

RequestInspection -> (structure)

Критерии для проверки запросов на вход в систему, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки входа в систему: JSON или форма с кодировкой.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

Identifier -> (string)

Название поля имени пользователя.

Как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

PasswordField -> (structure)

Название поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 , спецификация поля пароля — password1 .

Identifier -> (string)

Название поля пароля.

Как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 , спецификация поля пароля — password1 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы на вход в систему, используемые группой правил ATP для отслеживания частоты сбоев входа в систему.

Примечание

Проверка ответа доступна только в web ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках входа в систему клиентом, ведя подсчет успешных и неудачных попыток для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от сеансов клиентов и IP-адресов, которые имели слишком много неудачных попыток входа в систему за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

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

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Имя заголовка для сопоставления. Имя должно быть точным соответствием, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, указывающие на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешной, строка может быть в любом месте тела и должна быть точным соответствием, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, указывающие на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, строка может быть в любом месте тела и должна быть точным соответствием, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор для сопоставления со значением в JSON. Идентификатор должен быть точным соответствием, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, указывающие на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, указывающие на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути к странице входа в систему.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетной записи (ACFP), AWSManagedRulesACFPRuleSet . Используйте это, чтобы предоставить информацию о запросе на создание учетной записи группе правил. Для веб-ACL, которые защищают дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. группу правил предотвращения мошенничества при создании учетной записи WAF Fraud Control (ACFP) и предотвращение мошенничества при создании учетной записи WAF Fraud Control (ACFP) в Руководстве разработчика WAF .

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая принимает заполненную форму регистрации нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL https://example.com/web/newaccount , вы предоставите путь /web/newaccount . Пути к страницам создания учетных записей, которые начинаются с предоставленного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетных записей /web/newaccount , /web/newaccount/ , /web/newaccountPage и /web/newaccount/thisPage , но не соответствует пути /home/web/newaccount или /website/newaccount .

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница на вашем веб-сайте, на которой новым пользователям представлена форма регистрации.

Примечание

Эта страница должна принимать GET text/html запросы.

Например, для URL https://example.com/web/registration , вы предоставите путь /web/registration . Пути к страницам регистрации, которые начинаются с предоставленного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration , /web/registration/ , /web/registrationPage и /web/registration/thisPage , но не соответствует пути /home/web/registration или /website/registration .

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезных данных для вашей конечной точки создания учетной записи: JSON или с кодировкой формы.

UsernameField -> (structure)

Имя поля в полезных данных запроса, содержащего имя пользователя вашего клиента.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

Identifier -> (string)

Имя поля имени пользователя.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

PasswordField -> (structure)

Имя поля в полезных данных запроса, содержащего пароль вашего клиента.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 , спецификация поля пароля — password1 .

Identifier -> (string)

Имя поля пароля.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 , спецификация поля пароля — password1 .

EmailField -> (structure)

Имя поля в полезных данных запроса, содержащего электронную почту вашего клиента.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты — /form/email .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем email1 , спецификация поля электронной почты — email1 .

Identifier -> (string)

Имя поля электронной почты.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты — /form/email .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем email1 , спецификация поля электронной почты — email1 .

PhoneNumberFields -> (list)

Имена полей в полезных данных запроса, содержащих основной номер телефона вашего клиента.

Упорядочите поля номера телефона в массиве именно в том порядке, в котором они упорядочены в полезных данных запроса.

Способ указания полей номера телефона зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона — /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона — primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

(structure)

Имя поля в полезных данных запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя отдельного поля основного номера телефона.

Способ указания полей номера телефона зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона — /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона — primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

AddressFields -> (list)

Имена полей в полезных данных запроса, содержащих основной физический адрес вашего клиента.

Упорядочите поля адреса в массиве именно в том порядке, в котором они упорядочены в полезных данных запроса.

Способ указания полей адреса зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса — /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса — primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

(structure)

Имя поля в полезных данных запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя отдельного поля основного адреса.

Способ указания полей адреса зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса — /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных с кодировкой формы используйте имена форм HTML. Например, для формы HTML с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса — primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетных записей.

Примечание

Проверка ответа доступна только в веб-ACL, защищающих дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках создания учетных записей клиентами, подсчитывая успешные и неудачные попытки с каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы из клиентских сеансов и IP-адресов, которые предприняли слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа на индикаторы успеха и сбоя.

SuccessCodes -> (list)

Коды состояния в ответе, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, код состояния ответа должен соответствовать одному из этих кодов. Каждый код должен быть уникальным среди кодов состояния успеха и сбоя.

JSON example: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

Коды состояния в ответе, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачей, код состояния ответа должен соответствовать одному из этих кодов. Каждый код должен быть уникальным среди кодов состояния успеха и сбоя.

JSON example: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа на индикаторы успеха и сбоя.

Name -> (string)

Имя заголовка для сопоставления. Имя должно точно соответствовать, включая регистр.

JSON example: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON examples: "SuccessValues": [ "LoginPassed", "Successful login" ] and "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON examples: "FailureValues": [ "LoginFailed", "Failed login" ] and "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа на индикаторы успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

JSON examples: "SuccessStrings": [ "Login successful" ] and "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачей, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

JSON example: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа на индикаторы успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор для сопоставления значения в JSON. Идентификатор должен точно соответствовать, включая регистр.

JSON examples: "Identifier": [ "/login/success" ] and "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON example: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON example: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (list)

Настройки действия для использования вместо действий правила, которые настроены внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не возвращает ошибку и не применяет настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете постоянно переопределять некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

(структура)

Настройка действия для использования вместо действия правила, которое настроено внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не возвращает ошибку и не применяет настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете постоянно переопределять некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

Name -> (string)

Имя правила для переопределения.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не возвращает ошибку и не применяет настройку переопределения.

ActionToUse -> (structure)

Действие переопределения, которое нужно использовать вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет настраиваемый ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP, возвращаемый клиенту.

Список кодов состояния, которые можно использовать в ваших пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF возвращал клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено на блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии веб-ACL по умолчанию BlockAction , вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP, которые нужно использовать в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

LabelMatchStatement -> (structure)

Инструкция правила для сопоставления с метками, которые были добавлены в веб-запрос правилами, которые уже были запущены в веб-ACL.

Инструкция сопоставления меток предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или всю полностью определенную метку, которая была добавлена в веб-запрос. Полностью определенные метки имеют префикс, необязательные пространства имен и имя метки. Префикс идентифицирует группу правил или контекст веб-ACL правила, которое добавило метку. Если вы не предоставите полностью определенное имя в строке сопоставления меток, WAF выполнит поиск меток, которые были добавлены в том же контексте, что и инструкция сопоставления меток.

Scope -> (string)

Укажите, хотите ли вы выполнять сопоставление, используя имя метки или только пространство имен.

Key -> (string)

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от настройки Scope инструкции сопоставления:

  • Если Scope указывает LABEL , то это спецификация должна включать имя и может включать любое количество предшествующих спецификаций пространства имен и префикс до предоставления полностью определенной метки.
  • Если Scope указывает NAMESPACE , то эта спецификация может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен меток из группы правил или веб-ACL, откуда берется метка.

Метки чувствительны к регистру, а компоненты метки должны разделяться двоеточием, например NS1:NS2:name .

RegexMatchStatement -> (structure)

Оператор правила, используемый для поиска соответствия компонентам веб-запроса с одним регулярным выражением.

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковая имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение составляет 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение составляет 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки чрезмерного размера:

  • CONTINUE - Проверять доступное содержимое тела обычно, в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры обработки чрезмерного размера MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение составляет 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, в значениях или в обоих случаях. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF parsing не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в WAF Developer Guide .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение составляет 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки чрезмерного размера:

  • CONTINUE - Проверять доступное содержимое тела обычно, в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры обработки чрезмерного размера MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков превышающего размер в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для определения подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет и ключи, и значения.

All не требует, чтобы соответствие было найдено в ключах, а соответствие — в значениях. Требуется, чтобы соответствие было найдено в ключах, значениях или и том, и другом. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie превышающего размер в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет и ключи, и значения.

All не требует, чтобы соответствие было найдено в ключах, а соответствие — в значениях. Требуется, чтобы соответствие было найдено в ключах, значениях или и том, и другом. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie в запросе больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

HeaderOrder -> (structure)

Проверить строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента для сопоставления полей при проверке. WAF разделяет имена заголовков в строке, используя двоеточия, без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, содержащего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние сопоставления для назначения веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, содержащего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние сопоставления для назначения веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

UriFragment -> (structure)

Проверить фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI превышающего размер в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам, чтобы преобразовать компонент запроса FieldToMatch перед его проверкой, и они используются в операторах правил на основе частоты, чтобы преобразовать компоненты запроса, прежде чем использовать их в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это необходимо, если вы укажете перенаправленный IP-адрес в настройках ключа агрегации правила.

HeaderName -> (string)

Имя заголовка HTTP, которое нужно использовать для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите его в значение X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который нужно присвоить веб-запросу, если в запросе нет допустимого IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отступлении:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

CustomKeys -> (list)

Указывает агрегированные ключи для использования в правиле на основе скорости.

(структура)

Указывает один пользовательский агрегированный ключ для правила на основе скорости.

Note

Запросы веб-сайта, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, опускаются из оценки и обработки правил на основе скорости.

Header -> (structure)

Использовать значение заголовка в запросе в качестве агрегированного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегирования. Если вы используете один заголовок в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Name -> (string)

Имя заголовка для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

Cookie -> (structure)

Использовать значение cookie в запросе в качестве агрегированного ключа. Каждое отдельное значение в cookie вносит вклад в экземпляр агрегирования. Если вы используете один cookie в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Name -> (string)

Имя cookie для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

QueryArgument -> (structure)

Использовать указанный аргумент запроса в качестве агрегированного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегирования. Если вы используете один аргумент запроса в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Name -> (string)

Имя аргумента запроса для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

QueryString -> (structure)

Использовать строку запроса запроса в качестве агрегированного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегирования. Если вы используете только строку запроса в качестве пользовательского ключа, то каждая строка полностью определяет экземпляр агрегирования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

HTTPMethod -> (structure)

Использовать метод HTTP запроса в качестве агрегированного ключа. Каждый отдельный метод HTTP вносит вклад в экземпляр агрегирования. Если вы используете только метод HTTP в качестве пользовательского ключа, то каждый метод полностью определяет экземпляр агрегирования.

ForwardedIP -> (structure)

Использовать первый IP-адрес в заголовке HTTP в качестве агрегированного ключа. Каждый отдельный перенаправленный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или перенаправленного IP-адреса в настройках пользовательского ключа необходимо также указать как минимум еще один ключ для использования. Вы можете агрегировать только по перенаправленному IP-адресу, указав FORWARDED_IP в AggregateKeyType вашего оператора на основе скорости.

С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig правила на основе скорости.

IP -> (structure)

Использовать исходный IP-адрес запроса в качестве агрегированного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или перенаправленного IP-адреса в настройках пользовательского ключа необходимо также указать как минимум еще один ключ для использования. Вы можете агрегировать только по IP-адресу, указав IP в AggregateKeyType вашего оператора на основе скорости.

LabelNamespace -> (structure)

Использовать указанное пространство имен метки в качестве агрегированного ключа. Каждое отдельное полностью квалифицированное имя метки, которое имеет указанное пространство имен метки, вносит вклад в экземпляр агрегирования. Если вы используете только одно пространство имен метки в качестве пользовательского ключа, то каждое имя метки полностью определяет экземпляр агрегирования.

При этом используются только метки, добавленные в запрос правилами, которые оцениваются перед этим правилом на основе скорости в веб-ACL.

Информацию о пространствах имен и именах меток см. в разделе Синтаксис и требования к именованию меток в Руководстве разработчика WAF .

Namespace -> (string)

Пространство имен для использования для агрегирования.

UriPath -> (structure)

Использовать путь URI запроса в качестве агрегированного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегирования. Если вы используете только путь URI в качестве пользовательского ключа, то каждый путь URI полностью определяет экземпляр агрегирования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в запросах веб-сайта, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Текстовые преобразования в Руководстве разработчика WAF .

JA3Fingerprint -> (structure)

Использовать отпечаток JA3 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA3 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

FallbackBehavior -> (string)

Статус соответствия, который будет присвоен запросу веб-сайта, если информации TSL Client Hello недостаточно для вычисления отпечатка JA3.

Вы можете указать следующие варианты резервного поведения:

  • MATCH - Считать запрос веб-сайта соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что запрос веб-сайта не соответствует оператору правила.

JA4Fingerprint -> (structure)

Используйте отпечаток JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA4 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA4.

Вы можете указать следующие варианты поведения при отступлении:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

AndStatement -> (structure)

Логическое утверждение правила, используемое для объединения других утверждений правила с логикой AND. Вы предоставляете более одного Statement в AndStatement .

Statements -> (list)

Утверждения для объединения с логикой AND. Вы можете использовать любые утверждения, которые могут быть вложены.

(structure)

Руководство по обработке для Rule, используемое WAF для определения соответствия веб-запроса правилу.

Например, спецификации см. в разделе примеров CreateWebACL .

ByteMatchStatement -> (structure)

Утверждение правила, определяющее поиск совпадений строк для применения WAF к веб-запросам. Утверждение соответствия байтов предоставляет байты для поиска, местоположение в запросах, в котором вы хотите, чтобы WAF выполнял поиск, и другие настройки. Байты для поиска обычно представляют собой строку, которая соответствует символам ASCII. В консоли WAF и руководстве для разработчиков это называется утверждением соответствия строк.

SearchString -> (blob)

Строковое значение, которое вы хотите, чтобы WAF искал. WAF выполняет поиск только в той части веб-запросов, которую вы указываете для проверки в FieldToMatch . Максимальная длина значения составляет 200 байт.

Допустимые значения зависят от компонента, который вы указываете для проверки в FieldToMatch :

  • Method : HTTP-метод, который вы хотите, чтобы WAF искал. Это указывает тип операции, указанной в запросе.
  • UriPath : Значение, которое вы хотите, чтобы WAF искал в пути URI, например, /images/daily-ad.jpg .
  • JA3Fingerprint : Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 - это 32-значный хеш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. Вы можете использовать этот выбор только с соответствием строк ByteMatchStatement с PositionalConstraint установленным в EXACTLY . Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе Log fields в Руководстве разработчика WAF .
  • HeaderOrder : Список имен заголовков для сопоставления. WAF создает строку, содержащую упорядоченный список имен заголовков, из заголовков в веб-запросе, а затем сопоставляет эту строку.

Если SearchString включает буквенные символы A-Z и a-z, обратите внимание, что значение чувствительно к регистру.

Если вы используете API WAF

Укажите версию значения с кодировкой base64. Максимальная длина значения перед кодированием base64 составляет 200 байт.

Например, предположим, что значение Type равно HEADER , а значение Data равно User-Agent . Если вы хотите выполнить поиск в заголовке User-Agent для значения BadBot , вы кодируете base64 BadBot с использованием кодирования MIME base64 и включаете полученное значение, QmFkQm90 , в значение SearchString .

Если вы используете CLI или один из Amazon Web Services SDK

Значение, которое вы хотите, чтобы WAF искал. SDK автоматически кодирует значение base64.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, определяющая ресурс, например, /images/daily-ad.jpg.

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос просит выполнить источник.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если указать ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение — в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих случаях. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, которое проверяет ключи, и другого, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Доступны следующие параметры:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF выполняет синтаксический анализ и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить область действия и фильтры сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка большого размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Он требует, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия: одного для проверки ключей и другого для проверки значений.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовка.

Варианты обработки большого размера следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить область действия и фильтры сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файла cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с использованием критериев проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Он требует, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия: одного для проверки ключей и другого для проверки значений.

OversizeHandling -> (string)

Что должен делать WAF, если файлов cookie в запросе больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает в WAF максимум 200 файлов cookie и не более 8 КБ содержимого файла cookie.

Варианты обработки большого размера следующие:

  • CONTINUE — обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том виде, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента для сопоставления полей в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовка.

Варианты обработки большого размера следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Вы можете указать следующие варианты резервного поведения:

  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Вы можете указать следующие варианты резервного поведения:

  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить область действия и фильтры сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшего приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

PositionalConstraint -> (string)

Область в части веб-запроса, в которой вы хотите, чтобы WAF искал SearchString. Допустимые значения включают следующие:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString, но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString, а SearchString должен содержать только буквенно-цифровые символы или символ подчеркивания (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что верно следующее:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_). Примеры включают значение заголовка и ;BadBot.
  • SearchString находится в конце указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или символа подчеркивания (_), например, BadBot; и -BadBot;.
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString.

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (structure)

Инструкция по правилу, которое проверяет вредоносный код SQL. Злоумышленники вставляют вредоносный код SQL в веб-запросы, чтобы выполнять такие действия, как изменение вашей базы данных или извлечение данных из нее.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (structure)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

В качестве альтернативы вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверка всех аргументов запроса.

UriPath -> (structure)

Проверка пути URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (structure)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверка тела запроса как обычного текста. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, чтобы заплатить дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, чтобы заплатить дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — обычно проверяет доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверка HTTP-метода. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверка тела запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, чтобы заплатить дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (structure)

Соответствие всем элементам. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Соответствие только указанным путям включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Информацию об этом синтаксисе см. в документации Рабочей группы разработки Интернет (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF будет сопоставлять ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверка тела как обычного текста. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует инструкции правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недопустимого JSON. Когда анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, чтобы заплатить дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE — обычно проверяет доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверьте все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных заголовков в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (строка)

Что должен делать WAF, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных файлов cookie в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента соответствия поля в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных заголовков в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, назначаемый веб-запросу, если у запроса нет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, назначаемый веб-запросу, если у запроса нет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. раздел о теле JSON в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самой низкой настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

SensitivityLevel -> (string)

Уровень чувствительности, который вы хотите, чтобы WAF использовал для проверки на атаки путем внедрения SQL-кода.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Сведения об идентификации и смягчении последствий ложных срабатываний см. в разделе Тестирование и настройка в Руководстве разработчика WAF .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак путем внедрения SQL-кода или которые имеют низкую толерантность к ложным срабатываниям.

По умолчанию: LOW

XssMatchStatement -> (structure)

Правило, проверяющее наличие атак типа межсайтового скриптинга (XSS). При XSS-атаках злоумышленник использует уязвимости на безобидном веб-сайте, чтобы внедрить вредоносные клиентские скрипты в другие легитимные веб-браузеры.

FieldToMatch -> (structure)

Часть веб-запроса, которую WAF должен проверить.

SingleHeader -> (structure)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверка всех аргументов запроса.

UriPath -> (structure)

Проверка пути URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ? (при наличии).

Body -> (structure)

Проверка тела запроса как обычного текста. Тело запроса следует сразу после заголовков запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Когда тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Когда тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверка метода HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверка тела запроса как JSON. Тело запроса следует сразу после заголовков запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в виде тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Когда тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Необходимо указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Необходимо указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL , WAF сопоставит с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или в значениях, или в обоих. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, который проверяет ключи, и другого, который проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Доступны следующие параметры:

  • EVALUATE_AS_STRING - Проверка тела как обычного текста. WAF применяет текстовые преобразования и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Когда тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого негабаритного содержимого заголовка в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или в сумме 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого негабаритного содержимого файла cookie в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или в сумме 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или в сумме 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и записывает в журнал этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях журналов см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и записывает в журнал этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Сведения о полях журналов см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить область видимости и фильтры сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки любого негабаритного содержимого фрагмента URI в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет поведение при отказе. Для получения дополнительной информации см. JSON body в Руководстве разработчика WAF.

TextTransformations -> (list)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. Text transformations are used in rule match statements, to transform the FieldToMatch request component before inspecting it, and they’re used in rate-based rule statements, to transform request components before using them as custom aggregation keys. If you specify one or more transformations to apply, WAF performs all transformations on the specified content, starting from the lowest priority setting, and then uses the transformed component contents.

(structure)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

For detailed descriptions of each of the transformation types, see Text transformations in the WAF Developer Guide .

SizeConstraintStatement -> (structure)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, например «больше чем» (>) или «меньше чем» (<). Например, можно использовать оператор ограничения размера для поиска строк запроса, длина которых превышает 100 байт.

Если настроить WAF для проверки тела запроса, WAF проверяет только количество байтов в теле до лимита для веб-ACL и типа защищенного ресурса. Если известно, что тело запроса для ваших веб-запросов никогда не должно превышать лимит проверки, можно использовать оператор ограничения размера для блокировки запросов с большим размером тела запроса. Дополнительные сведения о лимитах проверки см. в параметрах Body и JsonBody для типа данных FieldToMatch.

Если для значения параметра «Часть запроса для фильтрации» выбрано URI, косая черта (/) в URI учитывается как один символ. Например, URI /logo.jpg имеет длину девять символов.

FieldToMatch -> (structure)

Часть веб-запроса, которую необходимо проверить с помощью WAF.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg.

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковая имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые требуется отправить на веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает в WAF для проверки только содержимое в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован и составляет 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и для каждого типа ресурса в веб-ACL можно увеличить лимит AssociationConfig, что потребует дополнительных комиссий за обработку.
  • Для Amplify используйте лимит CloudFront.

Дополнительные сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает в WAF для проверки только содержимое в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован и составляет 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и для каждого типа ресурса в веб-ACL можно увеличить лимит AssociationConfig, что потребует дополнительных комиссий за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки превышения размера:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Можно сочетать параметры обработки превышения размера MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любые запросы, тело которых превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос требует выполнить для источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые требуется отправить на веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает в WAF для проверки только содержимое в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован и составляет 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и для каждого типа ресурса в веб-ACL можно увеличить лимит AssociationConfig, что потребует дополнительных комиссий за обработку.
  • Для Amplify используйте лимит CloudFront.

Дополнительные сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Необходимо указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения с помощью синтаксиса JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Дополнительные сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Необходимо указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON, с которыми следует сопоставлять значения, используя MatchPattern. Если указать ALL, WAF будет сопоставлять значения с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих случаях. Чтобы потребовать совпадение в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Доступны следующие параметры:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если не указать этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недопустимого JSON. При успешном синтаксическом анализе WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает в WAF для проверки только содержимое в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован и составляет 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и для каждого типа ресурса в веб-ACL можно увеличить лимит AssociationConfig, что потребует дополнительных комиссий за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки превышения размера:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Можно сочетать параметры обработки превышения размера MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любые запросы, тело которых превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить область и фильтры сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка превышающего размер в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и соответствия в значениях. Он требует, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствие в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, который проверяет ключи, и другого, который проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки oversize следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить область и фильтры сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и соответствия в значениях. Он требует, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствие в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, который проверяет ключи, и другого, который проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки oversize следующие:

  • CONTINUE - Обычно проверять доступные файлы cookie в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента поля для сопоставления в своей проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки oversize следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить область и фильтры сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF выполняет синтаксический анализ и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF синтаксический анализ не полностью проверяет входную строку JSON, поэтому синтаксический анализ может пройти даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

ComparisonOperator -> (string)

Оператор для сравнения части запроса с настройкой размера.

Size -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations in the WAF Developer Guide .

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и сопоставляет их с веб-запросами на основе кода страны. Правило географического соответствия помечает каждый проверяемый им запрос независимо от того, находит ли оно соответствие.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор сам по себе и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes .
  • В противном случае настройте правило географического соответствия с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил соответствия меткам, чтобы они выполнялись после правила географического соответствия, и настройте их для сопоставления с географическими метками и обработки запросов по мере необходимости.

WAF помечает запросы, используя двухсимвольные коды страны и региона из стандарта Международной организации по стандартизации (ISO) 3166. WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы его укажете, адрес в географическом соответствии ForwardedIPConfig .

Если вы используете источник веб-запроса, форматы меток: awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code> .

Если вы используете переадресованный IP-адрес, форматы меток: awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code> .

Для получения дополнительных сведений см. Geographic match rule statement в Руководстве разработчика WAF .

CountryCodes -> (list)

Массив двухсимвольных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ] , из кодов ISO alpha-2 международной стандартной организации ISO 3166.

Когда вы используете оператор географического соответствия только для меток региона и страны, которые он добавляет к запросам, вам все равно придется предоставить код страны для оценки правила. В этом случае вы настраиваете правило только для подсчета соответствующих запросов, но оно по-прежнему будет генерировать ведение журнала и показатели подсчета для любых совпадений. Вы можете уменьшить ведение журнала и показатели, которые создает правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Note

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP для использования для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For .

Note

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит допустимого IP-адреса в указанной позиции.

Note

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при резервном копировании:

  • MATCH - считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать веб-запрос не соответствующим оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в RuleGroup. Чтобы использовать это, создайте группу правил с вашими правилами, а затем укажите ARN группы правил в этом операторе.

Вы не можете вкладывать RuleGroupReferenceStatement, например, для использования внутри NotStatement или OrStatement. Вы не можете использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как оператор верхнего уровня в правиле, которое вы определяете в web ACL.

ARN -> (string)

Имя ресурса Amazon (ARN) сущности.

ExcludedRules -> (list)

Правила в ссылочной группе правил, действия которых установлены в Count.

Примечание

Вместо этого параметра используйте RuleActionOverrides. Он принимает любое допустимое значение действия, включая Count.

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count.

Примечание

Вместо этого параметра используйте RuleActionOverrides. Он принимает любое допустимое значение действия, включая Count.

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count.

RuleActionOverrides -> (list)

Настройки действий, которые следует использовать вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count, а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком вашей группой правил.

(structure)

Настройка действия, используемая вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count, а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком вашей группой правил.

Name -> (string)

Имя правила для переопределения.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure)

Действие переопределения, которое следует использовать вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ на веб-запрос.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

ResponseCode -> (integer)

Код состояния HTTP, который следует вернуть клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательских ответов в Руководстве разработчика WAF.

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, для которого установлено значение block. Чтобы сделать это, сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии по умолчанию веб-ACL в настройке BlockAction вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP, которые следует использовать в ответе. Вы можете указать любое имя заголовка, кроме content-type. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample, WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP, которые следует вставить в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample, WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP, которые следует вставить в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample, WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP, которые следует вставить в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample, WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP, которые следует вставить в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample, WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Оператор правила, используемый для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который указывает адреса, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Чтобы создать IP-набор, см. CreateIPSet.

Каждый оператор правила IP-набора ссылается на IP-набор. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Имя ресурса Amazon (ARN) IPSet, на который ссылается этот оператор.

IPSetForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, который будет использоваться для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который следует присвоить веб-запросу, если запрос не имеет действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующее поведение при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Position -> (string)

Положение в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные — прокси-серверы, через которые прошел запрос.

Параметры для этой настройки следующие:

  • FIRST - Проверить первый IP-адрес в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST - Проверить последний IP-адрес в списке IP-адресов в заголовке.
  • ANY - Проверить все IP-адреса в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (structure)

Оператор правила, используемый для поиска соответствий компонентов веб-запроса с регулярными выражениями. Чтобы использовать это, создайте RegexPatternSet, который определяет выражения, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Веб-запрос соответствует оператору правила набора шаблонов, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов регулярных выражений, см. CreateRegexPatternSet.

Каждый оператор правила набора шаблонов регулярных выражений ссылается на набор шаблонов регулярных выражений. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет вам использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Amazon Resource Name (ARN) набора RegexPatternSet, на который ссылается этот оператор.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите проверить с помощью WAF.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Эта настройка нечувствительна к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью настройки Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверить тело запроса как простой текст. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычным образом проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры обработки больших размеров MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов по критериям проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо эту настройку, либо настройку IncludedPaths , но не обе.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации рабочей группы Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо эту настройку, либо настройку All , но не обе.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте настройку All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL , WAF выполняет сопоставление с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Для этого требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите эту настройку, WAF анализирует и оценивает содержимое только до первой ошибки анализа, с которой он сталкивается.

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому разбор может быть успешным даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. раздел JSON body в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая хост-служба пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычным образом проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры обработки больших размеров MATCH или NO_MATCH с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка превышающего размер в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно одну настройку: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE — Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файла cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно одну настройку: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы потребовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie в запросе больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или в общей сложности 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файла cookie в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE — Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента поля для сопоставления при проверке. WAF разделяет имена заголовков в строке с использованием двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки превышения размера следующие:

  • CONTINUE — Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 представляет собой 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, которые имеют ту же конфигурацию TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое необходимо назначить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 представляет собой 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, которые имеют ту же конфигурацию TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое необходимо назначить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста удаляют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(structure)

Преобразования текста удаляют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

RateBasedStatement -> (structure)

Правило на основе частоты подсчитывает входящие запросы и ограничивает частоту запросов, когда они поступают слишком быстро. Правило категоризирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования и подсчитывает и ограничивает частоту запросов для каждого экземпляра.

Примечание

Если вы измените какие-либо из этих настроек в правиле, которое в настоящее время используется, изменение сбрасывает счетчики ограничения частоты правила. Это может приостановить действия по ограничению частоты правила на срок до одной минуты.

Вы можете указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Вы также можете указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie.

Каждый уникальный набор значений для указанных вами ключей агрегирования является отдельным экземпляром агрегирования, при этом значение каждого ключа вносит вклад в определение экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило будет создавать разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1: количество 3
    • IP-адрес 127.0.0.0: количество 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • Метод HTTP POST: количество 2
    • Метод HTTP GET: количество 2
  • Если критериями агрегирования являются IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут вносить вклад в комбинированный экземпляр агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1, метод HTTP POST: количество 1
    • IP-адрес 10.1.1.1, метод HTTP GET: количество 2
    • IP-адрес 127.0.0.0, метод HTTP POST: количество 1

Для любой n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по частоте индивидуально.

При желании вы можете вложить другой оператор внутри оператора на основе частоты, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало частоту только тех запросов, которые соответствуют вложенному оператору. Вы можете использовать этот вложенный оператор сужения области действия вместе со спецификациями ключей агрегирования, или вы можете просто подсчитывать и ограничивать частоту всех запросов, которые соответствуют оператору сужения области действия, без дополнительного агрегирования. Когда вы решите просто управлять всеми запросами, которые соответствуют оператору сужения области действия, экземпляр агрегирования будет единственным для правила.

Вы не можете вкладывать RateBasedStatement внутри другого оператора, например внутри NotStatement или OrStatement . Вы можете определить RateBasedStatement внутри веб-ACL и внутри группы правил.

Для получения дополнительной информации об опциях см. раздел Rate limiting web requests using rate-based rules в WAF Developer Guide .

Если вы выполняете агрегирование только по отдельному IP-адресу или перенаправленному IP-адресу, вы можете получить список IP-адресов, которые WAF в настоящее время ограничивает по частоте для правила, с помощью вызова API GetRateBasedStatementManagedKeys . Эта опция недоступна для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе частоты, которое вы используете. Например, если вы предоставляете одни и те же настройки правила на основе частоты в двух веб-ACL, каждый из двух операторов правил представляет собой отдельный экземпляр правила на основе частоты и получает собственное отслеживание и управление со стороны WAF. Если вы определяете правило на основе частоты внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе частоты, который получает собственное отслеживание и управление со стороны WAF.

Limit -> (long)

Лимит запросов в течение указанного окна оценки для одного экземпляра агрегирования для правила на основе частоты. Если оператор на основе частоты включает в себя ScopeDownStatement , этот лимит применяется только к запросам, соответствующим оператору.

Примеры:

  • Если вы агрегируете только по IP-адресу, это лимит запросов с любого отдельного IP-адреса.
  • Если вы агрегируете по методу HTTP и имени аргумента запроса «city», то это лимит запросов для любой отдельной пары метод, город.

EvaluationWindowSec -> (long)

Количество времени в секундах, которое WAF должен включить в свои подсчеты запросов, оглядываясь назад с текущего времени. Например, для настройки 120, когда WAF проверяет частоту, он подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет частоту, а определяет, насколько далеко назад он смотрит каждый раз, когда проверяет. WAF проверяет частоту примерно каждые 10 секунд.

Default: 300 (5 minutes)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правила на основе частоты.
  • CONSTANT - Подсчитывайте и ограничивайте запросы, соответствующие оператору сужения области действия правила на основе частоты. С помощью этой опции подсчитанные запросы не агрегируются дальше. Оператор сужения области действия — единственная используемая спецификация. Когда количество всех запросов, удовлетворяющих оператору сужения области действия, превышает лимит, WAF применяет действие правила ко всем запросам, удовлетворяющим оператору сужения области действия. С помощью этой опции необходимо настроить свойство ScopeDownStatement .
  • CUSTOM_KEYS - Агрегируйте количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. С помощью этой опции необходимо указать ключи агрегирования в свойстве CustomKeys . Чтобы выполнить агрегирование только по IP-адресу или только по перенаправленному IP-адресу, не используйте пользовательские ключи. Вместо этого установите тип ключа агрегирования в IP или FORWARDED_IP .
  • FORWARDED_IP - Агрегируйте количество запросов по первому IP-адресу в заголовке HTTP. С помощью этой опции необходимо указать заголовок, который будет использоваться в свойстве ForwardedIPConfig . Чтобы выполнить агрегирование по комбинации перенаправленного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .
  • IP - Агрегируйте количество запросов по IP-адресу от источника веб-запроса. Чтобы выполнить агрегирование по комбинации IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .

( … recursive … )ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в заголовке HTTP, который вы указываете, вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это необходимо, если вы указываете перенаправленный IP-адрес в настройках ключа агрегирования правила.

HeaderName -> (string)

Имя заголовка HTTP, который следует использовать для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который следует присвоить веб-запросу, если запрос не содержит допустимый IP-адрес в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

CustomKeys -> (list)

Указывает агрегированные ключи для использования в правиле на основе скорости.

(структура)

Указывает один пользовательский агрегированный ключ для правила на основе скорости.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.

Заголовок -> (структура)

Используйте значение заголовка в запросе в качестве агрегированного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегирования. Если вы используете один заголовок в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя заголовка для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

Cookie -> (структура)

Используйте значение cookie в запросе в качестве агрегированного ключа. Каждое отдельное значение в cookie-файле вносит вклад в экземпляр агрегирования. Если вы используете один cookie-файл в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя cookie для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

QueryArgument -> (структура)

Используйте указанный аргумент запроса в качестве агрегированного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегирования. Если вы используете один аргумент запроса в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

Имя -> (строка)

Имя аргумента запроса для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

QueryString -> (структура)

Используйте строку запроса запроса в качестве агрегированного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегирования. Если вы используете только строку запроса в качестве пользовательского ключа, то каждая строка полностью определяет экземпляр агрегирования.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

HTTPMethod -> (структура)

Используйте метод HTTP запроса в качестве агрегированного ключа. Каждый отдельный метод HTTP вносит вклад в экземпляр агрегирования. Если вы используете только метод HTTP в качестве пользовательского ключа, то каждый метод полностью определяет экземпляр агрегирования.

ForwardedIP -> (структура)

Используйте первый IP-адрес в заголовке HTTP в качестве агрегированного ключа. Каждый отдельный перенаправленный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или перенаправленного IP-адреса в пользовательских параметрах ключа необходимо также указать как минимум еще один ключ для использования. Вы можете выполнять агрегирование только по перенаправленному IP-адресу, указав FORWARDED_IP в AggregateKeyType вашего оператора на основе скорости.

С помощью этого параметра необходимо указать заголовок для использования в свойстве ForwardedIPConfig правила на основе скорости.

IP -> (структура)

Используйте исходный IP-адрес запроса в качестве агрегированного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегирования.

При указании IP-адреса или перенаправленного IP-адреса в пользовательских параметрах ключа необходимо также указать как минимум еще один ключ для использования. Вы можете выполнять агрегирование только по IP-адресу, указав IP в AggregateKeyType вашего оператора на основе скорости.

LabelNamespace -> (структура)

Используйте указанное пространство имен метки в качестве агрегированного ключа. Каждое отдельное полное имя метки, имеющее указанное пространство имен метки, вносит вклад в экземпляр агрегирования. Если вы используете только одно пространство имен метки в качестве пользовательского ключа, то каждое имя метки полностью определяет экземпляр агрегирования.

Это использует только метки, которые были добавлены к запросу правилами, оцениваемыми перед этим правилом на основе скорости в веб-ACL.

Информацию о пространствах имен и именах меток см. в разделе Label syntax and naming requirements в WAF Developer Guide .

Пространство имен -> (строка)

Пространство имен для использования для агрегирования.

UriPath -> (структура)

Используйте путь URI запроса в качестве агрегированного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегирования. Если вы используете только путь URI в качестве пользовательского ключа, то каждый путь URI полностью определяет экземпляр агрегирования.

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

JA3Fingerprint -> (структура)

Используйте отпечаток JA3 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA3 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

FallbackBehavior -> (строка)

Состояние соответствия, которое необходимо присвоить веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA3.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Используйте отпечаток пальца JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток пальца JA4 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Статус соответствия для назначения веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка пальца JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - рассматривать веб-запрос как не соответствующий оператору правила.

AndStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой AND. Вы предоставляете более одного Statement в пределах AndStatement .

Statements -> (list)

Операторы для объединения с логикой AND. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

OrStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой OR. Вы предоставляете более одного Statement в пределах OrStatement .

Statements -> (list)

Операторы для объединения с логикой OR. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

NotStatement -> (structure)

Логический оператор правила, используемый для отрицания результатов другого оператора правила. Вы предоставляете один Statement в пределах NotStatement .

( … recursive … )

ManagedRuleGroupStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом операторе. Вы можете получить требуемые имена, вызвав ListAvailableManagedRuleGroups .

Вы не можете вложить ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control account takeover prevention (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control account creation fraud prevention (ACFP) AWSManagedRulesACFPRuleSet . Для получения дополнительной информации см. WAF Pricing .

VendorName -> (string)

Имя поставщика управляемой группы правил. Вы используете это вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Вы используете это вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия управляемой группы правил для использования. Если вы укажете это, настройка версии будет фиксированной до тех пор, пока вы ее не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика при обновлении поставщиком настроек управляемой группы правил.

ExcludedRules -> (list)

Правила в ссылочной группе правил, действия которых установлены в Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

(structure)

Указывает отдельное правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

( … recursive … )ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для смягчения интеллектуальных угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения и местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезных данных запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите использовать группе правил Bot Control.

(structure)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для смягчения интеллектуальных угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения и местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезных данных запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите использовать группе правил Bot Control.

Примеры спецификаций см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных, закодированных в форме, используйте имена форм HTML. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя: username1

PasswordField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля: /form/password .
  • Для типов полезных данных, закодированных в форме, используйте имена форм HTML. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля: password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил Bot Control. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Информацию об использовании управляемой группы правил Bot Control см. в разделе WAF Bot Control rule group и WAF Bot Control в WAF Developer Guide .

InspectionLevel -> (string)

Уровень проверки для использования в управляемой группе правил Bot Control. Общий уровень является наименее затратным. Целевой уровень включает все правила общего уровня и добавляет правила с более продвинутыми критериями проверки. Подробности см. в разделе WAF Bot Control rule group в WAF Developer Guide .

EnableMachineLearning -> (boolean)

Применимо только к целевому уровню проверки.

Определяет, следует ли использовать машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение требуется для правил Bot Control TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют аномальное поведение, которое может указывать на распределенную, скоординированную активность ботов.

Для получения дополнительной информации об этом выборе см. список этих правил в таблице в разделе Bot Control rules listing в WAF Developer Guide .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетной записи (ATP), AWSManagedRulesATPRuleSet . Используйте это для предоставления информации о запросе на вход в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на вход.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. группу правил предотвращения захвата учетной записи (ATP) WAF Fraud Control и предотвращение захвата учетной записи (ATP) WAF Fraud Control в Руководстве разработчика WAF .

LoginPath -> (string)

Путь к конечной точке входа для вашего приложения. Например, для URL-адреса https://example.com/web/login вам необходимо указать путь /web/login . Пути входа, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/login соответствует путям входа /web/login , /web/login/ , /web/loginPage и /web/login/thisPage , но не соответствует пути входа /home/web/login или /website/login .

Группа правил проверяет только HTTP POST запросы к указанной вами конечной точке входа.

RequestInspection -> (structure)

Критерии проверки запросов на вход, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки входа: JSON или форма с кодировкой.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя выглядит как /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя выглядит как username1

Identifier -> (string)

Имя поля имени пользователя.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя выглядит как /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя выглядит как username1

PasswordField -> (structure)

Имя поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) documentation JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля выглядит как /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля выглядит как password1 .

Identifier -> (string)

Имя поля пароля.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) documentation JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля выглядит как /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля выглядит как password1 .

ResponseInspection -> (structure)

Критерии проверки ответов на запросы на вход, используемые группой правил ATP для отслеживания частоты сбоев входа.

Примечание

Проверка ответа доступна только в веб-ACL, защищающих дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках входа клиентов, подсчитывая успешные и неудачные попытки для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от сеансов клиентов и IP-адресов, у которых было слишком много неудачных попыток входа за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

Коды состояния в ответе, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачей, код состояния ответа должен соответствовать одному из них. Каждый код должен быть уникальным среди кодов состояния успеха и сбоя.

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Имя заголовка для сопоставления. Имя должно точно совпадать, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешной, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачей, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения для сопоставления в JSON. Идентификатор должен точно соответствовать, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы входа.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетной записи (ACFP), AWSManagedRulesACFPRuleSet. Используйте это для предоставления информации о запросах на создание учетной записи в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это также для предоставления информации о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. группу правил предотвращения мошенничества при создании учетной записи WAF Fraud Control (ACFP) и предотвращение мошенничества при создании учетной записи WAF Fraud Control (ACFP) в Руководстве разработчика WAF.

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая принимает заполненную форму регистрации для нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL-адреса https://example.com/web/newaccount вы предоставите путь /web/newaccount. Пути к странице создания учетной записи, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетной записи /web/newaccount, /web/newaccount/, /web/newaccountPage и /web/newaccount/thisPage, но не соответствует пути /home/web/newaccount или /website/newaccount.

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница на вашем веб-сайте, на которой форма регистрации отображается для новых пользователей.

Примечание

Эта страница должна принимать GET запросы text/html.

Например, для URL-адреса https://example.com/web/registration вы предоставите путь /web/registration. Пути к странице регистрации, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration, /web/registration/, /web/registrationPage и /web/registration/thisPage, но не соответствует пути /home/web/registration или /website/registration.

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки создания учетной записи: JSON или форма с кодировкой.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

Identifier -> (string)

Название поля имени пользователя.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя — username1

PasswordField -> (structure)

Название поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля — password1 .

Identifier -> (string)

Название поля пароля.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля — password1 .

EmailField -> (structure)

Название поля в полезной нагрузке запроса, содержащего адрес электронной почты вашего клиента.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты — /form/email .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем email1 , спецификация поля электронной почты — email1 .

Identifier -> (string)

Название поля электронной почты.

Способ указания зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты — /form/email .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем email1 , спецификация поля электронной почты — email1 .

PhoneNumberFields -> (list)

Названия полей в полезной нагрузке запроса, содержащих основной номер телефона вашего клиента.

Упорядочьте поля номера телефона в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

Способ указания полей номера телефона зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона — /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона — primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

(structure)

Название поля в полезной нагрузке запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP.

Identifier -> (string)

Название одного поля основного номера телефона.

Способ указания полей номера телефона зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона — /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона — primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

AddressFields -> (list)

Названия полей в полезной нагрузке запроса, содержащих основной физический адрес вашего клиента.

Упорядочьте поля адреса в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

Способ указания полей адреса зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса — /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса — primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

(structure)

Название поля в полезной нагрузке запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP.

Identifier -> (string)

Название одного поля основного адреса.

Способ указания полей адреса зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса — /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса — primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетной записи.

Примечание

Проверка ответа доступна только в web ACL, защищающих дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно в попытках создания учетной записи клиентом, подсчитывая успешные и неудачные попытки с каждого IP-адреса и клиентской сессии. Используя эту информацию, группа правил помечает и смягчает запросы от клиентских сессий и IP-адресов, у которых было слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и неудачи.

SuccessCodes -> (list)

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

JSON example: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

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

JSON example: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и неудачи.

Name -> (string)

Имя заголовка для сопоставления. Имя должно быть точным совпадением, включая регистр.

JSON example: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON examples: "SuccessValues": [ "LoginPassed", "Successful login" ] and "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON examples: "FailureValues": [ "LoginFailed", "Failed login" ] and "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

JSON examples: "SuccessStrings": [ "Login successful" ] and "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

JSON example: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор для значения, с которым нужно сопоставить в JSON. Идентификатор должен быть точным совпадением, включая регистр.

JSON examples: "Identifier": [ "/login/success" ] and "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON example: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON example: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (list)

Настройки действий, которые будут использоваться вместо действий правил, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Убедитесь, что имена правил в ваших переопределениях верны. Если вы укажете имя правила, которое не соответствует имени ни одного правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

(структура)

Настройка действия, которое будет использоваться вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Убедитесь, что имена правил в ваших переопределениях верны. Если вы укажете имя правила, которое не соответствует имени ни одного правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

Name -> (string)

Имя правила для переопределения.

Примечание

Убедитесь, что имена правил в ваших переопределениях верны. Если вы укажете имя правила, которое не соответствует имени ни одного правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure)

Действие переопределения для использования вместо настроенного действия правила в группе правил.

Block -> (structure)

Указывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Customizing web requests and responses in WAF в WAF Developer Guide .

ResponseCode -> (integer)

Код состояния HTTP, который необходимо вернуть клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Supported status codes for custom response в WAF Developer Guide .

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое настроено на блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем в действии правила или действии по умолчанию веб-ACL настройке BlockAction вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Можно указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Сведения об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. в разделе WAF quotas в WAF Developer Guide .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Он используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Указывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Customizing web requests and responses in WAF в WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. в разделе WAF quotas в WAF Developer Guide .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Он используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Указывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Customizing web requests and responses in WAF в WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. в разделе WAF quotas в WAF Developer Guide .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Он используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Указывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Сведения о настройке веб-запросов и ответов см. в разделе Customizing web requests and responses в WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. в разделе WAF quotas в WAF Developer Guide .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Он используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Указывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Сведения о настройке веб-запросов и ответов см. в разделе Customizing web requests and responses в WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях на количество и размер для пользовательских настроек запросов и ответов см. в разделе WAF quotas в WAF Developer Guide .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Он используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

LabelMatchStatement -> (structure)

Оператор правила для сопоставления с метками, которые были добавлены к веб-запросу правилами, которые уже были запущены в веб-ACL.

Оператор соответствия меткам предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или все полностью квалифицированное имя метки, которая была добавлена к веб-запросу. Полностью квалифицированные метки имеют префикс, необязательные пространства имен и имя метки. Префикс определяет группу правил или контекст веб-ACL правила, которое добавило метку. Если вы не предоставите полное имя в строке соответствия метки, WAF выполнит поиск меток, добавленных в том же контексте, что и оператор соответствия меткам.

Scope -> (string)

Укажите, хотите ли вы выполнить поиск по имени метки или только по пространству имен.

Key -> (string)

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от настройки Scope оператора соответствия:

  • Если Scope указывает LABEL , то это указание должно включать имя и может включать любое количество предыдущих спецификаций пространства имен и префикс до предоставления полного имени метки.
  • Если Scope указывает NAMESPACE , то это указание может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен метки из группы правил или веб-ACL, где метка создается.

Метки чувствительны к регистру, а компоненты метки должны быть разделены двоеточием, например NS1:NS2:name .

RegexMatchStatement -> (structure)

Оператор правила, используемый для поиска соответствия компонентов веб-запроса одному регулярному выражению.

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может быть длиной до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это та часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL, которая отображается после символа ?, если таковая имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит зафиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, превышающие размер, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит зафиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие варианты обработки больших размеров:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Обрабатывайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит зафиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, превышающие размер, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставьте все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Соответствует только указанным путям включения. См. также MatchScope в JsonBody .

Предоставьте пути включения с использованием синтаксиса JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может пройти даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе о теле JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит зафиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие варианты обработки больших размеров:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверять все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и соответствия в значениях. Он требует нахождения соответствия в ключах, в значениях или и в том, и в другом. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверить файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверять все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и соответствия в значениях. Он требует нахождения соответствия в ключах, в значениях или и в том, и в другом. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что должен делать WAF, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает в WAF максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверять строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента сопоставления поля при проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 представляет собой 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе "Поля журнала" в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 представляет собой 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе "Поля журнала" в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверка фрагментов URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что должен делать WAF, если не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недействительного JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе "Тело JSON" в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста удаляют некоторые из необычных форматов, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах сопоставления правил, чтобы преобразовывать компонент запроса FieldToMatch перед его проверкой, и они используются в операторах правил на основе скорости, чтобы преобразовывать компоненты запроса перед их использованием в качестве настраиваемых ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(structure)

Преобразования текста удаляют некоторые из необычных форматов, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF.

OrStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правил с логикой ИЛИ. Вы предоставляете более одного оператора в рамках OrStatement .

Statements -> (list)

Операторы для объединения с логикой ИЛИ. Вы можете использовать любые операторы, которые можно вложить.

(structure)

Указания по обработке для Rule, используемые WAF для определения соответствия веб-запроса правилу.

Например, спецификации см. в разделе примеров CreateWebACL.

ByteMatchStatement -> (structure)

Оператор правила, который определяет поиск соответствия строк для WAF, который необходимо применить к веб-запросам. Оператор сопоставления байтов предоставляет байты для поиска, расположение в запросах, которые вы хотите, чтобы WAF искал, и другие параметры. Байты для поиска, как правило, являются строкой, соответствующей символам ASCII. В консоли WAF и руководстве для разработчиков это называется оператором соответствия строк.

SearchString -> (blob)

Строковое значение, которое вы хотите, чтобы WAF искал. WAF выполняет поиск только в той части веб-запросов, которую вы указываете для проверки в FieldToMatch. Максимальная длина значения — 200 байт.

Допустимые значения зависят от компонента, который вы указываете для проверки в FieldToMatch :

  • Method : Метод HTTP, который вы хотите, чтобы WAF искал. Это указывает тип операции, указанной в запросе.
  • UriPath : Значение, которое вы хотите, чтобы WAF искал в пути URI, например, /images/daily-ad.jpg .
  • JA3Fingerprint : Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA3 запроса. Отпечаток JA3 представляет собой 32-символьную хеш-сумму, полученную из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY . Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе Поля журнала в Руководстве разработчика WAF .
  • HeaderOrder : Список имен заголовков для сопоставления. WAF создает строку, которая содержит упорядоченный список имен заголовков из заголовков в веб-запросе, а затем выполняет сопоставление с этой строкой.

Если SearchString содержит алфавитные символы A-Z и a-z, обратите внимание, что значение учитывает регистр.

Если вы используете API WAF

Укажите версию значения, закодированную в base64. Максимальная длина значения до кодирования в base64 — 200 байт.

Например, предположим, что значение Type — HEADER , а значение Data — User-Agent . Если вы хотите выполнить поиск в заголовке User-Agent значения BadBot , вы кодируете BadBot в base64, используя кодировку MIME base64, и включаете полученное значение QmFkQm90 в значение SearchString .

Если вы используете CLI или один из пакетов SDK Amazon Web Services

Значение, которое вы хотите, чтобы WAF искал. SDK автоматически кодирует значение в base64.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверьте все аргументы запроса.

UriPath -> (structure)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg .

QueryString -> (structure)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверьте тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, превышающие размер, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос просит выполнить исходник.

JsonBody -> (structure)

Проверьте тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, превышающие размер, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правил.

All -> (structure)

Сопоставьте все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставьте только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF сопоставляет с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если он не может полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе тело JSON в WAF Developer Guide.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса превышает лимит, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого негабаритного содержимого заголовка в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих случаях. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого негабаритного содержимого файла cookie в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих случаях. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE — проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных так, как они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента для сопоставления поля в своей проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки негабаритного размера следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставить с отпечатком JA3 запроса. Отпечаток JA3 представляет собой 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо присвоить веб-запросу, если в запросе нет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставить с отпечатком JA4 запроса. Отпечаток JA4 представляет собой 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо присвоить веб-запросу, если в запросе нет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого негабаритного содержимого фрагмента URI в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки наименьшего приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе «Преобразования текста» в Руководстве разработчика WAF.

PositionalConstraint -> (string)

Область в части веб-запроса, в которой вы хотите, чтобы WAF искал SearchString. Допустимые значения включают следующие:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString, но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString, а SearchString должен содержать только буквенно-цифровые символы или подчеркивание (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что верны оба следующих утверждения:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или подчеркивания (_). Примеры включают значение заголовка и ;BadBot.
  • SearchString находится в конце указанной части веб-запроса или за ним следует символ, отличный от буквенно-цифрового символа или подчеркивания (_), например, BadBot; и -BadBot;.
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString.

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (structure)

Оператор правила, который проверяет наличие вредоносного SQL-кода. Злоумышленники вставляют вредоносный SQL-код в веб-запросы, чтобы делать такие вещи, как изменение вашей базы данных или извлечение данных из нее.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg.

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как простой текст. Тело запроса сразу следует за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большего размера, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки больших размеров с параметрами действия вашего правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос просит выполнить источник.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса сразу следует за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большего размера, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте настройку All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF сопоставит ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, или в значениях, или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверить тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. Тело JSON в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки больших размеров с параметрами действия вашего правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки нестандартных размеров следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки нестандартных размеров следующие:

  • CONTINUE — проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента соответствия поля при проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки нестандартных размеров следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия для назначения веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия для назначения веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверять тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может пройти даже для недопустимого JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах сопоставления правил для преобразования FieldToMatch компонента запроса перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед использованием их в качестве пользовательских ключей агрегации. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования для указанного содержимого, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

SensitivityLevel -> (string)

Уровень чувствительности, который вы хотите, чтобы WAF использовал для проверки атак типа SQL injection.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Информацию об определении и смягчении ложных срабатываний см. в разделе Тестирование и настройка в Руководстве разработчика WAF .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак типа SQL injection или которые имеют низкую толерантность к ложным срабатываниям.

По умолчанию: LOW

XssMatchStatement -> (structure)

Оператор правила, который проверяет наличие атак типа межсайтового скриптинга (XSS). При атаках XSS злоумышленник использует уязвимости на безобидном веб-сайте в качестве средства для внедрения вредоносных клиентских скриптов в другие законные веб-браузеры.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (строка)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (строка)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверка всех аргументов запроса.

UriPath -> (структура)

Проверка пути URI запроса. Это та часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (структура)

Проверка тела запроса в виде обычного текста. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (строка)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверка метода HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (структура)

Проверка тела запроса в формате JSON. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правила.

All -> (структура)

Сопоставление со всеми элементами. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставление только с указанными путями включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF выполняет сопоставление с ключами и значениями.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах, или в значениях, или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверка тела как обычного текста. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Если вы не укажете этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительную информацию см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (строка)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND, чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных так, как они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента для сопоставления полей в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое необходимо присвоить веб-запросу, если у запроса нет отпечатка JA3.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое необходимо присвоить веб-запросу, если у запроса нет отпечатка JA4.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недопустимого JSON. Если синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. JSON body в Руководстве разработчика WAF.

TextTransformations -> (list)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. Text transformations are used in rule match statements, to transform the FieldToMatch request component before inspecting it, and they’re used in rate-based rule statements, to transform request components before using them as custom aggregation keys. If you specify one or more transformations to apply, WAF performs all transformations on the specified content, starting from the lowest priority setting, and then uses the transformed component contents.

(structure)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.

Priority -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но все они должны быть разными.

Type -> (string)

For detailed descriptions of each of the transformation types, see Text transformations in the WAF Developer Guide .

SizeConstraintStatement -> (structure)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, например «больше чем» (>) или «меньше чем» (<). Например, вы можете использовать оператор ограничения размера для поиска строк запроса, длина которых превышает 100 байт.

Если вы настроите WAF для проверки тела запроса, WAF будет проверять только количество байтов в теле до предела для веб-ACL и защищенного типа ресурса. Если вы знаете, что тело запроса для ваших веб-запросов никогда не должно превышать предел проверки, вы можете использовать оператор ограничения размера для блокировки запросов с большим размером тела запроса. Дополнительные сведения об ограничениях проверки см. в настройках Body и JsonBody для типа данных FieldToMatch.

Если вы выберете URI для значения параметра «Часть запроса для фильтрации», косая черта (/) в URI учитывается как один символ. Например, URI /logo.jpg имеет длину девять символов.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите проверить с помощью WAF.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg.

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Если тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, находящееся в пределах этого предела, в WAF для проверки.

  • Для Application Load Balancer и AppSync предел фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access предел по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить этот предел для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения об обработке тел запросов большого размера см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Если тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, находящееся в пределах этого предела, в WAF для проверки.

  • Для Application Load Balancer и AppSync предел фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access предел по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить этот предел для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки превышения размера:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Если тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, находящееся в пределах этого предела, в WAF для проверки.

  • Для Application Load Balancer и AppSync предел фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access предел по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить этот предел для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения об обработке тел запросов большого размера см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF будет сопоставлять ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах, или в значениях, или и в том, и в другом. Чтобы потребовать совпадения в ключах и значениях, используйте логический оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие параметры:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает предел для типа ресурса. Если тело веб-запроса больше предела, базовый хост-сервис пересылает только содержимое, находящееся в пределах этого предела, в WAF для проверки.

  • Для Application Load Balancer и AppSync предел фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access предел по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить этот предел для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Доступны следующие параметры обработки превышения размера:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запросов. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого заголовка большого размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All , IncludedHeaders или ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется совпадение в ключах, в значениях или в обоих случаях. Чтобы требовать соответствия ключам и значениям, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое - значения.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файла cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All , IncludedCookies или ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для сопоставления с критериями проверки правил. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах, а совпадение было найдено в значениях. Требуется совпадение в ключах, в значениях или в обоих случаях. Чтобы требовать соответствия ключам и значениям, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое - значения.

OversizeHandling -> (строка)

Что должен делать WAF, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки переразмера следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве поля для сопоставления компонента в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмера следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и записывает этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который нужно присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и записывает этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который нужно присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для недействительного JSON. Когда анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. раздел JSON body в Руководстве разработчика WAF .

ComparisonOperator -> (string)

Оператор, используемый для сравнения части запроса с параметром размера.

Size -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Текстовые преобразования в Руководстве разработчика WAF.

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и сопоставляет веб-запросы на основе кода страны. Правило гео-совпадения помечает каждый запрос, который проверяет, независимо от того, находит ли оно совпадение.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор сам по себе и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes.
  • В противном случае настройте правило гео-совпадения с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил соответствия меткам для запуска после правила гео-совпадения и настройте их для соответствия географическим меткам и обработки запросов по мере необходимости.

WAF помечает запросы, используя коды стран и регионов альфа-2 из международного стандарта ISO 3166 Международной организации по стандартизации (ISO). WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы укажете его, адрес в гео-совпадении ForwardedIPConfig.

Если вы используете источник веб-запроса, форматы меток: awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code>.

Если вы используете переадресованный IP-адрес, форматы меток: awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code>.

Для получения дополнительной информации см. Оператор правила географического соответствия в руководстве разработчика WAF.

CountryCodes -> (list)

Массив двухсимвольных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ], из кодов стран альфа-2 ISO международного стандарта ISO 3166.

Когда вы используете оператор гео-совпадения только для меток региона и страны, которые он добавляет к запросам, вам все равно придется предоставить код страны для оценки правила. В этом случае вы настраиваете правило только для подсчета соответствующих запросов, но оно все равно будет генерировать ведение журнала и метрики подсчета для любых совпадений. Вы можете уменьшить ведение журнала и метрики, которые производит правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, который будет использоваться для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос несоответствующим оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правила, используемый для запуска правил, которые определены в группе правил (RuleGroup). Чтобы использовать это, создайте группу правил с вашими правилами, затем предоставьте ARN группы правил в этом операторе.

Нельзя вкладывать RuleGroupReferenceStatement , например, для использования внутри NotStatement или OrStatement . Нельзя использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

ARN -> (string)

Имя ресурса Amazon (ARN) сущности.

ExcludedRules -> (list)

Правила в ссылающейся группе правил, действия которых установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любое допустимое значение действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любое допустимое значение действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

RuleActionOverrides -> (list)

Параметры действий для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления группой правил вашим веб-трафиком.

(structure)

Настройка действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления группой правил вашим веб-трафиком.

Name -> (string)

Имя правила для переопределения.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure)

Переопределение действия для использования вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF блокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылается на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено на блокировку. Чтобы сделать это, сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии веб-ACL по умолчанию BlockAction настройке, вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Можно указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Сведения об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Сведения о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Сведения о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Сведения о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Сведения об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Оператор правила, используемый для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который указывает адреса, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Чтобы создать IP-набор, см. CreateIPSet.

Каждый оператор правила IP-набора ссылается на IP-набор. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет вам использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Имя ресурса Amazon (ARN) IPSet, на который ссылается этот оператор.

IPSetForwardedIPConfig -> (structure)

Настройка для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, который следует использовать для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Состояние соответствия, которое необходимо присвоить веб-запросу, если запрос не содержит действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующее поведение при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Position -> (string)

Позиция в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные идентифицируют прокси-серверы, через которые прошел запрос.

Параметры для этой настройки следующие:

  • FIRST - Проверить первый IP-адрес в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST - Проверить последний IP-адрес в списке IP-адресов в заголовке.
  • ANY - Проверить все IP-адреса в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (structure)

Оператор правила, используемый для поиска соответствий в компонентах веб-запроса с помощью регулярных выражений. Чтобы использовать это, создайте RegexPatternSet, который указывает выражения, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Веб-запрос соответствует оператору правила набора шаблонов, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов regex, см. CreateRegexPatternSet.

Каждый оператор правила набора шаблонов regex ссылается на набор шаблонов regex. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые ссылаются на него.

ARN -> (string)

Имя ресурса Amazon (ARN) набора RegexPatternSet, на который ссылается этот оператор.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите проверить с помощью WAF.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте ограничение CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте ограничение CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте ограничение CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF будет сопоставлять ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение в значениях. Для этого требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте ограничение CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте Headers , чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка большого размера в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders , либо ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется совпадение в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверяйте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файла cookie большого размера в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies , либо ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется совпадение в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверяйте доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве поля для сопоставления компонентов в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверяйте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только со строковым совпадением ByteMatchStatement , где PositionalConstraint установлено в EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо назначить веб-запросу, если у запроса нет отпечатка JA3.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот вариант только со строковым совпадением ByteMatchStatement , где PositionalConstraint установлено в EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов ACL веб-сайта. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо назначить веб-запросу, если у запроса нет отпечатка JA4.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте UriFragment , чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI большого размера в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

TextTransformations -> (list)

Преобразования текста исключают некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования для указанного содержимого, начиная с самой низкой настройки приоритета, а затем использует преобразованное содержимое компонента.

(structure)

Преобразования текста исключают некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе «Преобразования текста» в Руководстве разработчика WAF.

RateBasedStatement -> (structure)

Правило на основе скорости подсчитывает входящие запросы и ограничивает запросы по скорости, когда они поступают со слишком высокой скоростью. Правило классифицирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования, а также подсчитывает и ограничивает скорость запросов для каждого экземпляра.

Примечание

Если вы измените какие-либо из этих настроек в используемом в настоящее время правиле, изменение сбрасывает счетчики ограничения скорости правила. Это может приостановить действия правила по ограничению скорости на срок до одной минуты.

Вы можете указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Вы также можете указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie.

Каждый уникальный набор значений для указанных вами ключей агрегирования является отдельным экземпляром агрегирования, при этом значение из каждого ключа способствует определению экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило будет создавать разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого из них. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1: количество 3
    • IP-адрес 127.0.0.0: количество 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • Метод HTTP POST: количество 2
    • Метод HTTP GET: количество 2
  • Если критерием агрегирования являются IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут способствовать комбинированному экземпляру агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1, метод HTTP POST: количество 1
    • IP-адрес 10.1.1.1, метод HTTP GET: количество 2
    • IP-адрес 127.0.0.0, метод HTTP POST: количество 1

Для любой n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по скорости отдельно.

При необходимости вы можете вложить другой оператор внутри оператора на основе скорости, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало скорость только запросов, соответствующих вложенному оператору. Вы можете использовать этот вложенный оператор сужения области действия вместе со спецификациями ключа агрегирования или просто подсчитывать и ограничивать скорость всех запросов, соответствующих оператору сужения области действия, без дополнительного агрегирования. Когда вы выбираете только управление всеми запросами, соответствующими оператору сужения области действия, экземпляр агрегирования является единственным для правила.

Вы не можете вкладывать RateBasedStatement внутри другого оператора, например, внутри NotStatement или OrStatement. Вы можете определить RateBasedStatement внутри списка ACL и внутри группы правил.

Для получения дополнительной информации об параметрах см. раздел «Ограничение скорости веб-запросов с использованием правил на основе скорости» в Руководстве разработчика WAF.

Если вы выполняете агрегирование только по отдельному IP-адресу или переадресованному IP-адресу, вы можете получить список IP-адресов, для которых WAF в настоящее время ограничивает скорость для правила, с помощью вызова API GetRateBasedStatementManagedKeys. Эта опция недоступна для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе скорости, которое вы используете. Например, если вы предоставите одни и те же настройки правила на основе скорости в двух списках ACL, каждый из двух операторов правила представляет отдельный экземпляр правила на основе скорости и получает собственное отслеживание и управление WAF. Если вы определяете правило на основе скорости внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе скорости, который получает собственное отслеживание и управление WAF.

Limit -> (long)

Предел запросов в течение указанного окна оценки для одного экземпляра агрегирования для правила на основе скорости. Если оператор на основе скорости включает ScopeDownStatement, этот предел применяется только к запросам, соответствующим оператору.

Примеры:

  • Если вы выполняете агрегирование только по IP-адресу, это ограничение на запросы с любого отдельного IP-адреса.
  • Если вы выполняете агрегирование по методу HTTP и имени аргумента запроса «city», то это ограничение на запросы для любой отдельной пары method, city.

EvaluationWindowSec -> (long)

Количество времени в секундах, которое WAF должен включать в свои подсчеты запросов, заглядывая назад с текущего времени. Например, при настройке 120, когда WAF проверяет скорость, он подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет скорость, а определяет, как далеко назад он смотрит при каждой проверке. WAF проверяет скорость примерно каждые 10 секунд.

По умолчанию: 300 (5 minutes)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.
  • CONSTANT - Подсчитывать и ограничивать скорость запросов, соответствующих оператору сужения области действия правила на основе скорости. С этим параметром подсчитанные запросы не агрегируются дальше. Оператор сужения области действия является единственной используемой спецификацией. Когда количество всех запросов, удовлетворяющих оператору сужения области действия, превышает лимит, WAF применяет действие правила ко всем запросам, удовлетворяющим оператору сужения области действия. С этим параметром необходимо настроить свойство ScopeDownStatement.
  • CUSTOM_KEYS - Агрегировать количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. С этим параметром необходимо указать ключи агрегирования в свойстве CustomKeys. Чтобы выполнить агрегирование только по IP-адресу или только по переадресованному IP-адресу, не используйте пользовательские ключи. Вместо этого установите тип ключа агрегирования в IP или FORWARDED_IP.
  • FORWARDED_IP - Агрегировать количество запросов по первому IP-адресу в заголовке HTTP. С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig. Чтобы выполнить агрегирование по комбинации переадресованного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS.
  • IP - Агрегировать количество запросов по IP-адресу от источника веб-запроса. Чтобы выполнить агрегирование по комбинации IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS.

( … recursive … )ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это требуется, если вы указываете переадресованный IP-адрес в настройках ключа агрегирования правила.

HeaderName -> (string)

Имя заголовка HTTP для использования IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для этого значение X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Состояние соответствия, присваиваемое веб-запросу, если запрос не содержит допустимого IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие типы резервного поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

CustomKeys -> (list)

Задает агрегированные ключи для использования в правиле на основе скорости.

(структура)

Задает один пользовательский агрегированный ключ для правила на основе скорости.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегации, исключаются из оценки и обработки правил на основе скорости.

Header -> (структура)

Используйте значение заголовка в запросе в качестве агрегированного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегации. Если вы используете один заголовок в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя заголовка для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

Cookie -> (структура)

Используйте значение cookie в запросе в качестве агрегированного ключа. Каждое отдельное значение в cookie вносит вклад в экземпляр агрегации. Если вы используете один cookie в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя cookie для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

QueryArgument -> (structure)

Используйте указанный аргумент запроса в качестве агрегированного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегации. Если вы используете один аргумент запроса в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя аргумента запроса для использования.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

QueryString -> (structure)

Используйте строку запроса запроса в качестве агрегированного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегации. Если вы используете только строку запроса в качестве пользовательского ключа, то каждая строка полностью определяет экземпляр агрегации.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

HTTPMethod -> (structure)

Используйте HTTP-метод запроса в качестве агрегированного ключа. Каждый отдельный HTTP-метод вносит вклад в экземпляр агрегации. Если вы используете только HTTP-метод в качестве пользовательского ключа, то каждый метод полностью определяет экземпляр агрегации.

ForwardedIP -> (structure)

Используйте первый IP-адрес в заголовке HTTP в качестве агрегированного ключа. Каждый отдельный переадресованный IP-адрес вносит вклад в экземпляр агрегации.

When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying FORWARDED_IP in your rate-based statement’s AggregateKeyType .

With this option, you must specify the header to use in the rate-based rule’s ForwardedIPConfig property.

IP -> (structure)

Используйте исходный IP-адрес запроса в качестве агрегированного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегации.

When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the IP address by specifying IP in your rate-based statement’s AggregateKeyType .

LabelNamespace -> (structure)

Используйте указанное пространство имен метки в качестве агрегированного ключа. Каждое отдельное полное имя метки, имеющее указанное пространство имен метки, вносит вклад в экземпляр агрегации. Если вы используете только одно пространство имен метки в качестве пользовательского ключа, то каждое имя метки полностью определяет экземпляр агрегации.

Это использует только метки, которые были добавлены в запрос правилами, которые оцениваются перед этим правилом на основе скорости в веб-ACL.

For information about label namespaces and names, see Label syntax and naming requirements in the WAF Developer Guide .

Namespace -> (string)

Пространство имен для использования для агрегации.

UriPath -> (structure)

Используйте путь URI запроса в качестве агрегированного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегации. Если вы используете только путь URI в качестве пользовательского ключа, то каждый путь URI полностью определяет экземпляр агрегации.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования для указанного контента, начиная с наименьшей настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Текстовые преобразования устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не должны быть последовательными, но должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

JA3Fingerprint -> (structure)

Используйте отпечаток JA3 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA3 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Состояние сопоставления, которое будет присвоено веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос несоответствующим оператору правила.

JA4Fingerprint -> (structure)

Использовать отпечаток пальца JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток пальца JA4 в качестве пользовательского ключа, каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Состояние соответствия для присвоения веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

AndStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правил с логикой AND. Вы предоставляете более одного оператора в AndStatement .

Statements -> (list)

Операторы для объединения с логикой AND. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

OrStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правил с логикой OR. Вы предоставляете более одного оператора в OrStatement .

Statements -> (list)

Операторы для объединения с логикой OR. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

NotStatement -> (structure)

Логический оператор правила, используемый для отрицания результатов другого оператора правила. Вы предоставляете один оператор в NotStatement .

( … recursive … )

ManagedRuleGroupStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом операторе. Вы можете получить необходимые имена, вызвав ListAvailableManagedRuleGroups .

Вы не можете вложить ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control для предотвращения захвата учетных записей (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control для предотвращения мошенничества при создании учетных записей (ACFP) AWSManagedRulesACFPRuleSet . Для получения дополнительной информации см. Цены WAF .

VendorName -> (string)

Имя поставщика управляемой группы правил. Вы используете это вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Вы используете это вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия управляемой группы правил для использования. Если вы укажете это, настройка версии будет зафиксирована до тех пор, пока вы ее не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика при обновлении поставщиком настроек управляемой группы правил.

ExcludedRules -> (list)

Правила в ссылочной группе правил, действия которых установлены в Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

(structure)

Указывает отдельное правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

( … recursive … )ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил для предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезной нагрузке запроса создания учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил для предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезной нагрузке запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

(structure)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил для предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезной нагрузке запроса создания учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил для предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезной нагрузке запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

Например, спецификации см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запросов для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запросов для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

То, как вы это указываете, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя - /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя - username1

PasswordField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запросов для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

То, как вы это указываете, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля - /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля - password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил Bot Control. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Для получения информации об использовании управляемой группы правил Bot Control см. Группа правил WAF Bot Control и WAF Bot Control в Руководстве разработчика WAF .

InspectionLevel -> (string)

Уровень проверки для использования для группы правил Bot Control. Общий уровень является наименее затратным. Целевой уровень включает в себя все общие правила уровня и добавляет правила с более продвинутыми критериями проверки. Для получения подробной информации см. Группа правил WAF Bot Control в Руководстве разработчика WAF .

EnableMachineLearning -> (boolean)

Применяется только к целевому уровню проверки.

Определяет, следует ли использовать машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение требуется для правил Bot Control TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют наличие аномального поведения, которое может указывать на распределенную, координированную активность ботов.

Для получения дополнительной информации об этом выборе см. список этих правил в таблице в разделе Листинг правил Bot Control в Руководстве разработчика WAF .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетных записей (ATP), AWSManagedRulesATPRuleSet . Используйте это для предоставления информации о запросе входа в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это также для предоставления информации о том, как ваш дистрибутив реагирует на запросы входа.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. группу правил предотвращения захвата учетной записи WAF Fraud Control (ATP) и предотвращение захвата учетной записи WAF Fraud Control (ATP) в Руководстве разработчика WAF .

LoginPath -> (string)

Путь к конечной точке входа в вашу программу. Например, для URL https://example.com/web/login , вы предоставите путь /web/login . Пути входа, начинающиеся с указанного вами пути, считаются совпадением. Например /web/login соответствует путям входа /web/login , /web/login/ , /web/loginPage и /web/login/thisPage , но не соответствует пути входа /home/web/login или /website/login .

Группа правил проверяет только HTTP POST запросы к указанной вами конечной точке входа.

RequestInspection -> (structure)

Критерии для проверки запросов входа, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки входа: JSON или закодированный в форму.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя - /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя - username1

Identifier -> (string)

Название поля имени пользователя.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) documentation JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя - /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя - username1

PasswordField -> (structure)

Название поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля - /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля - password1 .

Identifier -> (string)

Название поля пароля.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля - /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля - password1 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы входа, используемые группой правил ATP для отслеживания показателей отказов входа.

Примечание

Проверка ответа доступна только в веб-ACL, защищающих дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках входа клиента, ведя учет успешных и неудачных попыток для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от сеансов клиентов и IP-адресов, у которых было слишком много неудачных попыток входа за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

JSON example: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

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

JSON example: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Название заголовка, с которым нужно выполнить сопоставление. Название должно точно совпадать, включая регистр.

JSON example: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, указывающие на успешный вход или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON examples: "SuccessValues": [ "LoginPassed", "Successful login" ] and "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, указывающие на неудачный вход или попытку создания учетной записи. Чтобы считаться неудачей, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON examples: "FailureValues": [ "LoginFailed", "Failed login" ] and "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, указывающие на успешный вход или попытку создания учетной записи. Чтобы считаться успешным, строка может быть в любом месте тела и должна точно совпадать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

JSON examples: "SuccessStrings": [ "Login successful" ] and "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, указывающие на неудачный вход или попытку создания учетной записи. Чтобы считаться неудачей, строка может быть в любом месте тела и должна точно совпадать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

JSON example: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения, с которым нужно выполнить сопоставление в JSON. Идентификатор должен точно совпадать, включая регистр.

JSON examples: "Identifier": [ "/login/success" ] and "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, указывающие на успешный вход или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON example: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, указывающие на неудачный вход или попытку создания учетной записи. Чтобы считаться неудачей, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

JSON example: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы входа.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетной записи (ACFP), AWSManagedRulesACFPRuleSet. Используйте это для предоставления информации о запросе на создание учетной записи в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы предоставить информацию о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. WAF Fraud Control account creation fraud prevention (ACFP) rule group и WAF Fraud Control account creation fraud prevention (ACFP) в Руководстве разработчика WAF.

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница вашего веб-сайта, которая принимает заполненную форму регистрации нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL https://example.com/web/newaccount, вы предоставите путь /web/newaccount. Пути к страницам создания учетных записей, начинающиеся с предоставленного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетных записей /web/newaccount, /web/newaccount/, /web/newaccountPage и /web/newaccount/thisPage, но не соответствует пути /home/web/newaccount или /website/newaccount.

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница вашего веб-сайта, на которой форма регистрации представляется новым пользователям.

Примечание

Эта страница должна принимать GET запросы text/html.

Например, для URL https://example.com/web/registration, вы предоставите путь /web/registration. Пути к страницам регистрации, начинающиеся с предоставленного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration, /web/registration/, /web/registrationPage и /web/registration/thisPage, но не соответствует пути /home/web/registration или /website/registration.

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки создания учетной записи: JSON или закодированная форма.

UsernameField -> (structure)

Имя поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя: /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем username1 , спецификация поля имени пользователя: username1

Identifier -> (string)

Имя поля имени пользователя.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя: /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем username1 , спецификация поля имени пользователя: username1

PasswordField -> (structure)

Имя поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля: /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем password1 , спецификация поля пароля: password1 .

Identifier -> (string)

Имя поля пароля.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля: /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем password1 , спецификация поля пароля: password1 .

EmailField -> (structure)

Имя поля в полезной нагрузке запроса, содержащего адрес электронной почты вашего клиента.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты: /form/email .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем email1 , спецификация поля электронной почты: email1 .

Identifier -> (string)

Имя поля электронной почты.

То, как вы это укажете, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты: /form/email .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементом input с именем email1 , спецификация поля электронной почты: email1 .

PhoneNumberFields -> (list)

Имена полей в полезной нагрузке запроса, содержащих основной номер телефона вашего клиента.

Упорядочите поля номера телефона в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

То, как вы укажете поля номера телефона, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами input с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

(structure)

Имя поля в полезной нагрузке запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя одного поля основного номера телефона.

То, как вы укажете поля номера телефона, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами input с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

AddressFields -> (list)

Имена полей в полезной нагрузке запроса, содержащих основной физический адрес вашего клиента.

Упорядочите поля адреса в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

То, как вы укажете поля адреса, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами input с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

(structure)

Имя поля в полезной нагрузке запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя одного поля основного адреса.

То, как вы укажете поля адреса, зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезной нагрузки с кодировкой формы используйте имена форм HTML. Например, для HTML-формы с элементами input с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетной записи.

Примечание

Проверка ответов доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках создания учетной записи клиентом, подсчитывая количество успешных и неудачных попыток с каждого IP-адреса и клиентской сессии. Используя эту информацию, группа правил помечает и смягчает запросы от клиентских сессий и IP-адресов, для которых было слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (структура)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (список)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(целое число)

FailureCodes -> (список)

Коды состояния в ответе, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, код состояния ответа должен соответствовать одному из них. Каждый код должен быть уникальным среди кодов состояния успеха и сбоя.

Пример JSON: "FailureCodes": [ 400, 404 ]

(целое число)

Header -> (структура)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (строка)

Имя заголовка, с которым необходимо выполнить сопоставление. Имя должно точно совпадать, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (список)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(строка)

FailureValues -> (список)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(строка)

BodyContains -> (структура)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (список)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(строка)

FailureStrings -> (список)

Строки в теле ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(строка)

Json -> (структура)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (строка)

Идентификатор значения, с которым необходимо выполнить сопоставление в JSON. Идентификатор должен точно совпадать, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (список)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(строка)

FailureValues -> (список)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, значение должно точно совпадать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(строка)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (список)

Настройки действий, используемые вместо действий правила, настроенных внутри группы правил. Вы указываете одну переопределяющую настройку для каждого правила, действие которого вы хотите изменить.

Примечание

Убедитесь в правильности названий правил в ваших переопределениях. Если вы укажете название правила, которое не соответствует названию какого-либо правила в группе правил, WAF не вернет ошибку и не применит переопределяющую настройку.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count и затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

(structure)

Настройка действия, используемая вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Убедитесь в правильности названий правил в ваших переопределениях. Если вы укажете название правила, которое не соответствует названию какого-либо правила в группе правил, WAF не вернет ошибку и не применит переопределяющую настройку.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count и затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

Name -> (string)

Название правила для переопределения.

Примечание

Убедитесь в правильности названий правил в ваших переопределениях. Если вы укажете название правила, которое не соответствует названию какого-либо правила в группе правил, WAF не вернет ошибку и не применит переопределяющую настройку.

ActionToUse -> (structure)

Действие переопределения, которое следует использовать вместо настроенного действия правила в группе правил.

Block -> (structure)

Инструктирует WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide .

ResponseCode -> (integer)

Код состояния HTTP, который необходимо вернуть клиенту.

For a list of status codes that you can use in your custom responses, see Supported status codes for custom response in the WAF Developer Guide .

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия по умолчанию веб-ACL, которое настроено на блокировку. Чтобы сделать это, сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии по умолчанию веб-ACL в настройке BlockAction, вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP, которые необходимо использовать в ответе. Вы можете указать любое имя заголовка, кроме content-type. Дублирование имен заголовков не допускается.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

For custom request header insertion, when WAF inserts the header into the request, it prefixes this name x-amzn-waf- , to avoid confusion with the headers that are already in the request. For example, for the header name sample , WAF inserts the header x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Инструктирует WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

For custom request header insertion, when WAF inserts the header into the request, it prefixes this name x-amzn-waf- , to avoid confusion with the headers that are already in the request. For example, for the header name sample , WAF inserts the header x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Инструктирует WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

For custom request header insertion, when WAF inserts the header into the request, it prefixes this name x-amzn-waf- , to avoid confusion with the headers that are already in the request. For example, for the header name sample , WAF inserts the header x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Инструктирует WAF запустить проверку CAPTCHA против веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

For custom request header insertion, when WAF inserts the header into the request, it prefixes this name x-amzn-waf- , to avoid confusion with the headers that are already in the request. For example, for the header name sample , WAF inserts the header x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Инструктирует WAF запустить проверку Challenge против веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

For information about customizing web requests and responses, see Customizing web requests and responses in WAF in the WAF Developer Guide .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

For information about the limits on count and size for custom request and response settings, see WAF quotas in the WAF Developer Guide .

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

For custom request header insertion, when WAF inserts the header into the request, it prefixes this name x-amzn-waf- , to avoid confusion with the headers that are already in the request. For example, for the header name sample , WAF inserts the header x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

LabelMatchStatement -> (structure)

Оператор правила для сопоставления с метками, которые были добавлены в веб-запрос правилами, которые уже выполнялись в веб-ACL.

Оператор сопоставления меток предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или все полностью квалифицированное имя метки, которое было добавлено в веб-запрос. Полностью квалифицированные метки имеют префикс, необязательные пространства имен и имя метки. Префикс идентифицирует группу правил или контекст веб-ACL правила, которое добавило метку. Если вы не предоставите полностью квалифицированное имя в своей строке сопоставления меток, WAF выполнит поиск меток, которые были добавлены в том же контексте, что и оператор сопоставления меток.

Scope -> (string)

Укажите, хотите ли вы сопоставлять, используя имя метки, или только пространство имен.

Key -> (string)

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от настройки Scope оператора сопоставления:

  • Если Scope указывает LABEL, то эта спецификация должна включать имя и может включать любое количество предыдущих спецификаций пространства имен и префикс до предоставления полного квалифицированного имени метки.
  • Если Scope указывает NAMESPACE, то эта спецификация может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен метки из группы правил или веб-ACL, где метка создается.

Метки чувствительны к регистру, и компоненты метки должны быть разделены двоеточием, например NS1:NS2:name.

RegexMatchStatement -> (structure)

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

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может быть длиной до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковая имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса сразу следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. в конфигурации объекта Body .

OversizeHandling -> (string)

Что WAF должен делать, если тело запроса больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера:

  • CONTINUE — проверьте доступное содержимое тела запроса в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса сразу следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. в конфигурации объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Необходимо указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Необходимо указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие в значениях. Требуется, чтобы соответствие было найдено в ключах или значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие параметры:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF синтаксический анализ не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело запроса больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера:

  • CONTINUE — проверьте доступное содержимое тела запроса в обычном режиме в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка большого размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков, подлежащих проверке в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверьте все заголовки.

IncludedHeaders -> (список)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах, а соответствие — в значениях. Для этого требуется, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил соответствия: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмерных данных следующие:

  • CONTINUE — проверка доступных заголовков в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

Cookies -> (структура)

Проверка файлов cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах, а соответствие — в значениях. Для этого требуется, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил соответствия: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки переразмерных данных следующие:

  • CONTINUE — проверка доступных файлов cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонента в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия, без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки переразмерных данных следующие:

  • CONTINUE — проверка доступных заголовков в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе Поля журналов в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе Поля журналов в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий утверждению правила.

Если этот параметр не указан, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide .

TextTransformations -> (list)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. Text transformations are used in rule match statements, to transform the FieldToMatch request component before inspecting it, and they’re used in rate-based rule statements, to transform request components before using them as custom aggregation keys. If you specify one or more transformations to apply, WAF performs all transformations on the specified content, starting from the lowest priority setting, and then uses the transformed component contents.

(structure)

Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.

Priority -> (integer)

Sets the relative processing order for multiple transformations. WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don’t need to be consecutive, but they must all be different.

Type -> (string)

For detailed descriptions of each of the transformation types, see Text transformations in the WAF Developer Guide .

NotStatement -> (structure)

A logical rule statement used to negate the results of another rule statement. You provide one Statement within the NotStatement .

Statement -> (structure)

The statement to negate. You can use any statement that can be nested.

ByteMatchStatement -> (structure)

A rule statement that defines a string match search for WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the WAF console and the developer guide, this is called a string match statement.

SearchString -> (blob)

A string value that you want WAF to search for. WAF searches only in the part of web requests that you designate for inspection in FieldToMatch . The maximum length of the value is 200 bytes.

Valid values depend on the component that you specify for inspection in FieldToMatch :

  • Method : The HTTP method that you want WAF to search for. This indicates the type of operation specified in the request.
  • UriPath : The value that you want WAF to search for in the URI path, for example, /images/daily-ad.jpg .
  • JA3Fingerprint : Available for use with Amazon CloudFront distributions and Application Load Balancers. Match against the request’s JA3 fingerprint. The JA3 fingerprint is a 32-character hash derived from the TLS Client Hello of an incoming request. This fingerprint serves as a unique identifier for the client’s TLS configuration. You can use this choice only with a string match ByteMatchStatement with the PositionalConstraint set to EXACTLY . You can obtain the JA3 fingerprint for client requests from the web ACL logs. If WAF is able to calculate the fingerprint, it includes it in the logs. For information about the logging fields, see Log fields in the WAF Developer Guide .
  • HeaderOrder : The list of header names to match for. WAF creates a string that contains the ordered list of header names, from the headers in the web request, and then matches against that string.

If SearchString includes alphabetic characters A-Z and a-z, note that the value is case sensitive.

If you’re using the WAF API

Specify a base64-encoded version of the value. The maximum length of the value before you base64-encode it is 200 bytes.

For example, suppose the value of Type is HEADER and the value of Data is User-Agent . If you want to search the User-Agent header for the value BadBot , you base64-encode BadBot using MIME base64-encoding and include the resulting value, QmFkQm90 , in the value of SearchString .

If you’re using the CLI or one of the Amazon Web Services SDKs

The value that you want WAF to search for. The SDK automatically base64 encodes the value.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете отфильтровать и проверить все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (структура)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверить тело запроса как обычный текст. Тело запроса сразу следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов, превышающие размер, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки больших размеров с настройками действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса сразу следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов, превышающие размер, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Соответствует всем элементам. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Соответствует только указанным путям включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы соответствие было найдено в ключах, а соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет текстовые преобразования и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF выполняет синтаксический анализ и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недействительного JSON. Когда синтаксический анализ успешен, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки больших размеров с настройками действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers , чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка большого размера в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для определения подмножества заголовков, которые необходимо проверить в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders или ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков, которые необходимо сопоставить с критериями проверки правила. При указании ALL WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах, значениях или и в том и другом. Чтобы потребовать совпадения в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie большого размера в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для определения подмножества файлов cookie, которые необходимо проверить в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies или ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie, которые необходимо проверить в соответствии с критериями проверки правила. При указании ALL WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах, значениях или и в том и другом. Чтобы потребовать совпадения в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF следует делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента сопоставления полей при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавления пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (строка)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Этот выбор можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint , установленным в значение EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе Поля журналов в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не содержит отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, у которого достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Этот выбор можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint , установленным в значение EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе Поля журналов в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить любые будущие запросы с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который необходимо присвоить веб-запросу, если запрос не содержит отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

UriFragment -> (структура)

Проверка фрагментов URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment , чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI большого размера в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе Тело JSON в Руководстве разработчика WAF .

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

PositionalConstraint -> (строка)

Область внутри части веб-запроса, в которой вы хотите, чтобы WAF искал SearchString. Допустимые значения включают следующее:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString, но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString, а SearchString должен содержать только буквенно-цифровые символы или подчеркивание (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что верно следующее:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или подчеркивания (_). Примеры включают значение заголовка и ;BadBot.
  • SearchString находится в конце указанной части веб-запроса или за ним следует символ, отличный от буквенно-цифрового символа или подчеркивания (_), например, BadBot; и -BadBot;.
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString.

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (структура)

Инструкция по правилу, которое проверяет вредоносный код SQL. Злоумышленники вставляют вредоносный код SQL в веб-запросы, чтобы делать такие вещи, как изменение вашей базы данных или извлечение данных из нее.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью настройки Headers FieldToMatch.

Name -> (строка)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (строка)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (структура)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body.

OversizeHandling -> (строка)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Вы можете комбинировать настройки MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (структура)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих совпадений шаблонов с критериями проверки правил.

All -> (структура)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (список)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(строка)

MatchScope -> (строка)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение в значениях. Требуется найти совпадение в ключах или значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (строка)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF parsing не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. body JSON в Руководстве разработчика WAF.

OversizeHandling -> (строка)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки превышения размера следующие:

  • CONTINUE - Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Вы можете комбинировать настройки MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запросов. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для определения подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Требуется найти соответствие в ключах или значениях, или в обоих случаях. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF следует делать, если заголовки запроса больше или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, когда они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных заголовков в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для определения подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует нахождения соответствия в ключах и нахождения соответствия в значениях. Требуется найти соответствие в ключах или значениях, или в обоих случаях. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил соответствия, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (строка)

Что WAF следует делать, если файлы cookie запроса больше или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или в общей сложности 200 файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных файлов cookie в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве поля для сопоставления компонента при проверке. WAF разделяет имена заголовков в строке с использованием двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF следует делать, если заголовки запроса больше или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, когда они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки переразмерности следующие:

  • CONTINUE - Обычная проверка доступных заголовков в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement, в котором PositionalConstraint имеет значение EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях журнала см. раздел Поля журнала в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement, в котором PositionalConstraint имеет значение EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях журнала см. раздел Поля журнала в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие варианты поведения при отказе:

  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

UriFragment -> (структура)

Проверка фрагментов URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий утверждению правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide .

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(structure)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Text transformations в WAF Developer Guide .

SensitivityLevel -> (string)

Чувствительность, которую вы хотите, чтобы WAF использовал для проверки на атаки путем внедрения SQL-кода.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Информацию об идентификации и смягчении ложных срабатываний см. в Testing and tuning в WAF Developer Guide .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак путем внедрения SQL-кода или имеют низкую толерантность к ложным срабатываниям.

Default: LOW

XssMatchStatement -> (structure)

Инструкция по применению правил для защиты от атак типа межсайтового скриптинга (XSS). При атаках XSS злоумышленник использует уязвимости на доверенном веб-сайте для внедрения вредоносных клиентских сценариев в другие легитимные веб-браузеры.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Эта настройка не чувствительна к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

В качестве альтернативы можно отфильтровать и проверить все заголовки с помощью настройки Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это та часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg .

QueryString -> (структура)

Проверить строку запроса. Это та часть URL-адреса, которая появляется после символа ? , если таковой имеется.

Body -> (структура)

Проверить тело запроса как обычный текст. Тело запроса непосредственно следует за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает в WAF для проверки только содержимое, находящееся в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в web ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает в WAF для проверки только содержимое, находящееся в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в web ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки переразмеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

Вы можете сочетать параметры MATCH или NO_MATCH для обработки переразмеров с параметрами действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (структура)

Проверить тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает в WAF для проверки только содержимое, находящееся в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в web ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (структура)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Необходимо указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Необходимо указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если указать ALL , WAF выполняет сопоставление с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или в значениях, или в обоих. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое - значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет текстовые преобразования и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может пройти даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем может проверить WAF.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает в WAF для проверки только содержимое, находящееся в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксируется на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в web ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки переразмеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH - Считать веб-запрос соответствующим заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим заявлению правила.

Вы можете сочетать параметры MATCH или NO_MATCH для обработки переразмеров с параметрами действий правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запросов. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers , чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка большого размера в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders , либо ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правил. При указании ALL WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадение в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файла cookie большого размера в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies , либо ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правил. При указании ALL WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и чтобы совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадение в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie в запросе больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или в общей сложности 200 файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве поля для сопоставления компонента при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавления пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или в общей сложности 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 представляет собой 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, назначаемый веб-запросу, если запрос не имеет отпечатка JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 представляет собой 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, назначаемый веб-запросу, если запрос не имеет отпечатка JA4.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment , чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI большого размера в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного контента, начиная с настройки наименьшего приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе «Преобразования текста» в Руководстве разработчика WAF .

SizeConstraintStatement -> (structure)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, например больше (>) или меньше (<). Например, вы можете использовать оператор ограничения размера для поиска строк запроса, длина которых превышает 100 байт.

Если вы настроите WAF для проверки тела запроса, WAF проверяет только количество байтов в теле до предела для веб-ACL и типа защищенного ресурса. Если вы знаете, что тело запроса для ваших веб-запросов никогда не должно превышать предел проверки, вы можете использовать оператор ограничения размера для блокировки запросов, размер тела которых больше. Для получения дополнительной информации об ограничениях проверки см. настройки Body и JsonBody для типа данных FieldToMatch .

Если вы выберете URI для значения Часть запроса для фильтрации, косая черта (/) в URI считается одним символом. Например, URI /logo.jpg состоит из девяти символов.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Альтернативно, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки большого размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами действий вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить HTTP-метод. Метод указывает тип операции, которую запрос запрашивает у источника для выполнения.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое утверждение AND , чтобы объединить два правила сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может пройти даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки большого размера следующие:

  • CONTINUE - Проверять доступное содержимое тела в обычном режиме, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами действий вашего правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, размер которого превышает допустимый, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL, WAF проверит как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Требуется соответствие в ключах, значениях или в обоих случаях. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файла cookie, размер которого превышает допустимый, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если вы укажете ALL, WAF проверит как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Требуется соответствие в ключах, значениях или в обоих случаях. Чтобы требовать соответствия в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента поля для сопоставления в своей проверке. WAF разделяет имена заголовков в строке с помощью двоеточий и без добавленных пробелов, например, host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement, где PositionalConstraint установлено в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит отпечатка JA3.

Вы можете указать следующие варианты резервного поведения:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement, где PositionalConstraint установлено в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит отпечатка JA4.

Вы можете указать следующие варианты резервного поведения:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверка фрагментов URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI, размер которого превышает допустимый, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

ComparisonOperator -> (string)

Оператор для сравнения части запроса с настройкой размера.

Size -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Текстовые преобразования устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы попытаться обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета до самого высокого, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и который сопоставляет веб-запросы на основе кода страны. Правило сопоставления с географическими данными помечает каждый запрос, который он проверяет, независимо от того, находит ли он совпадение.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор сам по себе и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes .
  • В противном случае настройте свое правило сопоставления с географическими данными с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил сопоставления меток для запуска после правила сопоставления с географическими данными и настройте их для сопоставления с географическими метками и обработки запросов по мере необходимости.

WAF помечает запросы, используя коды стран и регионов alpha-2 из международного стандарта ISO 3166 Международной организации по стандартизации (ISO). WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы укажете его, адрес в сопоставлении с географическими данными ForwardedIPConfig .

Если вы используете источник веб-запроса, форматы меток: awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code> .

Если вы используете переадресованный IP-адрес, форматы меток: awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code> .

Дополнительные сведения см. в разделе Geographic match rule statement в WAF Developer Guide .

CountryCodes -> (list)

Массив двухбуквенных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ] , из кодов стран alpha-2 ISO международного стандарта ISO 3166.

Когда вы используете оператор сопоставления с географическими данными только для меток региона и страны, которые он добавляет к запросам, вы все равно должны указать код страны, чтобы правило было оценено. В этом случае вы настраиваете правило только для подсчета совпадающих запросов, но оно все равно будет создавать журналы и метрики подсчета для любых совпадений. Вы можете уменьшить ведение журнала и метрики, которые создает правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, который будет использоваться для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит допустимого IP-адреса в указанном положении.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в RuleGroup. Чтобы использовать его, создайте группу правил с вашими правилами, а затем укажите ARN группы правил в этом операторе.

Вы не можете вложить RuleGroupReferenceStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

ARN -> (string)

Имя ресурса Amazon (ARN) сущности.

ExcludedRules -> (list)

Правила в ссылочной группе правил, для которых действия установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любые допустимые настройки действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любые допустимые настройки действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

RuleActionOverrides -> (list)

Параметры действия для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Постарайтесь проверить имена правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете постоянно переопределять некоторые или все действия, чтобы изменить способ управления группой правил вашим веб-трафиком.

(structure)

Настройка действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Постарайтесь проверить имена правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете постоянно переопределять некоторые или все действия, чтобы изменить способ управления группой правил вашим веб-трафиком.

Name -> (string)

Имя правила для переопределения.

Примечание

Постарайтесь проверить имена правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

ActionToUse -> (structure)

Действие переопределения для использования вместо настроенного действия правила в группе правил.

Block -> (structure)

Указывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

ResponseCode -> (integer)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF.

CustomResponseBodyKey -> (string)

Указывает на текст ответа, который вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский текст ответа для действия правила или действия веб-ACL по умолчанию, для которого задано значение block. Для этого сначала определите ключ и значение текста ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или настройке BlockAction действия веб-ACL по умолчанию, вы ссылаетесь на текст ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер для пользовательских настроек запроса и ответа см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запроса и ответа. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Указывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер для пользовательских настроек запроса и ответа см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запроса и ответа. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Указывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер для пользовательских настроек запроса и ответа см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запроса и ответа. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Указывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер для пользовательских настроек запроса и ответа см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запроса и ответа. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Указывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер для пользовательских настроек запроса и ответа см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для пользовательской обработки запроса и ответа. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Оператор правила, используемый для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который определяет адреса, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Чтобы создать IP-набор, см. CreateIPSet.

Каждый оператор правила IP-набора ссылается на IP-набор. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет вам использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Amazon Resource Name (ARN) IPSet, на который ссылается этот оператор.

IPSetForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами HTTP-заголовке, вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя HTTP-заголовка для использования IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, присваиваемый веб-запросу, если в запросе нет действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Position -> (string)

Позиция в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные идентифицируют прокси-серверы, через которые прошел запрос.

Варианты этого параметра следующие:

  • FIRST - Проверьте первый IP-адрес в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST - Проверьте последний IP-адрес в списке IP-адресов в заголовке.
  • ANY - Проверьте все IP-адреса в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (structure)

Оператор правила, используемый для поиска соответствий компонентов веб-запроса регулярным выражениям. Чтобы использовать это, создайте RegexPatternSet, который указывает выражения, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Веб-запрос соответствует оператору правила набора шаблонов, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов регулярных выражений, см. CreateRegexPatternSet .

Каждый оператор правила набора шаблонов регулярных выражений ссылается на набор шаблонов регулярных выражений. Вы создаете и поддерживаете набор независимо от своих правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (строка)

Имя ресурса Amazon (ARN) RegexPatternSet, на который ссылается этот оператор.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите проверить в WAF.

SingleHeader -> (структура)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Эта настройка не чувствительна к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch .

Name -> (строка)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (строка)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверьте все аргументы запроса.

UriPath -> (структура)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (структура)

Проверьте тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта Body .

OversizeHandling -> (строка)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия вашего правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (структура)

Проверьте тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта JsonBody .

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (структура)

Сопоставьте все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо эту настройку, либо настройку IncludedPaths , но не обе.

IncludedPaths -> (список)

Сопоставляйте только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо эту настройку, либо настройку All , но не обе.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(строка)

MatchScope -> (строка)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логический оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое - значения.

InvalidFallbackBehavior -> (строка)

Что WAF следует делать, если не удается полностью разобрать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Если вы не предоставите эту настройку, WAF выполняет синтаксический анализ и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда анализ выполнен успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (строка)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, находящееся в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig , за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия вашего правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого контента заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков, которые нужно сопоставить с критериями проверки правила. Если указать ALL, WAF проверит как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или и в том, и в другом. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого контента файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверит как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Требуется, чтобы совпадение было найдено в ключах, значениях или и в том, и в другом. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает в WAF максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента соответствия поля в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия, без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF следует делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает в WAF максимум 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствует отпечатку пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журналов см. в разделе Поля журналов в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствует отпечатку пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, имеющего достаточную информацию TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в значение EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журналов см. в разделе Поля журналов в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если он не может полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе Тело JSON в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

RateBasedStatement -> (structure)

Правило на основе скорости подсчитывает входящие запросы и ограничивает скорость запросов, когда они поступают со слишком высокой скоростью. Правило классифицирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования, а также подсчитывает и ограничивает скорость запросов для каждого экземпляра.

Примечание

Если вы измените какие-либо из этих настроек в используемом правиле, изменение сбросит счетчики ограничения скорости правила. Это может приостановить деятельность правила по ограничению скорости на срок до одной минуты.

Вы можете указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Вы также можете указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie.

Каждый уникальный набор значений для указанных вами ключей агрегирования является отдельным экземпляром агрегирования, при этом значение из каждого ключа вносит вклад в определение экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило будет создавать разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого из них. Экземплярами агрегирования и количеством запросов в нашем примере будут следующие:
    • IP-адрес 10.1.1.1: счет 3
    • IP-адрес 127.0.0.0: счет 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземплярами агрегирования и количеством запросов в нашем примере будут следующие:
    • Метод HTTP POST: счет 2
    • Метод HTTP GET: счет 2
  • Если критерием агрегирования является IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут вносить вклад в комбинированный экземпляр агрегирования. Экземплярами агрегирования и количеством запросов в нашем примере будут следующие:
    • IP-адрес 10.1.1.1, метод HTTP POST: счет 1
    • IP-адрес 10.1.1.1, метод HTTP GET: счет 2
    • IP-адрес 127.0.0.0, метод HTTP POST: счет 1

Для любого n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по скорости отдельно.

При необходимости вы можете вложить другой оператор внутри оператора на основе скорости, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало скорость только запросов, соответствующих вложенному оператору. Вы можете использовать этот вложенный оператор сужения области действия вместе со спецификациями ключа агрегирования, либо просто подсчитывать и ограничивать скорость всех запросов, соответствующих оператору сужения области действия, без дополнительного агрегирования. Когда вы решите просто управлять всеми запросами, которые соответствуют оператору сужения области действия, экземпляр агрегирования является единственным для правила.

Нельзя вложить RateBasedStatement внутри другого оператора, например, внутри NotStatement или OrStatement . Вы можете определить RateBasedStatement внутри веб-ACL и внутри группы правил.

Дополнительные сведения об опциях см. в разделе Ограничение скорости веб-запросов с использованием правил на основе скорости в Руководстве разработчика WAF .

Если вы агрегируете только по отдельному IP-адресу или перенаправленному IP-адресу, вы можете получить список IP-адресов, которые WAF в настоящее время ограничивает по скорости для правила, с помощью вызова API GetRateBasedStatementManagedKeys . Эта опция недоступна для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе скорости, которое вы используете. Например, если вы предоставите одни и те же настройки правила на основе скорости в двух веб-ACL, каждый из двух операторов правил представляет собой отдельный экземпляр правила на основе скорости и получает собственное отслеживание и управление со стороны WAF. Если вы определяете правило на основе скорости внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе скорости, который получает собственное отслеживание и управление со стороны WAF.

Лимит -> (long)

Предел запросов в течение указанного окна оценки для одного экземпляра агрегирования для правила на основе скорости. Если оператор на основе скорости включает в себя ScopeDownStatement , этот лимит применяется только к запросам, соответствующим оператору.

Примеры:

  • Если вы агрегируете только по IP-адресу, это лимит на запросы с любого отдельного IP-адреса.
  • Если вы агрегируете по методу HTTP и имени аргумента запроса «city», то это лимит на запросы для любой отдельной пары метод, город.

EvaluationWindowSec -> (long)

Промежуток времени в секундах, который WAF должен включать в подсчет запросов, оглядываясь назад от текущего времени. Например, при настройке 120, когда WAF проверяет скорость, он подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет скорость, а определяет, как далеко назад он смотрит при каждой проверке. WAF проверяет скорость примерно каждые 10 секунд.

По умолчанию: 300 (5 минут)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.
  • CONSTANT - Подсчитывайте и ограничивайте запросы, соответствующие оператору сужения области действия правила на основе скорости. При использовании этого параметра подсчитанные запросы не агрегируются далее. Оператор сужения области действия является единственной используемой спецификацией. Когда количество всех запросов, удовлетворяющих оператору сужения области действия, превышает лимит, WAF применяет действие правила ко всем запросам, удовлетворяющим оператору сужения области действия. При использовании этого параметра необходимо настроить свойство ScopeDownStatement .
  • CUSTOM_KEYS - Агрегируйте количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. При использовании этого параметра необходимо указать ключи агрегирования в свойстве CustomKeys . Чтобы агрегировать только по IP-адресу или только по перенаправленному IP-адресу, не используйте пользовательские ключи. Вместо этого задайте для типа ключа агрегирования значение IP или FORWARDED_IP .
  • FORWARDED_IP - Агрегируйте количество запросов по первому IP-адресу в заголовке HTTP. При использовании этого параметра необходимо указать заголовок для использования в свойстве ForwardedIPConfig . Чтобы агрегировать по комбинации перенаправленного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .
  • IP - Агрегируйте количество запросов по IP-адресу из источника веб-запроса. Чтобы агрегировать по комбинации IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .

( … recursive … )ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это необходимо, если вы указываете перенаправленный IP-адрес в настройках ключа агрегирования правила.

HeaderName -> (string)

Имя заголовка HTTP, используемого для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для него значение X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит допустимого IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при сбое:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать, что веб-запрос не соответствует оператору правила.

CustomKeys -> (list)

Указывает агрегированные ключи, используемые в правиле на основе частоты.

(структура)

Указывает один пользовательский агрегированный ключ для правила на основе частоты.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегирования, опускаются из оценки и обработки правила на основе частоты.

Header -> (структура)

Использовать значение заголовка в запросе в качестве агрегированного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегации. Если вы используете один заголовок в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя используемого заголовка.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

Cookie -> (структура)

Использовать значение cookie в запросе в качестве агрегированного ключа. Каждое отдельное значение в cookie вносит вклад в экземпляр агрегации. Если вы используете один cookie в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя используемого cookie.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

QueryArgument -> (структура)

Использовать указанный аргумент запроса в качестве агрегированного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегации. Если вы используете один аргумент запроса в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Name -> (string)

Имя используемого аргумента запроса.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

QueryString -> (structure)

Использовать строку запроса запроса в качестве агрегированного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегации. Если вы используете только строку запроса в качестве пользовательского ключа, то каждая строка полностью определяет экземпляр агрегации.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

HTTPMethod -> (structure)

Использовать HTTP-метод запроса в качестве агрегированного ключа. Каждый отдельный HTTP-метод вносит вклад в экземпляр агрегации. Если вы используете только HTTP-метод в качестве пользовательского ключа, то каждый метод полностью определяет экземпляр агрегации.

ForwardedIP -> (structure)

Использовать первый IP-адрес в HTTP-заголовке в качестве агрегированного ключа. Каждый отдельный перенаправленный IP-адрес вносит вклад в экземпляр агрегации.

Когда вы указываете IP или перенаправленный IP в настройках пользовательского ключа, вы также должны указать как минимум один другой ключ для использования. Вы можете агрегировать только по перенаправленному IP-адресу, указав FORWARDED_IP в AggregateKeyType вашего правила на основе частоты.

С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig правила на основе частоты.

IP -> (structure)

Использовать исходный IP-адрес запроса в качестве агрегированного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегации.

Когда вы указываете IP или перенаправленный IP в настройках пользовательского ключа, вы также должны указать как минимум один другой ключ для использования. Вы можете агрегировать только по IP-адресу, указав IP в AggregateKeyType вашего правила на основе частоты.

LabelNamespace -> (structure)

Использовать указанное пространство имен метки в качестве агрегированного ключа. Каждое отдельное полное имя метки, имеющее указанное пространство имен метки, вносит вклад в экземпляр агрегации. Если вы используете только одно пространство имен метки в качестве пользовательского ключа, то каждое имя метки полностью определяет экземпляр агрегации.

Это использует только метки, которые были добавлены в запрос правилами, которые оцениваются до этого правила на основе частоты в веб-ACL.

Сведения о пространствах имен и именах меток см. в разделе Синтаксис меток и требования к именованию в Руководстве разработчика WAF .

Namespace -> (string)

Пространство имен для использования для агрегации.

UriPath -> (structure)

Использовать путь URI запроса в качестве агрегированного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегации. Если вы используете только путь URI в качестве пользовательского ключа, то каждый путь URI полностью определяет экземпляр агрегации.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе частоты для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного содержимого, начиная с самого низкого приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Priority -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования от наименьшего приоритета к наибольшему, прежде чем проверять преобразованное содержимое. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого из типов преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

JA3Fingerprint -> (structure)

Использовать отпечаток JA3 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA3 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Статус соответствия, который необходимо назначить веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Используйте отпечаток JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA4 в качестве пользовательского ключа, каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Состояние соответствия, присваиваемое веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

AndStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой И. В AndStatement укажите более одного оператора Statement.

Statements -> (list)

Операторы для объединения с логикой И. Можно использовать любые операторы, которые могут быть вложенными.

( … recursive … )

OrStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой ИЛИ. В OrStatement укажите более одного оператора Statement.

Statements -> (list)

Операторы для объединения с логикой ИЛИ. Можно использовать любые операторы, которые могут быть вложенными.

( … recursive … )

NotStatement -> (structure)

Логический оператор правила, используемый для отрицания результатов другого оператора правила. Укажите один оператор Statement в NotStatement .

( … recursive … )

ManagedRuleGroupStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом операторе. Вы можете получить требуемые имена, вызвав ListAvailableManagedRuleGroups .

Нельзя вкладывать ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Нельзя использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control account takeover prevention (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control account creation fraud prevention (ACFP) AWSManagedRulesACFPRuleSet . Для получения дополнительной информации см. WAF Pricing .

VendorName -> (string)

Имя поставщика управляемой группы правил. Используется вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Используется вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия используемой управляемой группы правил. Если вы укажете это, настройка версии будет фиксированной до тех пор, пока вы ее не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика при обновлении поставщиком настроек управляемой группы правил.

ExcludedRules -> (list)

Правила в ссылочной группе правил, действия которых установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

( … recursive … )ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил этого не требуют.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает в себя страницы регистрации и регистрации вашего приложения, а также местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает в себя страницу входа в ваше приложение и местоположения в полезных данных запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet , чтобы настроить уровень защиты, который вы хотите, чтобы использовала группа правил Bot Control.

(structure)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил этого не требуют.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает в себя страницы регистрации и регистрации вашего приложения, а также местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает в себя страницу входа в ваше приложение и местоположения в полезных данных запроса на вход данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet , чтобы настроить уровень защиты, который вы хотите, чтобы использовала группа правил Bot Control.

Например, спецификации см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя: username1

PasswordField -> (structure)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

Способ указания зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля: /form/password .
  • Для типов полезных данных с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля: password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил Bot Control. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Информацию об использовании управляемой группы правил Bot Control см. в разделе Группа правил WAF Bot Control и WAF Bot Control в Руководстве разработчика WAF .

InspectionLevel -> (string)

Уровень проверки для использования с группой правил Bot Control. Общий уровень является наименее затратным. Целевой уровень включает все правила общего уровня и добавляет правила с более сложными критериями проверки. Подробности см. в разделе Группа правил WAF Bot Control в Руководстве разработчика WAF .

EnableMachineLearning -> (boolean)

Применяется только к целевому уровню проверки.

Определяет, следует ли использовать машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение требуется для правил Bot Control TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют наличие аномального поведения, которое может указывать на распределенную, координированную активность ботов.

Дополнительную информацию об этом выборе см. в списке этих правил в таблице в разделе Список правил Bot Control в Руководстве разработчика WAF .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетной записи (ATP), AWSManagedRulesATPRuleSet. Используйте это для предоставления информации о запросе на вход в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на вход.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. WAF Fraud Control account takeover prevention (ATP) rule group и WAF Fraud Control account takeover prevention (ATP) в WAF Developer Guide.

LoginPath -> (string)

Путь к конечной точке входа для вашего приложения. Например, для URL https://example.com/web/login вы предоставите путь /web/login. Пути входа, начинающиеся с предоставленного вами пути, считаются совпадением. Например, /web/login соответствует путям входа /web/login, /web/login/, /web/loginPage и /web/login/thisPage, но не соответствует пути входа /home/web/login или /website/login.

Группа правил проверяет только HTTP POST запросы к указанной конечной точке входа.

RequestInspection -> (structure)

Критерии для проверки запросов на вход, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string)

Тип полезных данных для вашей конечной точки входа: JSON или форма, закодированная.

UsernameField -> (structure)

Имя поля в полезных данных запроса, содержащего имя пользователя вашего клиента.

Способ указания этого зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя — /form/username.
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя — username1

Identifier -> (string)

Имя поля имени пользователя.

Способ указания этого зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя — /form/username.
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя — username1

PasswordField -> (structure)

Имя поля в полезных данных запроса, содержащего пароль вашего клиента.

Способ указания этого зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля — /form/password.
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля — password1.

Identifier -> (string)

Имя поля пароля.

Способ указания этого зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Для получения информации о синтаксисе JSON Pointer см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля — /form/password.
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля — password1.

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы на вход, используемые группой правил ATP для отслеживания показателей сбоев входа.

Примечание

Проверка ответов доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках входа клиента, подсчитывая успешные и неудачные попытки для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от сеансов клиентов и IP-адресов, у которых было слишком много неудачных попыток входа за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

Коды состояния в ответе, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, код состояния ответа должен соответствовать одному из них. Каждый код должен быть уникальным среди кодов состояния успеха и сбоя.

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Имя заголовка, с которым нужно сопоставить. Имя должно быть точным совпадением, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения, с которым нужно сопоставить в JSON. Идентификатор должен быть точным совпадением, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы входа.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетной записи (ACFP) AWSManagedRulesACFPRuleSet . Используйте это, чтобы предоставить группе правил информацию о запросах на создание учетной записи. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. группу правил предотвращения мошенничества при создании учетной записи WAF Fraud Control (ACFP) и предотвращение мошенничества при создании учетной записи WAF Fraud Control (ACFP) в Руководстве разработчика WAF .

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая принимает заполненную форму регистрации нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL-адреса https://example.com/web/newaccount , вы предоставите путь /web/newaccount . Пути к страницам создания учетной записи, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетной записи /web/newaccount , /web/newaccount/ , /web/newaccountPage и /web/newaccount/thisPage , но не соответствует пути /home/web/newaccount или /website/newaccount .

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая представляет форму регистрации новым пользователям.

Примечание

Эта страница должна принимать GET text/html запросы.

Например, для URL-адреса https://example.com/web/registration , вы предоставите путь /web/registration . Пути к страницам регистрации, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration , /web/registration/ , /web/registrationPage и /web/registration/thisPage , но не соответствует пути /home/web/registration или /website/registration .

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезных данных для вашей конечной точки создания учетной записи: JSON или закодированная форма.

UsernameField -> (structure)

Название поля в полезных данных запроса, содержащего имя пользователя вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя: username1

Identifier -> (string)

Название поля имени пользователя.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя: username1

PasswordField -> (structure)

Название поля в полезных данных запроса, содержащего пароль вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля: /form/password .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля: password1 .

Identifier -> (string)

Название поля пароля.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля: /form/password .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля: password1 .

EmailField -> (structure)

Название поля в полезных данных запроса, содержащего электронную почту вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } спецификация поля электронной почты: /form/email .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем email1 спецификация поля электронной почты: email1 .

Identifier -> (string)

Название поля электронной почты.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } спецификация поля электронной почты: /form/email .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем email1 спецификация поля электронной почты: email1 .

PhoneNumberFields -> (list)

Названия полей в полезных данных запроса, содержащих основной номер телефона вашего клиента.

Упорядочите поля номера телефона в массиве в точном порядке, в котором они упорядочены в полезных данных запроса.

Как вы укажете поля номера телефона, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } идентификаторы поля номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементами input с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 идентификаторы поля номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

(structure)

Название поля в полезных данных запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Название одного поля основного номера телефона.

Как вы укажете поля номера телефона, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } идентификаторы поля номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементами input с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 идентификаторы поля номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

AddressFields -> (list)

Названия полей в полезных данных запроса, содержащих основной физический адрес вашего клиента.

Упорядочите поля адреса в массиве в точном порядке, в котором они упорядочены в полезных данных запроса.

Как вы укажете поля адреса, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементами input с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

(structure)

Название поля в полезных данных запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Название одного поля основного адреса.

Как вы укажете поля адреса, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных с закодированной формой используйте имена HTML-форм. Например, для HTML-формы с элементами input с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетной записи.

Примечание

Проверка ответов доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках создания учетной записи клиентом, подсчитывая успешные и неудачные попытки с каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы из сеансов клиентов и IP-адресов, у которых было слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

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

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Имя заголовка для сопоставления. Имя должно точно соответствовать, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения для сопоставления в JSON. Идентификатор должен точно соответствовать, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (list)

Настройки действия для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одну замену для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших заменах. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку замены.

Вы можете использовать замены для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

(структура)

Настройка действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одну замену для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших заменах. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку замены.

Вы можете использовать замены для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

Name -> (строка)

Имя правила для переопределения.

Примечание

Будьте внимательны при проверке имен правил в ваших заменах. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку замены.

ActionToUse -> (структура)

Действие переопределения для использования вместо настроенного действия правила в группе правил.

Block -> (структура)

Инструктирует WAF заблокировать веб-запрос.

CustomResponse -> (структура)

Определяет пользовательский ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

ResponseCode -> (целое число)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в ваших пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF.

CustomResponseBodyKey -> (строка)

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено на блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или в настройке действия по умолчанию веб-ACL BlockAction , вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(структура)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Он используется в CustomResponse и CustomRequestHandling.

Name -> (строка)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (строка)

Значение пользовательского заголовка.

Allow -> (структура)

Инструктирует WAF разрешить веб-запрос.

CustomRequestHandling -> (структура)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(структура)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Он используется в CustomResponse и CustomRequestHandling.

Name -> (строка)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (строка)

Значение пользовательского заголовка.

Count -> (структура)

Инструктирует WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (структура)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(структура)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Он используется в CustomResponse и CustomRequestHandling.

Name -> (строка)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (строка)

Значение пользовательского заголовка.

Captcha -> (структура)

Инструктирует WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (структура)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(структура)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Он используется в CustomResponse и CustomRequestHandling.

Name -> (строка)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (строка)

Значение пользовательского заголовка.

Challenge -> (структура)

Инструктирует WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (структура)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF.

(структура)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Он используется в CustomResponse и CustomRequestHandling.

Name -> (строка)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (строка)

Значение пользовательского заголовка.

LabelMatchStatement -> (структура)

Оператор правила для сопоставления с метками, которые были добавлены в веб-запрос правилами, которые уже были запущены в веб-ACL.

Оператор соответствия меткам предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или все полностью определенное имя метки, которое было добавлено в веб-запрос. Полностью определенные метки имеют префикс, необязательные пространства имен и имя метки. Префикс идентифицирует группу правил или контекст веб-ACL правила, добавившего метку. Если вы не предоставите полное имя в своей строке соответствия меткам, WAF выполнит поиск меток, которые были добавлены в том же контексте, что и оператор соответствия меткам.

Scope -> (строка)

Укажите, хотите ли вы выполнять сопоставление, используя имя метки, или только пространство имен.

Key -> (строка)

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от настройки Scope оператора сопоставления:

  • Если Scope указывает LABEL , то эта спецификация должна включать имя и может включать любое количество предыдущих спецификаций пространства имен и префикс до предоставления полного имени метки.
  • Если Scope указывает NAMESPACE , то эта спецификация может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен метки из группы правил или веб-ACL, откуда берется метка.

Метки чувствительны к регистру, а компоненты метки должны разделяться двоеточием, например NS1:NS2:name .

RegexMatchStatement -> (структура)

Оператор правила, используемый для поиска соответствия компонентам веб-запроса одному регулярному выражению.

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch .

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Чтобы узнать, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта Body .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Чтобы узнать, как обрабатывать слишком большие тела запросов, см. конфигурацию объекта JsonBody .

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths , но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All , но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All .

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью параметра MatchPattern . Если вы укажете ALL , WAF будет сопоставлять ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение в значениях. Требуется найти соответствие в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логический оператор AND для объединения двух правил соответствия: одно для проверки ключей, а другое для проверки значений.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому разбор может завершиться успешно даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка нестандартного размера в объекте Headers. WAF применяет фильтры соответствия шаблону к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков, которые нужно сопоставить с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей и другое для проверки значений.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверяйте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie нестандартного размера в объекте Cookies. WAF применяет фильтры соответствия шаблону к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie, которые нужно проверить с помощью критериев проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей и другое для проверки значений.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie в запросе больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверяйте доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве поля для сопоставления компонентов в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовка в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверяйте доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с установленным параметром PositionalConstraint в значение EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое нужно присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные параметры поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы содержат эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с установленным параметром PositionalConstraint в значение EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Состояние соответствия, которое нужно присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные параметры поведения:

  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагмента URI нестандартного размера в объекте UriFragment. WAF применяет фильтры соответствия шаблону к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Параметры следующие:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Устанавливает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета до самого высокого, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого типа преобразования см. в разделе Преобразования текста в WAF Developer Guide .

ManagedRuleGroupStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом операторе. Вы можете получить необходимые имена, вызвав ListAvailableManagedRuleGroups .

Вы не можете вложить ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control account takeover prevention (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control account creation fraud prevention (ACFP) AWSManagedRulesACFPRuleSet . Дополнительную информацию см. в разделе WAF Pricing .

VendorName -> (string)

Имя поставщика управляемой группы правил. Вы используете это вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Вы используете это вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия управляемой группы правил для использования. Если вы укажете это, параметр версии будет фиксирован до тех пор, пока вы его не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика при обновлении поставщиком настроек управляемой группы правил.

ExcludedRules -> (list)

Правила в ссылочной группе правил, действия которых установлены на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любой допустимый параметр действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любой допустимый параметр действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

ScopeDownStatement -> (structure)

Необязательный вложенный оператор, который сужает область веб-запросов, которые оцениваются управляемой группой правил. Запросы оцениваются группой правил только в том случае, если они соответствуют оператору сужения области. Вы можете использовать любой вложенный Statement в операторе сужения области, и вы можете вкладывать операторы на любом уровне, так же, как и для оператора правила.

ByteMatchStatement -> (structure)

Оператор правила, который определяет поиск соответствия строки для WAF, который применяется к веб-запросам. Оператор соответствия байтов предоставляет байты для поиска, местоположение в запросах, в которых вы хотите, чтобы WAF выполнил поиск, и другие настройки. Байты для поиска обычно представляют собой строку, соответствующую символам ASCII. В консоли WAF и в руководстве для разработчиков это называется оператором соответствия строки.

SearchString -> (blob)

Строковое значение, которое вы хотите, чтобы WAF искал. WAF выполняет поиск только в той части веб-запросов, которую вы указываете для проверки в FieldToMatch . Максимальная длина значения составляет 200 байт.

Допустимые значения зависят от компонента, который вы указываете для проверки в FieldToMatch :

  • Method : Метод HTTP, который вы хотите, чтобы WAF выполнил поиск. Это указывает тип операции, указанной в запросе.
  • UriPath : Значение, которое вы хотите, чтобы WAF искал в пути URI, например, /images/daily-ad.jpg .
  • JA3Fingerprint : Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствует отпечатку пальца JA3 запроса. Отпечаток пальца JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. Вы можете использовать этот параметр только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY . Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях журнала см. в разделе Log fields в WAF Developer Guide .
  • HeaderOrder : Список имен заголовков для сопоставления. WAF создает строку, которая содержит упорядоченный список имен заголовков из заголовков в веб-запросе, а затем выполняет сопоставление с этой строкой.

Если SearchString включает в себя буквенные символы A-Z и a-z, обратите внимание, что значение учитывает регистр.

Если вы используете WAF API

Укажите версию значения в кодировке base64. Максимальная длина значения перед кодированием base64 составляет 200 байт.

Например, предположим, что значение Type равно HEADER , а значение Data равно User-Agent . Если вы хотите выполнить поиск в заголовке User-Agent значения BadBot , вы кодируете BadBot с помощью MIME-кодирования base64 и включаете полученное значение QmFkQm90 в значение SearchString .

Если вы используете CLI или один из Amazon Web Services SDK

Значение, которое вы хотите, чтобы WAF искал. SDK автоматически кодирует значение base64.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (строка)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (строка)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверьте все аргументы запроса.

UriPath -> (структура)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверьте тело запроса как простой текст. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает в WAF для проверки только содержимое, которое находится в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. в конфигурации объекта Body.

OversizeHandling -> (строка)

Что WAF должен делать, если размер тела превышает то, что WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает в WAF для проверки только содержимое, которое находится в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос просит выполнить исходный сервер.

JsonBody -> (структура)

Проверьте тело запроса как JSON. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает в WAF для проверки только содержимое, которое находится в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов, размер которых превышает допустимый, см. в конфигурации объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (структура)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (список)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Предоставьте пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации JavaScript Object Notation (JSON) Pointer Рабочей группы Internet Engineering Task Force (IETF).

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(строка)

MatchScope -> (строка)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL, WAF будет сопоставлять ключи и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, или в значениях, или в обоих. Чтобы требовать соответствия ключам и значениям, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (строка)

Что WAF должен делать, если не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверять тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF выполняет синтаксический анализ и оценивает контент только до первой ошибки синтаксического анализа, с которой он сталкивается.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF .

OversizeHandling -> (строка)

Что WAF должен делать, если размер тела превышает то, что WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает в WAF для проверки только содержимое, которое находится в пределах лимита.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правил.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете комбинировать параметры MATCH или NO_MATCH для обработки превышения размера с параметрами действия правила и веб-ACL, чтобы блокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для определения подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверит как ключи, так и значения.

All не требует обнаружения соответствия в ключах и соответствия в значениях. Он требует обнаружения соответствия в ключах, в значениях или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил соответствия: одного, которое проверяет ключи, и другого, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для определения подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с помощью критериев проверки правила. Если указать ALL, WAF проверит как ключи, так и значения.

All не требует обнаружения соответствия в ключах и соответствия в значениях. Он требует обнаружения соответствия в ключах, в значениях или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил соответствия: одного, которое проверяет ключи, и другого, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента поля для сопоставления при проверке. WAF разделяет имена заголовков в строке с использованием двоеточий и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 представляет собой 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Вы можете указать следующие резервные режимы:

  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 представляет собой 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот параметр только с соответствием строки ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журналов» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Вы можете указать следующие резервные режимы:

  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривайте веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривайте веб-запрос как не соответствующий заявлению правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. раздел «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования указанного содержимого, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(structure)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Text transformations в WAF Developer Guide .

PositionalConstraint -> (string)

Область внутри части веб-запроса, в которой вы хотите, чтобы WAF выполнял поиск SearchString. Допустимые значения включают следующие:

CONTAINS

Указанная часть веб-запроса должна включать значение SearchString, но местоположение не имеет значения.

CONTAINS_WORD

Указанная часть веб-запроса должна включать значение SearchString, и SearchString должен содержать только буквенно-цифровые символы или подчеркивание (A-Z, a-z, 0-9 или _). Кроме того, SearchString должно быть словом, что означает, что верны оба следующих утверждения:

  • SearchString находится в начале указанной части веб-запроса или ему предшествует символ, отличный от буквенно-цифрового символа или подчеркивания (_). Примеры включают значение заголовка и ;BadBot.
  • SearchString находится в конце указанной части веб-запроса или за ним следует символ, отличный от буквенно-цифрового символа или подчеркивания (_), например, BadBot; и -BadBot;.
EXACTLY

Значение указанной части веб-запроса должно точно соответствовать значению SearchString.

STARTS_WITH

Значение SearchString должно отображаться в начале указанной части веб-запроса.

ENDS_WITH

Значение SearchString должно отображаться в конце указанной части веб-запроса.

SqliMatchStatement -> (structure)

Оператор правила, который проверяет наличие вредоносного кода SQL. Злоумышленники вставляют вредоносный код SQL в веб-запросы, чтобы выполнять такие действия, как изменение вашей базы данных или извлечение из нее данных.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это та часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это та часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как простой текст. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это та часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставить только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Сведения об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF выполнит сопоставление с ключами и значениями.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Он требует, чтобы соответствие было найдено в ключах или значениях, или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одно для проверки ключей, а другое — для проверки значений.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверьте тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Для получения дополнительной информации см. тело JSON в Руководстве разработчика WAF.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступное содержимое тела в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers , чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байт) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков, которые необходимо проверить в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders или ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков, соответствующие критериям проверки правила. Если вы укажете ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах, и чтобы соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки как обычно в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies или ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с помощью критериев проверки правила. Если вы укажете ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы соответствие было найдено в ключах, и чтобы соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, в значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

OversizeHandling -> (строка)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные файлы cookie как обычно в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента соответствия поля при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (строка)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверять доступные заголовки как обычно в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строк ByteMatchStatement с параметром PositionalConstraint , установленным в значение EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо назначить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Соответствие отпечатку JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строк ByteMatchStatement с параметром PositionalConstraint , установленным в значение EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Сведения о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (строка)

Статус соответствия, который необходимо назначить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

UriFragment -> (структура)

Проверка фрагментов URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment , чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING - Проверять тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

WAF parsing doesn’t fully validate the input JSON string, so parsing can succeed even for invalid JSON. When parsing succeeds, WAF doesn’t apply the fallback behavior. For more information, see JSON body in the WAF Developer Guide .

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Тип -> (строка)

Подробные описания каждого типа преобразования см. в разделе Преобразования текста в Руководстве разработчика WAF .

SensitivityLevel -> (строка)

Уровень чувствительности, который вы хотите, чтобы WAF использовал для проверки атак типа SQL injection.

HIGH обнаруживает больше атак, но может генерировать больше ложных срабатываний, особенно если ваши веб-запросы часто содержат необычные строки. Информацию о выявлении и смягчении последствий ложных срабатываний см. в разделе Тестирование и настройка в Руководстве разработчика WAF .

LOW обычно является лучшим выбором для ресурсов, которые уже имеют другие средства защиты от атак типа SQL injection или имеют низкую толерантность к ложным срабатываниям.

По умолчанию: LOW

XssMatchStatement -> (структура)

Оператор правила, который проверяет наличие атак типа межсайтового скриптинга (XSS). При XSS-атаках злоумышленник использует уязвимости на безобидном веб-сайте как средство для внедрения вредоносных клиентских скриптов в другие легитимные веб-браузеры.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Эта настройка не чувствительна к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, можно отфильтровать и проверить все заголовки с помощью параметра Headers FieldToMatch.

Name -> (строка)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может состоять не более чем из 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (строка)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (структура)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (структура)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (структура)

Проверить тело запроса как обычный текст. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (строка)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (структура)

Проверить метод HTTP. Метод указывает тип операции, которую запрос просит выполнить источник.

JsonBody -> (структура)

Проверить тело запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Сведения о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (структура)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (структура)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо эту настройку, либо настройку IncludedPaths, но не обе.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Сведения об этом синтаксисе см. в документации JavaScript Object Notation (JSON) Pointer рабочей группы Internet Engineering Task Force (IETF).

Вы должны указать либо эту настройку, либо настройку All, но не обе.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте настройку All.

(string)

MatchScope -> (строка)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL , WAF сопоставляет ключи и значения.

All не требует обнаружения совпадения в ключах и обнаружения совпадения в значениях. Он требует, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно, которое проверяет ключи, и другое, которое проверяет значения.

InvalidFallbackBehavior -> (строка)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к текстовой строке тела.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите эту настройку, WAF будет анализировать и оценивать содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF-анализ не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недопустимого JSON. Когда анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (строка)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync ограничение установлено на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access ограничение по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить настройки MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (структура)

Проверьте заголовки запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков нестандартного размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для определения подмножества заголовков, подлежащих проверке в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из строк, указанных здесь.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из строк, указанных здесь.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Он требует соответствия в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, которое проверяет ключи, и другого, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки негабаритного размера следующие:

  • CONTINUE — проверить доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie нестандартного размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр, используемый для определения подмножества файлов cookie, подлежащих проверке в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из строк, указанных здесь.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из строк, указанных здесь.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL, WAF проверяет как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Он требует соответствия в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одного, которое проверяет ключи, и другого, которое проверяет значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Параметры обработки негабаритного размера следующие:

  • CONTINUE — проверить доступные файлы cookie в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных так, как они отображаются в веб-запросе, который WAF получает для проверки. WAF создает строку, а затем использует ее в качестве компонента для сопоставления полей в своей проверке. WAF разделяет имена заголовков в строке, используя двоеточия, без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF должен делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Параметры обработки негабаритного размера следующие:

  • CONTINUE — проверить доступные заголовки в обычном режиме в соответствии с критериями проверки правила.
  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA3 запроса. Отпечаток пальца JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Этот выбор можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо назначить веб-запросу, если запрос не имеет отпечатка пальца JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставление с отпечатком пальца JA4 запроса. Отпечаток пальца JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток пальца служит уникальным идентификатором конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток пальца для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Этот выбор можно использовать только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток пальца JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток пальца, он включает его в журналы. Информацию о полях ведения журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Укажите строку отпечатка пальца JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус сопоставления, который необходимо назначить веб-запросу, если запрос не имеет отпечатка пальца JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области действия и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагментов URI нестандартного размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - считать, что веб-запрос не соответствует оператору правила.

Если этот параметр не указан, WAF анализирует и оценивает содержимое только до первой ошибки синтаксического анализа, с которой он сталкивается.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с наименьшего приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от наименьшего приоритета к наибольшему, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе «Преобразования текста» в Руководстве разработчика WAF.

SizeConstraintStatement -> (структура)

Оператор правила, который сравнивает количество байтов с размером компонента запроса, используя оператор сравнения, такой как «больше чем» (>) или «меньше чем» (<). Например, вы можете использовать оператор ограничения размера, чтобы искать строки запросов, длина которых превышает 100 байт.

Если вы настроите WAF для проверки тела запроса, WAF проверит только количество байтов в теле до лимита для типа веб-ACL и защищенного ресурса. Если вы знаете, что тело запроса для ваших веб-запросов никогда не должно превышать лимит проверки, вы можете использовать оператор ограничения размера для блокировки запросов с большим размером тела запроса. Для получения дополнительной информации об ограничениях проверки см. настройки Body и JsonBody для типа данных FieldToMatch.

Если вы выберете URI для значения параметра «Часть запроса для фильтрации», косая черта (/) в URI учитывается как один символ. Например, URI /logo.jpg имеет длину девять символов.

FieldToMatch -> (структура)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (структура)

Проверить один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (структура)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (структура)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверьте тело запроса как обычный текст. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов с большим размером, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE — Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов с большим размером, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр, чтобы включить все пути. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern . Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует нахождения совпадения в ключах и нахождения совпадения в значениях. Для этого требуется найти совпадение в ключах, или в значениях, или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может быть успешным даже для неверного JSON. Когда анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что WAF должен делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки превышения размера следующие:

  • CONTINUE — Проверять доступное содержимое тела как обычно, в соответствии с критериями проверки правила.
  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки превышения размера с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Headers , чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки содержимого заголовков большего размера в объекте Headers . WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders , либо ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверить все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков, соответствующие критериям проверки правил. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется, чтобы совпадение было найдено в ключах или в значениях, или в обоих. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки чрезмерного размера следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

Cookies -> (структура)

Проверьте файлы cookie запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте Cookies , чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки содержимого файлов cookie большего размера в объекте Cookies . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр, используемый для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies , либо ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверить все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правил. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и в значениях. Требуется, чтобы совпадение было найдено в ключах или в значениях, или в обоих. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое утверждение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что WAF должен делать, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 файлов cookie. Базовая служба хоста пересылает не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки чрезмерного размера следующие:

  • CONTINUE — проверять доступные файлы cookie в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента поля для сопоставления при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (string)

Что WAF должен делать, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает не более 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки чрезмерного размера следующие:

  • CONTINUE — проверять доступные заголовки в обычном режиме в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора соответствия строки, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние соответствия, назначаемое веб-запросу, если запрос не имеет отпечатка JA3.

Вы можете указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который имеет достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с соответствием строки ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора соответствия строки, чтобы она соответствовала любым будущим запросам с той же конфигурацией TLS.

FallbackBehavior -> (string)

Состояние соответствия, назначаемое веб-запросу, если запрос не имеет отпечатка JA4.

Вы можете указать следующие резервные варианты поведения:

  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

UriFragment -> (структура)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры соответствия области и шаблону в объекте UriFragment , чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить способ обработки содержимого фрагментов URI большего размера в объекте UriFragment . WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF должен делать, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверить тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий заявлению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим заявлению правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недействительного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

ComparisonOperator -> (string)

Оператор для сравнения части запроса с настройкой размера.

Размер -> (long)

Размер в байтах для сравнения с частью запроса после любых преобразований.

TextTransformations -> (list)

Текстовые преобразования устраняют часть необычного форматирования, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Текстовые преобразования используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполняет все преобразования над указанным содержимым, начиная с самой низкой настройки приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Текстовые преобразования устраняют часть необычного форматирования, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Текстовые преобразования в WAF Developer Guide .

GeoMatchStatement -> (structure)

Оператор правила, который помечает веб-запросы по стране и региону и который сопоставляет веб-запросы на основе кода страны. Правило гео-соответствия помечает каждый проверяемый запрос, независимо от того, находит ли он совпадение.

  • Чтобы управлять запросами только по стране, вы можете использовать этот оператор сам по себе и указать страны, с которыми вы хотите сопоставить, в массиве CountryCodes.
  • В противном случае настройте свое правило гео-соответствия с действием Count, чтобы оно только помечало запросы. Затем добавьте одно или несколько правил соответствия меткам для запуска после правила гео-соответствия и настройте их для соответствия географическим меткам и обработки запросов по мере необходимости.

WAF помечает запросы, используя двухбуквенные коды страны и региона из международного стандарта ISO 3166 Международной организации по стандартизации (ISO). WAF определяет коды, используя либо IP-адрес в источнике веб-запроса, либо, если вы его укажете, адрес в гео-соответствии ForwardedIPConfig.

Если вы используете источник веб-запроса, форматы меток: awswaf:clientip:geo:region:<ISO country code>-<ISO region code> и awswaf:clientip:geo:country:<ISO country code>.

Если вы используете перенаправленный IP-адрес, форматы меток: awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code> и awswaf:forwardedip:geo:country:<ISO country code>.

Дополнительные сведения см. в разделе Оператор правила географического соответствия в WAF Developer Guide.

CountryCodes -> (list)

Массив двухбуквенных кодов стран, с которыми вы хотите сопоставить, например, [ "US", "CN" ], из двухбуквенных кодов стран ISO международного стандарта ISO 3166.

Когда вы используете оператор гео-соответствия только для меток региона и страны, которые он добавляет в запросы, вам все равно придется указать код страны для оценки правила. В этом случае вы настраиваете правило только для подсчета соответствующих запросов, но оно по-прежнему будет генерировать журналы и показатели подсчета для любых совпадений. Вы можете уменьшить ведение журналов и метрики, которые выдает правило, указав страну, которая вряд ли будет источником трафика на ваш сайт.

(string)

ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP, вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, который следует использовать для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если в запросе нет действительного IP-адреса в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

RuleGroupReferenceStatement -> (structure)

Оператор правил, используемый для запуска правил, определенных в группе правил (RuleGroup). Чтобы использовать это, создайте группу правил с вашими правилами, а затем укажите ARN группы правил в этом операторе.

Нельзя вкладывать RuleGroupReferenceStatement , например, для использования внутри NotStatement или OrStatement . Нельзя использовать оператор ссылки на группу правил внутри другой группы правил. Вы можете ссылаться на группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

ARN -> (string)

Amazon Resource Name (ARN) сущности.

ExcludedRules -> (list)

Правила в ссылочной группе правил, для которых действия установлены в Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любой допустимый параметр действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого параметра используйте RuleActionOverrides . Он принимает любой допустимый параметр действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

RuleActionOverrides -> (list)

Параметры действий для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

(structure)

Настройка действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count , а затем отслеживать результирующие метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить то, как группа правил управляет вашим веб-трафиком.

Name -> (string)

Имя правила для переопределения.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы укажете имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит параметр переопределения.

ActionToUse -> (structure)

Действие переопределения для использования вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылается на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, установленного в блок. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии веб-ACL по умолчанию BlockAction настройке, вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP, которые необходимо использовать в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA в отношении веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge в отношении веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже находятся в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

IPSetReferenceStatement -> (structure)

Оператор правила, используемый для обнаружения веб-запросов, поступающих с определенных IP-адресов или диапазонов адресов. Чтобы использовать это, создайте IPSet, который указывает адреса, которые вы хотите обнаружить, затем используйте ARN этого набора в этом операторе. Чтобы создать IP-набор, см. CreateIPSet.

Каждый оператор правила IP-набора ссылается на IP-набор. Вы создаете и поддерживаете набор независимо от ваших правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые ссылаются на него.

ARN -> (string)

Имя ресурса Amazon (ARN) набора IPSet, на который ссылается этот оператор.

IPSetForwardedIPConfig -> (structure)

Настройка для проверки IP-адресов в заголовке HTTP, который вы указываете, вместо использования IP-адреса, о котором сообщает источник веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

HeaderName -> (string)

Имя заголовка HTTP, которое следует использовать для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите это значение в X-Forwarded-For.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не содержит действительного IP-адреса в указанном месте.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH — считать, что веб-запрос соответствует оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать, что веб-запрос не соответствует оператору правила.

Position -> (string)

Положение в заголовке для поиска IP-адреса. Заголовок может содержать IP-адреса исходного клиента, а также прокси-серверов. Например, значение заголовка может быть 10.1.1.1, 127.0.0.0, 10.10.10.10, где первый IP-адрес идентифицирует исходного клиента, а остальные идентифицируют прокси-серверы, через которые прошел запрос.

Параметры для этой настройки следующие:

  • FIRST — проверка первого IP-адреса в списке IP-адресов в заголовке. Обычно это исходный IP-адрес клиента.
  • LAST — проверка последнего IP-адреса в списке IP-адресов в заголовке.
  • ANY — проверка всех IP-адресов в заголовке на соответствие. Если заголовок содержит более 10 IP-адресов, WAF проверяет последние 10.

RegexPatternSetReferenceStatement -> (structure)

Инструкция правила, используемая для поиска соответствий компонентов веб-запроса регулярным выражениям. Чтобы использовать это, создайте RegexPatternSet, который указывает выражения, которые вы хотите обнаружить, а затем используйте ARN этого набора в этой инструкции. Веб-запрос соответствует инструкции правила набора шаблонов, если компонент запроса соответствует любому из шаблонов в наборе. Чтобы создать набор шаблонов regex, см. CreateRegexPatternSet.

Каждая инструкция правила набора шаблонов regex ссылается на набор шаблонов regex. Вы создаете и поддерживаете набор независимо от своих правил. Это позволяет использовать один набор в нескольких правилах. При обновлении ссылочного набора WAF автоматически обновляет все правила, которые на него ссылаются.

ARN -> (string)

Имя ресурса Amazon (ARN) RegexPatternSet, на который ссылается эта инструкция.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверьте один заголовок. Укажите имя заголовка для проверки, например, User-Agent или Referer. Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверьте один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion. Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверьте все аргументы запроса.

UriPath -> (structure)

Проверьте путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg.

QueryString -> (structure)

Проверьте строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверьте тело запроса как обычный текст. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает содержимое, которое находится в пределах лимита, в WAF только для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает содержимое, которое находится в пределах лимита, в WAF только для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверьте метод HTTP. Метод указывает тип операции, которую запрос просит выполнить исходный объект.

JsonBody -> (structure)

Проверьте тело запроса как JSON. Тело запроса непосредственно следует за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например, данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает содержимое, которое находится в пределах лимита, в WAF только для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих совпадений шаблонов в соответствии с критериями проверки правил.

All -> (structure)

Сопоставьте все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставляйте только указанные пути включения. См. также MatchScope в JsonBody.

Укажите пути включения, используя синтаксис JSON Pointer. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"]. Информацию об этом синтаксисе см. в документации Рабочей группы разработки Internet (IETF) JavaScript Object Notation (JSON) Pointer.

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern. Если вы укажете ALL, WAF выполняет сопоставление с ключами и значениями.

All не требует обнаружения соответствия в ключах и обнаружения соответствия в значениях. Требуется найти соответствие в ключах или в значениях, или в обоих. Чтобы потребовать соответствия в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое — значения.

InvalidFallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий инструкции правила.

Если вы не укажете этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

WAF parsing не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для неверного JSON. Когда синтаксический анализ успешен, WAF не применяет резервное поведение. Дополнительную информацию см. в разделе body JSON в WAF Developer Guide .

OversizeHandling -> (string)

Что WAF следует делать, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает содержимое, которое находится в пределах лимита, в WAF только для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access, лимит по умолчанию составляет 16 КБ (16 384 байта), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig, за дополнительные сборы за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки больших размеров следующие:

  • CONTINUE — обычно проверяйте доступное содержимое тела в соответствии с критериями проверки правил.
  • MATCH — рассматривать веб-запрос как соответствующий инструкции правила. WAF применяет действие правила к запросу.
  • NO_MATCH — рассматривать веб-запрос как не соответствующий инструкции правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с настройками действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовка, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedHeaders , либо ExcludedHeaders .

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (структура)

Проверять все заголовки.

IncludedHeaders -> (список)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedHeaders -> (список)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части заголовков для сопоставления с критериями проверки правила. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах или значениях, или и в том, и в другом. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одного, который проверяет ключи, и другого, который проверяет значения.

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Cookies -> (структура)

Проверить файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (структура)

Фильтр для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All , IncludedCookies , либо ExcludedCookies .

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (структура)

Проверять все файлы cookie.

IncludedCookies -> (список)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(строка)

ExcludedCookies -> (список)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(строка)

MatchScope -> (строка)

Части файлов cookie для проверки с критериями проверки правила. Если указать ALL , WAF проверяет как ключи, так и значения.

All не требует совпадения в ключах и совпадения в значениях. Требуется совпадение в ключах или значениях, или и в том, и в другом. Чтобы потребовать совпадения в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одного, который проверяет ключи, и другого, который проверяет значения.

OversizeHandling -> (строка)

Что должен делать WAF, если файлов cookie запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, когда они превышают 8 КБ (8192 байта) или 200 общих файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

HeaderOrder -> (структура)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных так, как они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента сопоставления поля при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer .

OversizeHandling -> (строка)

Что должен делать WAF, если заголовков запроса больше или они больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, когда они превышают 8 КБ (8192 байта) или 200 общих заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA3Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA3 запроса. Отпечаток JA3 представляет собой 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях ведения журнала см. раздел Поля журналов в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA3 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, которые имеют одинаковую конфигурацию TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который следует присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

JA4Fingerprint -> (структура)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте с отпечатком JA4 запроса. Отпечаток JA4 представляет собой 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, который содержит достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint , установленным в EXACTLY .

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях ведения журнала см. раздел Поля журналов в Руководстве разработчика WAF .

Предоставьте строку отпечатка JA4 из журналов в спецификации оператора сопоставления строк, чтобы сопоставить ее с любыми будущими запросами, которые имеют одинаковую конфигурацию TLS.

FallbackBehavior -> (строка)

Статус сопоставления, который следует присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие варианты поведения при резервировании:

  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

UriFragment -> (структура)

Проверить фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблона в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (строка)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING - Проверять тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может завершиться успешно даже для недопустимого JSON. Когда синтаксический анализ завершается успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе Тело JSON в Руководстве разработчика WAF .

TextTransformations -> (список)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах сопоставления правил для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве настраиваемых ключей агрегирования. Если вы указываете одно или несколько преобразований для применения, WAF выполняет все преобразования указанного контента, начиная с самой низкой настройки приоритета, а затем использует преобразованное содержимое компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (строка)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

RateBasedStatement -> (структура)

Правило на основе скорости подсчитывает входящие запросы и ограничивает скорость запросов, когда они поступают со слишком высокой скоростью. Правило классифицирует запросы в соответствии с вашими критериями агрегирования, собирает их в экземпляры агрегирования, а также подсчитывает и ограничивает скорость запросов для каждого экземпляра.

Примечание

Если вы измените какие-либо из этих настроек в правиле, которое в настоящее время используется, изменение сбросит счетчики ограничения скорости правила. Это может приостановить действия правила по ограничению скорости на срок до одной минуты.

Вы можете указать отдельные ключи агрегирования, такие как IP-адрес или метод HTTP. Вы также можете указать комбинации ключей агрегирования, такие как IP-адрес и метод HTTP, или метод HTTP, аргумент запроса и cookie.

Каждый уникальный набор значений для ключей агрегирования, которые вы указываете, представляет собой отдельный экземпляр агрегирования, при этом значение каждого ключа вносит вклад в определение экземпляра агрегирования.

Например, предположим, что правило оценивает веб-запросы со следующими значениями IP-адреса и метода HTTP:

  • IP-адрес 10.1.1.1, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET
  • IP-адрес 127.0.0.0, метод HTTP POST
  • IP-адрес 10.1.1.1, метод HTTP GET

Правило создаст разные экземпляры агрегирования в соответствии с вашими критериями агрегирования, например:

  • Если критерием агрегирования является только IP-адрес, то каждый отдельный адрес является экземпляром агрегирования, и WAF подсчитывает запросы отдельно для каждого. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1: количество 3
    • IP-адрес 127.0.0.0: количество 1
  • Если критерием агрегирования является метод HTTP, то каждый отдельный метод HTTP является экземпляром агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • Метод HTTP POST: количество 2
    • Метод HTTP GET: количество 2
  • Если критерием агрегирования является IP-адрес и метод HTTP, то каждый IP-адрес и каждый метод HTTP будут способствовать объединенному экземпляру агрегирования. Экземпляры агрегирования и количество запросов для нашего примера будут следующими:
    • IP-адрес 10.1.1.1, метод HTTP POST: количество 1
    • IP-адрес 10.1.1.1, метод HTTP GET: количество 2
    • IP-адрес 127.0.0.0, метод HTTP POST: количество 1

Для любого n-кортежа ключей агрегирования каждая уникальная комбинация значений для ключей определяет отдельный экземпляр агрегирования, который WAF подсчитывает и ограничивает по скорости индивидуально.

При необходимости вы можете вложить другой оператор в оператор на основе скорости, чтобы сузить область действия правила, чтобы оно подсчитывало и ограничивало скорость только запросов, соответствующих вложенному оператору. Вы можете использовать этот вложенный оператор сужения области действия в сочетании со спецификациями ключа агрегирования или просто подсчитывать и ограничивать скорость всех запросов, соответствующих оператору сужения области действия, без дополнительного агрегирования. Когда вы решите просто управлять всеми запросами, соответствующими оператору сужения области действия, экземпляр агрегирования является единственным для правила.

Вы не можете вложить RateBasedStatement в другой оператор, например, в NotStatement или OrStatement . Вы можете определить RateBasedStatement внутри веб-ACL и внутри группы правил.

Дополнительные сведения об этих параметрах см. в разделе Ограничение скорости веб-запросов с помощью правил на основе скорости в Руководстве разработчика WAF .

Если вы агрегируете только по отдельному IP-адресу или перенаправленному IP-адресу, вы можете получить список IP-адресов, скорость которых WAF в настоящее время ограничивает для правила, с помощью вызова API GetRateBasedStatementManagedKeys . Этот параметр недоступен для других конфигураций агрегирования.

WAF отслеживает и управляет веб-запросами отдельно для каждого экземпляра правила на основе скорости, которое вы используете. Например, если вы предоставите одни и те же настройки правила на основе скорости в двух веб-ACL, каждый из двух операторов правил представляет собой отдельный экземпляр правила на основе скорости и получает собственное отслеживание и управление WAF. Если вы определяете правило на основе скорости внутри группы правил, а затем используете эту группу правил в нескольких местах, каждое использование создает отдельный экземпляр правила на основе скорости, который получает собственное отслеживание и управление WAF.

Limit -> (long)

Ограничение на запросы в течение указанного окна оценки для одного экземпляра агрегирования для правила на основе скорости. Если оператор на основе скорости включает ScopeDownStatement , это ограничение применяется только к запросам, соответствующим оператору.

Примеры:

  • Если вы агрегируете только по IP-адресу, это ограничение на запросы с любого отдельного IP-адреса.
  • Если вы агрегируете по методу HTTP и имени аргумента запроса «city», то это ограничение на запросы для любой отдельной пары метод, город.

EvaluationWindowSec -> (long)

Количество времени в секундах, которое WAF должен включать в свои подсчеты запросов, оглядываясь назад с текущего момента времени. Например, для настройки 120 при проверке скорости WAF подсчитывает запросы за 2 минуты, непосредственно предшествующие текущему времени. Допустимые значения: 60, 120, 300 и 600.

Эта настройка не определяет, как часто WAF проверяет скорость, а то, как далеко назад он смотрит каждый раз при проверке. WAF проверяет скорость примерно каждые 10 секунд.

По умолчанию: 300 (5 минут)

AggregateKeyType -> (string)

Настройка, указывающая, как агрегировать количество запросов.

Примечание

Веб-запросы, в которых отсутствуют какие-либо из компонентов, указанных в ключах агрегирования, исключаются из оценки и обработки правила на основе скорости.
  • CONSTANT - Подсчитывайте и ограничивайте запросы, соответствующие оператору сужения области действия правила на основе скорости. С этим параметром подсчитанные запросы не агрегируются далее. Оператор сужения области действия является единственной используемой спецификацией. Когда количество всех запросов, удовлетворяющих оператору сужения области действия, превышает предел, WAF применяет действие правила ко всем запросам, удовлетворяющим оператору сужения области действия. С этим параметром необходимо настроить свойство ScopeDownStatement .
  • CUSTOM_KEYS - Агрегируйте количество запросов, используя один или несколько компонентов веб-запроса в качестве ключей агрегирования. С этим параметром необходимо указать ключи агрегирования в свойстве CustomKeys . Чтобы агрегировать только по IP-адресу или только по перенаправленному IP-адресу, не используйте пользовательские ключи. Вместо этого установите тип ключа агрегирования в значение IP или FORWARDED_IP .
  • FORWARDED_IP - Агрегируйте количество запросов по первому IP-адресу в заголовке HTTP. С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig . Чтобы агрегировать по комбинации перенаправленного IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .
  • IP - Агрегируйте количество запросов по IP-адресу из источника веб-запроса. Чтобы агрегировать по комбинации IP-адреса с другими ключами агрегирования, используйте CUSTOM_KEYS .

( … recursive … )ForwardedIPConfig -> (structure)

Конфигурация для проверки IP-адресов в указанном вами заголовке HTTP вместо использования IP-адреса, сообщаемого источником веб-запроса. Обычно это заголовок X-Forwarded-For (XFF), но вы можете указать любое имя заголовка.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Это требуется, если вы указываете перенаправленный IP-адрес в параметрах ключа агрегирования правила.

HeaderName -> (string)

Имя заголовка HTTP, используемого для IP-адреса. Например, чтобы использовать заголовок X-Forwarded-For (XFF), установите для этого значение X-Forwarded-For .

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

FallbackBehavior -> (string)

Статус соответствия, который необходимо назначить веб-запросу, если запрос не содержит допустимый IP-адрес в указанной позиции.

Примечание

Если указанный заголовок отсутствует в запросе, WAF вообще не применяет правило к веб-запросу.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

CustomKeys -> (list)

Задает агрегированные ключи для использования в правиле на основе скорости.

(структура)

Задает один пользовательский агрегированный ключ для правила на основе скорости.

Примечание

Веб-запросы, в которых отсутствуют какие-либо компоненты, указанные в ключах агрегации, исключаются из оценки и обработки правила на основе скорости.

Заголовок -> (структура)

Используйте значение заголовка в запросе в качестве агрегированного ключа. Каждое отдельное значение в заголовке вносит вклад в экземпляр агрегации. Если вы используете один заголовок в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Имя -> (строка)

Имя заголовка для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с параметра самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

Cookie -> (структура)

Используйте значение cookie в запросе в качестве агрегированного ключа. Каждое отдельное значение в cookie вносит вклад в экземпляр агрегации. Если вы используете один cookie в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Имя -> (строка)

Имя cookie для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с параметра самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

QueryArgument -> (структура)

Используйте указанный аргумент запроса в качестве агрегированного ключа. Каждое отдельное значение для именованного аргумента запроса вносит вклад в экземпляр агрегации. Если вы используете один аргумент запроса в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

Имя -> (строка)

Имя аргумента запроса для использования.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с параметра самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

QueryString -> (структура)

Используйте строку запроса запроса в качестве агрегированного ключа. Каждая отдельная строка вносит вклад в экземпляр агрегации. Если вы используете только строку запроса в качестве пользовательского ключа, то каждая строка полностью определяет экземпляр агрегации.

TextTransformations -> (список)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с параметра самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

HTTPMethod -> (структура)

Используйте метод HTTP запроса в качестве агрегированного ключа. Каждый отдельный метод HTTP вносит вклад в экземпляр агрегации. Если вы используете только метод HTTP в качестве пользовательского ключа, то каждый метод полностью определяет экземпляр агрегации.

ForwardedIP -> (структура)

Используйте первый IP-адрес в заголовке HTTP в качестве агрегированного ключа. Каждый отдельный перенаправленный IP-адрес вносит вклад в экземпляр агрегации.

При указании IP-адреса или перенаправленного IP-адреса в параметрах пользовательского ключа необходимо также указать как минимум еще один ключ для использования. Вы можете агрегировать только по перенаправленному IP-адресу, указав FORWARDED_IP в заявлении на основе скорости AggregateKeyType .

С этим параметром необходимо указать заголовок для использования в свойстве ForwardedIPConfig правила на основе скорости.

IP -> (структура)

Используйте исходный IP-адрес запроса в качестве агрегированного ключа. Каждый отдельный IP-адрес вносит вклад в экземпляр агрегации.

При указании IP-адреса или перенаправленного IP-адреса в параметрах пользовательского ключа необходимо также указать как минимум еще один ключ для использования. Вы можете агрегировать только по IP-адресу, указав IP в заявлении на основе скорости AggregateKeyType .

LabelNamespace -> (структура)

Используйте указанное пространство имен метки в качестве агрегированного ключа. Каждое отдельное полное имя метки, имеющее указанное пространство имен метки, вносит вклад в экземпляр агрегации. Если вы используете только одно пространство имен метки в качестве пользовательского ключа, то каждое имя метки полностью определяет экземпляр агрегации.

Это использует только метки, добавленные в запрос правилами, которые оцениваются перед этим правилом на основе скорости в веб-ACL.

Для получения информации о пространствах имен и именах меток см. Label syntax and naming requirements в WAF Developer Guide .

Namespace -> (string)

Пространство имен для использования для агрегации.

UriPath -> (структура)

Используйте путь URI запроса в качестве агрегированного ключа. Каждый отдельный путь URI вносит вклад в экземпляр агрегации. Если вы используете только путь URI в качестве пользовательского ключа, то каждый путь URI полностью определяет экземпляр агрегации.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также используются в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегации. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с параметра самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматирования, которые злоумышленники используют в веб-запросах, пытаясь обойти обнаружение.

Приоритет -> (целое число)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного содержимого. Приоритеты не обязательно должны быть последовательными, но все они должны быть разными.

Type -> (string)

Подробные описания каждого типа преобразования см. в разделе Text transformations в WAF Developer Guide .

JA3Fingerprint -> (структура)

Используйте отпечаток JA3 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA3 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегации.

FallbackBehavior -> (string)

Состояние соответствия, которое следует присвоить веб-запросу, если недостаточно информации TLS Client Hello для вычисления отпечатка JA3.

Можно указать следующие варианты поведения при резервном копировании:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (структура)

Используйте отпечаток JA4 запроса в качестве агрегированного ключа. Если вы используете один отпечаток JA4 в качестве пользовательского ключа, то каждое значение полностью определяет экземпляр агрегирования.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если недостаточно информации TSL Client Hello для вычисления отпечатка JA4.

Вы можете указать следующие резервные поведения:

  • MATCH - Рассматривать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Рассматривать веб-запрос как не соответствующий оператору правила.

AndStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой AND. Вы предоставляете более одного Statement в AndStatement .

Statements -> (list)

Операторы для объединения с логикой AND. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

OrStatement -> (structure)

Логический оператор правила, используемый для объединения других операторов правила с логикой OR. Вы предоставляете более одного Statement в OrStatement .

Statements -> (list)

Операторы для объединения с логикой OR. Вы можете использовать любые операторы, которые могут быть вложены.

( … recursive … )

NotStatement -> (structure)

Логический оператор правила, используемый для отрицания результатов другого оператора правила. Вы предоставляете один Statement в NotStatement .

( … recursive … )

ManagedRuleGroupStatement -> (structure)

Оператор правила, используемый для запуска правил, определенных в управляемой группе правил. Чтобы использовать это, укажите имя поставщика и имя группы правил в этом операторе. Вы можете получить требуемые имена, вызвав ListAvailableManagedRuleGroups .

Вы не можете вложить ManagedRuleGroupStatement , например, для использования внутри NotStatement или OrStatement . Вы не можете использовать управляемую группу правил внутри другой группы правил. Вы можете ссылаться на управляемую группу правил только как на оператор верхнего уровня в правиле, которое вы определяете в веб-ACL.

Примечание

С вас взимается дополнительная плата при использовании управляемой группы правил WAF Bot Control AWSManagedRulesBotControlRuleSet , управляемой группы правил WAF Fraud Control account takeover prevention (ATP) AWSManagedRulesATPRuleSet или управляемой группы правил WAF Fraud Control account creation fraud prevention (ACFP) AWSManagedRulesACFPRuleSet . Для получения дополнительной информации см. WAF Pricing .

VendorName -> (string)

Имя поставщика управляемой группы правил. Вы используете это вместе с именем группы правил для идентификации группы правил.

Name -> (string)

Имя управляемой группы правил. Вы используете это вместе с именем поставщика для идентификации группы правил.

Version -> (string)

Версия управляемой группы правил для использования. Если вы укажете это, настройка версии будет фиксирована до тех пор, пока вы ее не измените. Если вы не укажете это, WAF использует версию по умолчанию поставщика, а затем сохраняет версию по умолчанию поставщика при обновлении настроек управляемой группы правил поставщика.

ExcludedRules -> (list)

Правила в ссылочной группе правил, для которых действия установлены на Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

(structure)

Указывает одно правило в группе правил, действие которого вы хотите переопределить на Count .

Примечание

Вместо этого варианта используйте RuleActionOverrides . Он принимает любую допустимую настройку действия, включая Count .

Name -> (string)

Имя правила, действие которого вы хотите переопределить на Count .

( … recursive … )ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезной нагрузке запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезной нагрузке запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

(structure)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезной нагрузке запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезной нагрузке запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил Bot Control.

Примеры спецификаций см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

Как вы это укажете, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя выглядит как /form/username .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем username1 спецификация поля имени пользователя выглядит как username1

PasswordField -> (structure)

Примечание

Вместо этой настройки укажите свою конфигурацию в разделе конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

Как вы это укажете, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация пароля выглядит как /form/password .
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом input с именем password1 спецификация поля пароля выглядит как password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил Bot Control. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Для получения информации об использовании управляемой группы правил Bot Control см. WAF Bot Control rule group и WAF Bot Control в Руководстве разработчика WAF .

InspectionLevel -> (string)

Уровень проверки для использования для группы правил Bot Control. Общий уровень является наименее затратным. Целевой уровень включает все общие правила и добавляет правила с более продвинутыми критериями проверки. Для получения подробной информации см. WAF Bot Control rule group в Руководстве разработчика WAF .

EnableMachineLearning -> (boolean)

Применяется только к целевому уровню проверки.

Определяет, использовать ли машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение требуется для правил Bot Control TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют наличие аномального поведения, которое может указывать на распределенную, скоординированную активность ботов.

Для получения дополнительной информации об этом выборе см. список этих правил в таблице в списке правил Bot Control в Руководстве разработчика WAF .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетной записи (ATP), AWSManagedRulesATPRuleSet . Используйте это для предоставления информации о запросах на вход в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на вход.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. раздел WAF Fraud Control account takeover prevention (ATP) rule group и WAF Fraud Control account takeover prevention (ATP) в WAF Developer Guide .

LoginPath -> (string)

Путь к конечной точке входа в ваше приложение. Например, для URL https://example.com/web/login вы укажете путь /web/login . Пути входа, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/login соответствует путям входа /web/login , /web/login/ , /web/loginPage и /web/login/thisPage , но не соответствует пути входа /home/web/login или /website/login .

Группа правил проверяет только HTTP POST запросы к указанной вами конечной точке входа.

RequestInspection -> (structure)

Критерии проверки запросов на вход, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки входа: JSON или закодированная форма.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя — username1

Identifier -> (string)

Имя поля имени пользователя.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя — /form/username .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя — username1

PasswordField -> (structure)

Название поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля — password1 .

Identifier -> (string)

Имя поля пароля.

Способ указания зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля — /form/password .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля — password1 .

ResponseInspection -> (structure)

Критерии проверки ответов на запросы на вход, используемые группой правил ATP для отслеживания показателей сбоев при входе.

Примечание

Проверка ответа доступна только в веб-ACL, защищающих дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках входа в систему клиентом, подсчитывая успешные и неудачные попытки для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от клиентских сеансов и IP-адресов, которые получили слишком много неудачных попыток входа за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и сбоя.

SuccessCodes -> (list)

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

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

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и сбоя.

Name -> (string)

Имя заголовка, с которым нужно сопоставить. Имя должно точно соответствовать, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байтов (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, указывающие на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешной, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, указывающие на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачной, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и сбоя. WAF может проверять первые 65 536 байтов (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения, с которым нужно сопоставить в JSON. Идентификатор должен точно соответствовать, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешную попытку входа в систему или создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы входа.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетных записей (ACFP), AWSManagedRulesACFPRuleSet . Используйте это, чтобы предоставить информацию о запросе на создание учетной записи группе правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. WAF Fraud Control account creation fraud prevention (ACFP) rule group и WAF Fraud Control account creation fraud prevention (ACFP) в Руководстве разработчика WAF .

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая принимает заполненную форму регистрации для нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL https://example.com/web/newaccount , вы предоставите путь /web/newaccount . Пути страниц создания учетных записей, которые начинаются с указанного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетных записей /web/newaccount , /web/newaccount/ , /web/newaccountPage и /web/newaccount/thisPage , но не соответствует пути /home/web/newaccount или /website/newaccount .

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая представляет форму регистрации новым пользователям.

Примечание

Эта страница должна принимать GET text/html запросы.

Например, для URL https://example.com/web/registration , вы предоставите путь /web/registration . Пути страниц регистрации, которые начинаются с указанного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration , /web/registration/ , /web/registrationPage и /web/registration/thisPage , но не соответствует пути /home/web/registration или /website/registration .

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезной нагрузки для вашей конечной точки создания учетной записи: JSON или форма с кодировкой.

UsernameField -> (structure)

Название поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } }, спецификация поля имени пользователя — /form/username.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1, спецификация поля имени пользователя — username1

Identifier -> (string)

Название поля имени пользователя.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } }, спецификация поля имени пользователя — /form/username.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1, спецификация поля имени пользователя — username1

PasswordField -> (structure)

Название поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } }, спецификация поля пароля — /form/password.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1, спецификация поля пароля — password1.

Identifier -> (string)

Название поля пароля.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } }, спецификация поля пароля — /form/password.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1, спецификация поля пароля — password1.

EmailField -> (structure)

Название поля в полезной нагрузке запроса, содержащего адрес электронной почты вашего клиента.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } }, спецификация поля электронной почты — /form/email.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем email1, спецификация поля электронной почты — email1.

Identifier -> (string)

Название поля электронной почты.

Способ указания этого зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "email": "THE_EMAIL" } }, спецификация поля электронной почты — /form/email.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем email1, спецификация поля электронной почты — email1.

PhoneNumberFields -> (list)

Названия полей в полезной нагрузке запроса, содержащих основной номер телефона вашего клиента.

Укажите порядок полей номера телефона в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

Способ указания полей номера телефона зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } }, идентификаторы полей номера телефона — /form/primaryphoneline1, /form/primaryphoneline2 и /form/primaryphoneline3.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryphoneline1, primaryphoneline2 и primaryphoneline3, идентификаторы полей номера телефона — primaryphoneline1, primaryphoneline2 и primaryphoneline3.

(structure)

Название поля в полезной нагрузке запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP.

Identifier -> (string)

Название отдельного поля основного номера телефона.

Способ указания полей номера телефона зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } }, идентификаторы полей номера телефона — /form/primaryphoneline1, /form/primaryphoneline2 и /form/primaryphoneline3.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryphoneline1, primaryphoneline2 и primaryphoneline3, идентификаторы полей номера телефона — primaryphoneline1, primaryphoneline2 и primaryphoneline3.

AddressFields -> (list)

Названия полей в полезной нагрузке запроса, содержащих основной физический адрес вашего клиента.

Укажите порядок полей адреса в массиве точно так же, как они упорядочены в полезной нагрузке запроса.

Способ указания полей адреса зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } }, идентификаторы полей адреса — /form/primaryaddressline1, /form/primaryaddressline2 и /form/primaryaddressline3.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryaddressline1, primaryaddressline2 и primaryaddressline3, идентификаторы полей адреса — primaryaddressline1, primaryaddressline2 и primaryaddressline3.

(structure)

Название поля в полезной нагрузке запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP.

Identifier -> (string)

Название отдельного поля основного адреса.

Способ указания полей адреса зависит от типа полезной нагрузки для проверки запроса.

  • Для полезных нагрузок JSON укажите идентификаторы полей в синтаксисе указателя JSON. Для получения информации о синтаксисе указателя JSON см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer. Например, для полезной нагрузки JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } }, идентификаторы полей адреса — /form/primaryaddressline1, /form/primaryaddressline2 и /form/primaryaddressline3.
  • Для типов полезной нагрузки с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryaddressline1, primaryaddressline2 и primaryaddressline3, идентификаторы полей адреса — primaryaddressline1, primaryaddressline2 и primaryaddressline3.

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетной записи.

Примечание

Проверка ответа доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках создания учетной записи клиентом, подсчитывая успешные и неудачные попытки с каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы из сеансов клиентов и IP-адресов, которые предприняли слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (структура)

Настраивает проверку кода состояния ответа для индикаторов успеха и неудачи.

SuccessCodes -> (список)

Коды состояния в ответе, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, код состояния ответа должен соответствовать одному из этих. Каждый код должен быть уникальным среди кодов состояния успеха и неудачи.

Пример JSON: "SuccessCodes": [ 200, 201 ]

(целое число)

FailureCodes -> (список)

Коды состояния в ответе, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачным, код состояния ответа должен соответствовать одному из этих. Каждый код должен быть уникальным среди кодов состояния успеха и неудачи.

Пример JSON: "FailureCodes": [ 400, 404 ]

(целое число)

Header -> (структура)

Настраивает проверку заголовка ответа для индикаторов успеха и неудачи.

Name -> (string)

Имя заголовка для сопоставления. Имя должно быть точным совпадением, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (список)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (список)

Значения в заголовке ответа с указанным именем, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (структура)

Настраивает проверку тела ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (список)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (список)

Строки в теле ответа, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачным, строка может быть в любом месте тела и должна быть точным совпадением, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (структура)

Настраивает проверку JSON ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения для сопоставления в JSON. Идентификатор должен быть точным совпадением, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (список)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (список)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачный вход в систему или попытку создания учетной записи. Чтобы считаться неудачным, значение должно быть точным совпадением, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (list)

Параметры действия для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

(структура)

Параметр действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правил на Count , а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

Name -> (string)

Имя правила для переопределения.

Примечание

Позаботьтесь о проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure)

Действие переопределения, которое следует использовать вместо настроенного действия правила в группе правил.

Block -> (structure)

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure)

Определяет пользовательский ответ на веб-запрос.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP, возвращаемый клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF возвращал клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено на блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем, в действии правила или действии по умолчанию веб-ACL BlockAction, вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Можно указать любое имя заголовка, кроме content-type . Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Allow -> (structure)

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Count -> (structure)

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса, используя оставшиеся правила в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. раздел Квоты WAF в Руководстве разработчика WAF .

(structure)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling.

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

LabelMatchStatement -> (structure)

Оператор правила для сопоставления с метками, добавленными к веб-запросу правилами, которые уже были запущены в веб-ACL.

Оператор сопоставления меток предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или всю строку полностью определенного имени метки, которая была добавлена к веб-запросу. Полностью определенные метки имеют префикс, необязательные пространства имен и имя метки. Префикс идентифицирует группу правил или контекст веб-ACL правила, которое добавило метку. Если вы не предоставите полностью определенное имя в строке сопоставления меток, WAF выполнит поиск меток, добавленных в том же контексте, что и оператор сопоставления меток.

Scope -> (string)

Укажите, хотите ли вы сопоставлять, используя имя метки или только пространство имен.

Key -> (string)

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от параметра Scope оператора сопоставления:

  • Если Scope указывает LABEL , то это указание должно включать имя и может включать любое количество предыдущих спецификаций пространства имен и префикс до предоставления полностью определенного имени метки.
  • Если Scope указывает NAMESPACE , то это указание может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен метки из группы правил или веб-ACL, где метка возникла.

Метки чувствительны к регистру, и компоненты метки должны быть разделены двоеточием, например NS1:NS2:name .

RegexMatchStatement -> (structure)

Оператор правила, используемый для поиска соответствия компонентам веб-запроса с одним регулярным выражением.

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверил.

SingleHeader -> (structure)

Проверить один заголовок. Укажите имя заголовка для проверки, например User-Agent или Referer . Этот параметр не чувствителен к регистру.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверить один аргумент запроса. Укажите имя аргумента запроса для проверки, например UserName или SalesRegion . Имя может содержать до 30 символов и не чувствительно к регистру.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверить все аргументы запроса.

UriPath -> (structure)

Проверить путь URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например /images/daily-ad.jpg .

QueryString -> (structure)

Проверить строку запроса. Это часть URL-адреса, которая отображается после символа ?, если таковой имеется.

Body -> (structure)

Проверить тело запроса как простой текст. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта Body.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверить метод HTTP. Метод указывает тип операции, которую запрос запрашивает у источника.

JsonBody -> (structure)

Проверить тело запроса как JSON. Тело запроса следует непосредственно за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Для получения информации о том, как обрабатывать тела запросов большого размера, см. конфигурацию объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody.

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody.

Предоставьте пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Для получения информации об этом синтаксисе см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с помощью MatchPattern. Если вы укажете ALL, WAF сопоставляет ключи и значения.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Требуется, чтобы соответствие было найдено в ключах, значениях или в обоих. Чтобы требовать соответствия в ключах и в значениях, используйте логическое оператор AND для объединения двух правил сопоставления: одного для проверки ключей, а другого — для проверки значений.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING — проверять тело как простой текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает контент только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Синтаксический анализ WAF не полностью проверяет входную строку JSON, поэтому синтаксический анализ может быть успешным даже для недействительного JSON. Когда синтаксический анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если размер тела превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовая служба хоста пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байта).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access по умолчанию установлено ограничение в 16 КБ (16 384 байта), и вы можете увеличить ограничение для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Параметры обработки больших размеров следующие:

  • CONTINUE — обычно проверять доступное содержимое тела в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки больших размеров с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые WAF проверяет.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков большого размера в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества заголовков для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All, IncludedHeaders или ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверьте только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверьте только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Требуется соответствие в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме, в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Cookies -> (structure)

Проверьте файлы cookie запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые WAF проверяет.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого файлов cookie большого размера в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества файлов cookie для проверки в веб-запросе.

Вы должны указать ровно один параметр: либо All, IncludedCookies или ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверьте только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверьте только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с критериями проверки правил. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует соответствия в ключах и соответствия в значениях. Требуется соответствие в ключах, значениях или обоих. Чтобы требовать соответствия в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления: одно для проверки ключей, а другое для проверки значений.

OversizeHandling -> (string)

Что WAF следует делать, если файлы cookie запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или всего 200 файлов cookie. Базовая служба хоста пересылает максимум 200 файлов cookie и не более 8 КБ содержимого файлов cookie в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные файлы cookie в обычном режиме, в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том порядке, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента для сопоставления полей при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавленных пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что WAF следует делать, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запросов, если они превышают 8 КБ (8192 байта) или всего 200 заголовков. Базовая служба хоста пересылает максимум 200 заголовков и не более 8 КБ содержимого заголовков в WAF.

Варианты обработки больших размеров следующие:

  • CONTINUE - Проверьте доступные заголовки в обычном режиме, в соответствии с критериями проверки правил.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток JA3 запроса. Отпечаток JA3 — это 32-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и записывает этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставьте отпечаток JA4 запроса. Отпечаток JA4 — это 36-значный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и записывает этот отпечаток для каждого запроса, имеющего достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Вы можете использовать этот выбор только с сопоставлением строк ByteMatchStatement с PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Информацию о полях журнала см. в разделе «Поля журнала» в Руководстве разработчика WAF.

Предоставьте строку отпечатка JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить ее с любыми будущими запросами с той же конфигурацией TLS.

FallbackBehavior -> (string)

Статус соответствия, который необходимо присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Вы можете указать следующие варианты поведения при отказе:

  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

UriFragment -> (structure)

Проверьте фрагменты URI запроса. Необходимо настроить фильтры области и сопоставления шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который WAF проверяет.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого фрагментов URI большого размера в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что WAF следует делать, если не удается полностью проанализировать тело JSON. Возможны следующие варианты:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Обрабатывать веб-запрос как соответствующий оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Обрабатывать веб-запрос как не соответствующий оператору правила.

Если вы не предоставите этот параметр, WAF будет анализировать и оценивать содержимое только до первой ошибки анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недопустимого JSON. Когда анализ выполнен успешно, WAF не применяет поведение при отказе. Дополнительную информацию см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед использованием их в качестве настраиваемых ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования над указанным содержимым, начиная с настройки с наименьшим приоритетом, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторое необычное форматирование, которое злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета к самому высокому, перед проверкой преобразованного контента. Приоритеты не обязательно должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

ManagedRuleGroupConfigs -> (list)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезных данных запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил управления ботами.

(структура)

Дополнительная информация, используемая управляемой группой правил. Многие управляемые группы правил не требуют этого.

Группы правил, используемые для интеллектуального смягчения угроз, требуют дополнительной настройки:

  • Используйте объект конфигурации AWSManagedRulesACFPRuleSet для настройки управляемой группы правил предотвращения мошенничества при создании учетной записи. Конфигурация включает страницы регистрации и регистрации вашего приложения, а также местоположения в полезных данных запроса на создание учетной записи данных, таких как поля электронной почты и номера телефона пользователя.
  • Используйте объект конфигурации AWSManagedRulesATPRuleSet для настройки управляемой группы правил предотвращения захвата учетной записи. Конфигурация включает страницу входа в ваше приложение и местоположения в полезных данных запроса входа данных, таких как имя пользователя и пароль.
  • Используйте объект конфигурации AWSManagedRulesBotControlRuleSet для настройки уровня защиты, который вы хотите, чтобы использовала группа правил управления ботами.

Например, спецификации см. в разделе примеров CreateWebACL .

LoginPath -> (string)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в разделе AWSManagedRulesATPRuleSet .

PayloadType -> (string)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

UsernameField -> (structure)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля имени пользователя.

Как это указать, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя — /form/username .
  • Для типов полезных данных с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 спецификация поля имени пользователя — username1

PasswordField -> (structure)

Примечание

Вместо этой настройки предоставьте свою конфигурацию в конфигурации проверки запроса для AWSManagedRulesATPRuleSet или AWSManagedRulesACFPRuleSet .

Identifier -> (string)

Имя поля пароля.

Как это указать, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе указателя JSON. Информацию о синтаксисе указателя JSON см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля — /form/password .
  • Для типов полезных данных с кодировкой формы используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 спецификация поля пароля — password1 .

AWSManagedRulesBotControlRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил управления ботами. Используйте это, чтобы указать уровень проверки, который вы хотите использовать. Информацию об использовании управляемой группы правил управления ботами см. в разделе Группа правил управления ботами WAF и Управление ботами WAF в Руководстве разработчика WAF .

InspectionLevel -> (string)

Уровень проверки, используемый для группы правил управления ботами. Общий уровень — наименее затратный. Целевой уровень включает все общие правила уровня и добавляет правила с более продвинутыми критериями проверки. Подробности см. в разделе Группа правил управления ботами WAF в Руководстве разработчика WAF .

EnableMachineLearning -> (boolean)

Применяется только к целевому уровню проверки.

Определяет, использовать ли машинное обучение (ML) для анализа вашего веб-трафика на предмет активности, связанной с ботами. Машинное обучение необходимо для правил управления ботами TGT_ML_CoordinatedActivityLow и TGT_ML_CoordinatedActivityMedium , которые проверяют наличие аномального поведения, которое может указывать на распределенную, скоординированную активность ботов.

Дополнительные сведения об этом выборе см. в списке этих правил в таблице в списке правил управления ботами в Руководстве разработчика WAF .

По умолчанию: TRUE

AWSManagedRulesATPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения захвата учетной записи (ATP), AWSManagedRulesATPRuleSet . Используйте это, чтобы предоставить информацию о запросе на вход в группу правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это также, чтобы предоставить информацию о том, как ваш дистрибутив отвечает на запросы входа в систему.

Эта конфигурация заменяет отдельные поля конфигурации в ManagedRuleGroupConfig и предоставляет дополнительную конфигурацию функций.

Для получения информации об использовании управляемой группы правил ATP см. группу правил предотвращения захвата учетных записей (ATP) WAF Fraud Control и предотвращение захвата учетных записей (ATP) WAF Fraud Control в Руководстве разработчика WAF .

LoginPath -> (string) - Путь к логину

Путь к конечной точке входа в вашу систему. Например, для URL-адреса https://example.com/web/login , вы должны предоставить путь /web/login . Пути входа, начинающиеся с указанного вами пути, считаются совпадением. Например, /web/login соответствует путям входа /web/login , /web/login/ , /web/loginPage и /web/login/thisPage , но не соответствует пути входа /home/web/login или /website/login .

Группа правил проверяет только запросы HTTP POST к указанной конечной точке входа.

RequestInspection -> (structure) - Проверка запроса

Критерии проверки запросов входа в систему, используемые группой правил ATP для проверки использования учетных данных.

PayloadType -> (string) - Тип полезной нагрузки

Тип полезной нагрузки для вашей конечной точки входа, либо JSON, либо закодирован в форме.

UsernameField -> (structure) - Поле имени пользователя

Имя поля в полезной нагрузке запроса, содержащего имя пользователя вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе JSON-указателя. Для получения информации о синтаксисе JSON-указателя см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя - /form/username .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 спецификация поля имени пользователя - username1

Identifier -> (string)

Имя поля имени пользователя.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе JSON-указателя. Для получения информации о синтаксисе JSON-указателя см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "username": "THE_USERNAME" } } спецификация поля имени пользователя - /form/username .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем username1 спецификация поля имени пользователя - username1

PasswordField -> (structure) - Поле пароля

Имя поля в полезной нагрузке запроса, содержащего пароль вашего клиента.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе JSON-указателя. Для получения информации о синтаксисе JSON-указателя см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля - /form/password .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 спецификация поля пароля - password1 .

Identifier -> (string)

Имя поля пароля.

Как это указать, зависит от типа полезной нагрузки проверки запроса.

  • Для полезных нагрузок JSON укажите имя поля в синтаксисе JSON-указателя. Для получения информации о синтаксисе JSON-указателя см. документацию Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезной нагрузки JSON { "form": { "password": "THE_PASSWORD" } } спецификация поля пароля - /form/password .
  • Для типов полезной нагрузки, закодированных в форме, используйте имена форм HTML. Например, для формы HTML с элементом ввода с именем password1 спецификация поля пароля - password1 .

ResponseInspection -> (structure) - Проверка ответа

Критерии проверки ответов на запросы входа в систему, используемые группой правил ATP для отслеживания частоты неудачных попыток входа.

Примечание

Проверка ответа доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ATP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно на попытки входа клиентов, подсчитывая успешные и неудачные попытки для каждого IP-адреса и сеанса клиента. Используя эту информацию, группа правил помечает и смягчает запросы от сеансов клиентов и IP-адресов, у которых было слишком много неудачных попыток входа в систему за короткий промежуток времени.

StatusCode -> (structure) - Код состояния

Настраивает проверку кода состояния ответа на индикаторы успеха и сбоя.

SuccessCodes -> (list) - Коды успешного выполнения

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

Пример JSON: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list) - Коды сбоя

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

Пример JSON: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure) - Заголовок

Настраивает проверку заголовка ответа на индикаторы успеха и сбоя.

Name -> (string) - Имя

Имя заголовка для сопоставления. Имя должно быть точным соответствием, включая регистр.

Пример JSON: "Name": [ "RequestResult" ]

SuccessValues -> (list) - Значения успеха

Значения в заголовке ответа с указанным именем, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "SuccessValues": [ "LoginPassed", "Successful login" ] и "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list) - Значения сбоя

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Примеры JSON: "FailureValues": [ "LoginFailed", "Failed login" ] и "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure) - Содержимое тела

Настраивает проверку тела ответа на индикаторы успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list) - Строки успеха

Строки в теле ответа, указывающие на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, строка может находиться в любом месте тела и должна быть точным соответствием, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Примеры JSON: "SuccessStrings": [ "Login successful" ] и "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list) - Строки сбоя

Строки в теле ответа, указывающие на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачной, строка может находиться в любом месте тела и должна быть точным соответствием, включая регистр. Каждая строка должна быть уникальной среди строк успеха и сбоя.

Пример JSON: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure) - JSON

Настраивает проверку JSON ответа на индикаторы успеха и сбоя. WAF может проверять первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string) - Идентификатор

Идентификатор для сопоставления со значением в JSON. Идентификатор должен быть точным соответствием, включая регистр.

Примеры JSON: "Identifier": [ "/login/success" ] и "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list) - Значения успеха

Значения для указанного идентификатора в JSON ответа, которые указывают на успешную попытку входа или создания учетной записи. Чтобы считаться успешным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list) - Значения сбоя

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа или создания учетной записи. Чтобы считаться неудачным, значение должно быть точным соответствием, включая регистр. Каждое значение должно быть уникальным среди значений успеха и сбоя.

Пример JSON: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean) - Включить регулярное выражение в пути

Разрешить использование регулярных выражений в пути страницы входа.

AWSManagedRulesACFPRuleSet -> (structure)

Дополнительная конфигурация для использования управляемой группы правил предотвращения мошенничества при создании учетной записи (ACFP), AWSManagedRulesACFPRuleSet. Используйте это для предоставления информации о запросе на создание учетной записи группе правил. Для веб-ACL, защищающих дистрибутивы CloudFront, используйте это, чтобы также предоставить информацию о том, как ваш дистрибутив реагирует на запросы на создание учетной записи.

Для получения информации об использовании управляемой группы правил ACFP см. WAF Fraud Control предотвращение мошенничества при создании учетной записи (ACFP) и WAF Fraud Control предотвращение мошенничества при создании учетной записи (ACFP) в Руководстве разработчика WAF.

CreationPath -> (string)

Путь к конечной точке создания учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая принимает заполненную форму регистрации для нового пользователя. Эта страница должна принимать POST запросы.

Например, для URL https://example.com/web/newaccount, вы должны предоставить путь /web/newaccount. Пути к страницам создания учетной записи, которые начинаются с указанного вами пути, считаются совпадением. Например, /web/newaccount соответствует путям создания учетной записи /web/newaccount, /web/newaccount/, /web/newaccountPage и /web/newaccount/thisPage, но не соответствует пути /home/web/newaccount или /website/newaccount.

RegistrationPagePath -> (string)

Путь к конечной точке регистрации учетной записи для вашего приложения. Это страница на вашем веб-сайте, которая представляет форму регистрации новым пользователям.

Примечание

Эта страница должна принимать запросы GET text/html.

Например, для URL https://example.com/web/registration, вы должны предоставить путь /web/registration. Пути к страницам регистрации, которые начинаются с указанного вами пути, считаются совпадением. Например, /web/registration соответствует путям регистрации /web/registration, /web/registration/, /web/registrationPage и /web/registration/thisPage, но не соответствует пути /home/web/registration или /website/registration.

RequestInspection -> (structure)

Критерии для проверки запросов на создание учетной записи, используемые группой правил ACFP для проверки и отслеживания попыток создания учетной записи.

PayloadType -> (string)

Тип полезных данных для вашей конечной точки создания учетной записи, JSON или закодированные формы.

UsernameField -> (structure)

Название поля в полезных данных запроса, содержащего имя пользователя вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя: username1

Identifier -> (string)

Имя поля имени пользователя.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "username": "THE_USERNAME" } } , спецификация поля имени пользователя: /form/username .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем username1 , спецификация поля имени пользователя: username1

PasswordField -> (structure)

Название поля в полезных данных запроса, содержащего пароль вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля: /form/password .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля: password1 .

Identifier -> (string)

Имя поля пароля.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "password": "THE_PASSWORD" } } , спецификация поля пароля: /form/password .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем password1 , спецификация поля пароля: password1 .

EmailField -> (structure)

Название поля в полезных данных запроса, содержащего электронную почту вашего клиента.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты: /form/email .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем email1 , спецификация поля электронной почты: email1 .

Identifier -> (string)

Имя поля электронной почты.

Как вы это укажете, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите имя поля в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "email": "THE_EMAIL" } } , спецификация поля электронной почты: /form/email .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементом ввода с именем email1 , спецификация поля электронной почты: email1 .

PhoneNumberFields -> (list)

Названия полей в полезных данных запроса, содержащих основной номер телефона вашего клиента.

Упорядочите поля номера телефона в массиве именно так, как они упорядочены в полезных данных запроса.

Как вы укажете поля номера телефона, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

(structure)

Имя поля в полезных данных запроса, содержащего часть или весь основной номер телефона вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя одного поля основного номера телефона.

Как вы укажете поля номера телефона, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "primaryphoneline1": "THE_PHONE1", "primaryphoneline2": "THE_PHONE2", "primaryphoneline3": "THE_PHONE3" } } , идентификаторы полей номера телефона: /form/primaryphoneline1 , /form/primaryphoneline2 и /form/primaryphoneline3 .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryphoneline1 , primaryphoneline2 и primaryphoneline3 , идентификаторы полей номера телефона: primaryphoneline1 , primaryphoneline2 и primaryphoneline3 .

AddressFields -> (list)

Названия полей в полезных данных запроса, содержащих основной физический адрес вашего клиента.

Упорядочите поля адреса в массиве именно так, как они упорядочены в полезных данных запроса.

Как вы укажете поля адреса, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

(structure)

Имя поля в полезных данных запроса, содержащего часть или весь основной физический адрес вашего клиента.

Этот тип данных используется в типе данных RequestInspectionACFP .

Identifier -> (string)

Имя одного поля основного адреса.

Как вы укажете поля адреса, зависит от типа полезных данных проверки запроса.

  • Для полезных данных JSON укажите идентификаторы полей в синтаксисе JSON pointer. Информацию о синтаксисе JSON Pointer см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer . Например, для полезных данных JSON { "form": { "primaryaddressline1": "THE_ADDRESS1", "primaryaddressline2": "THE_ADDRESS2", "primaryaddressline3": "THE_ADDRESS3" } } , идентификаторы полей адреса: /form/primaryaddressline1 , /form/primaryaddressline2 и /form/primaryaddressline3 .
  • Для типов полезных данных, закодированных в форме, используйте имена HTML-форм. Например, для HTML-формы с элементами ввода с именами primaryaddressline1 , primaryaddressline2 и primaryaddressline3 , идентификаторы полей адреса: primaryaddressline1 , primaryaddressline2 и primaryaddressline3 .

ResponseInspection -> (structure)

Критерии для проверки ответов на запросы создания учетной записи, используемые группой правил ACFP для отслеживания показателей успешности создания учетной записи.

Примечание

Проверка ответа доступна только в веб-ACL, которые защищают дистрибутивы Amazon CloudFront.

Группа правил ACFP оценивает ответы, которые ваши защищенные ресурсы отправляют обратно при попытках создания учетной записи клиентом, ведя подсчет успешных и неудачных попыток с каждого IP-адреса и клиентской сессии. Используя эту информацию, группа правил помечает и смягчает запросы от клиентских сессий и IP-адресов, у которых было слишком много успешных попыток создания учетной записи за короткий промежуток времени.

StatusCode -> (structure)

Настраивает проверку кода состояния ответа для индикаторов успеха и неудачи.

SuccessCodes -> (list)

Коды состояния в ответе, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, код состояния ответа должен соответствовать одному из этих кодов. Каждый код должен быть уникальным среди кодов состояния успеха и неудачи.

JSON example: "SuccessCodes": [ 200, 201 ]

(integer)

FailureCodes -> (list)

Коды состояния в ответе, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, код состояния ответа должен соответствовать одному из этих кодов. Каждый код должен быть уникальным среди кодов состояния успеха и неудачи.

JSON example: "FailureCodes": [ 400, 404 ]

(integer)

Header -> (structure)

Настраивает проверку заголовка ответа для индикаторов успеха и неудачи.

Name -> (string)

Имя заголовка для сопоставления. Имя должно точно соответствовать, включая регистр.

JSON example: "Name": [ "RequestResult" ]

SuccessValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON examples: "SuccessValues": [ "LoginPassed", "Successful login" ] and "SuccessValues": [ "AccountCreated", "Successful account creation" ]

(string)

FailureValues -> (list)

Значения в заголовке ответа с указанным именем, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON examples: "FailureValues": [ "LoginFailed", "Failed login" ] and "FailureValues": [ "AccountCreationFailed" ]

(string)

BodyContains -> (structure)

Настраивает проверку тела ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) тела ответа.

SuccessStrings -> (list)

Строки в теле ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

JSON examples: "SuccessStrings": [ "Login successful" ] and "SuccessStrings": [ "Account creation successful", "Welcome to our site!" ]

(string)

FailureStrings -> (list)

Строки в теле ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, строка может находиться в любом месте тела и должна точно соответствовать, включая регистр. Каждая строка должна быть уникальной среди строк успеха и неудачи.

JSON example: "FailureStrings": [ "Request failed" ]

(string)

Json -> (structure)

Настраивает проверку JSON ответа для индикаторов успеха и неудачи. WAF может проверить первые 65 536 байт (64 КБ) JSON ответа.

Identifier -> (string)

Идентификатор значения для сопоставления в JSON. Идентификатор должен точно соответствовать, включая регистр.

JSON examples: "Identifier": [ "/login/success" ] and "Identifier": [ "/sign-up/success" ]

SuccessValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на успешный вход в систему или попытку создания учетной записи. Чтобы считаться успешным, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON example: "SuccessValues": [ "True", "Succeeded" ]

(string)

FailureValues -> (list)

Значения для указанного идентификатора в JSON ответа, которые указывают на неудачную попытку входа в систему или создания учетной записи. Чтобы считаться неудачей, значение должно точно соответствовать, включая регистр. Каждое значение должно быть уникальным среди значений успеха и неудачи.

JSON example: "FailureValues": [ "False", "Failed" ]

(string)

EnableRegexInPath -> (boolean)

Разрешить использование регулярных выражений в пути страницы регистрации и пути создания учетной записи.

RuleActionOverrides -> (list)

Настройки действия для использования вместо действий правила, настроенных внутри группы правил. Вы указываете одну переоценку для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count, а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

(структура)

Настройка действия для использования вместо действия правила, настроенного внутри группы правил. Вы указываете одно переопределение для каждого правила, действие которого вы хотите изменить.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

Вы можете использовать переопределения для тестирования, например, вы можете переопределить все действия правила на Count, а затем отслеживать полученные метрики подсчета, чтобы понять, как группа правил будет обрабатывать ваш веб-трафик. Вы также можете навсегда переопределить некоторые или все действия, чтобы изменить способ управления веб-трафиком группой правил.

Name -> (string) - Имя

Имя правила для переопределения.

Примечание

Будьте внимательны при проверке имен правил в ваших переопределениях. Если вы предоставите имя правила, которое не соответствует имени какого-либо правила в группе правил, WAF не вернет ошибку и не применит настройку переопределения.

ActionToUse -> (structure) - Действие для использования

Действие переопределения для использования вместо настроенного действия правила в группе правил.

Block -> (structure) - Блокировать

Предписывает WAF заблокировать веб-запрос.

CustomResponse -> (structure) - Пользовательский ответ

Определяет пользовательский ответ для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

ResponseCode -> (integer) - Код ответа

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательских ответов в Руководстве разработчика WAF.

CustomResponseBodyKey -> (string) - Ключ пользовательского тела ответа

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено в блокировку. Для этого сначала определите ключ и значение тела ответа в настройке CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем в настройке действия правила или действия по умолчанию веб-ACL BlockAction вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list) - Заголовки ответа

Заголовки HTTP для использования в ответе. Вы можете указать любое имя заголовка, кроме content-type. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Используется в CustomResponse и CustomRequestHandling.

Name -> (string) - Имя

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string) - Значение

Значение пользовательского заголовка.

Allow -> (structure) - Разрешить

Предписывает WAF разрешить веб-запрос.

CustomRequestHandling -> (structure) - Пользовательская обработка запроса

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list) - Вставить заголовки

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Используется в CustomResponse и CustomRequestHandling.

Name -> (string) - Имя

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string) - Значение

Значение пользовательского заголовка.

Count -> (structure) - Подсчет

Предписывает WAF подсчитать веб-запрос, а затем продолжить оценку запроса с использованием оставшихся правил в веб-ACL.

CustomRequestHandling -> (structure) - Пользовательская обработка запроса

Определяет пользовательскую обработку для веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list) - Вставить заголовки

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Используется в CustomResponse и CustomRequestHandling.

Name -> (string) - Имя

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string) - Значение

Значение пользовательского заголовка.

Captcha -> (structure) - Captcha

Предписывает WAF запустить проверку CAPTCHA для веб-запроса.

CustomRequestHandling -> (structure) - Пользовательская обработка запроса

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list) - Вставить заголовки

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Используется в CustomResponse и CustomRequestHandling.

Name -> (string) - Имя

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string) - Значение

Значение пользовательского заголовка.

Challenge -> (structure) - Вызов

Предписывает WAF запустить проверку Challenge для веб-запроса.

CustomRequestHandling -> (structure) - Пользовательская обработка запроса

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка вызова определяет, что токен запроса действителен и не истек.

Для получения информации о настройке веб-запросов и ответов см. раздел Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF.

InsertHeaders -> (list) - Вставить заголовки

Заголовки HTTP для вставки в запрос. Дублирование имен заголовков запрещено.

Информацию об ограничениях на количество и размер пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF.

(structure)

Пользовательский заголовок для обработки пользовательских запросов и ответов. Используется в CustomResponse и CustomRequestHandling.

Name -> (string) - Имя

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf-, чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample.

Value -> (string) - Значение

Значение пользовательского заголовка.

LabelMatchStatement -> (structure) - LabelMatchStatement

Оператор правила для сопоставления с метками, которые были добавлены в веб-запрос правилами, которые уже были запущены в веб-ACL.

Оператор сопоставления меток предоставляет строку метки или пространства имен для поиска. Строка метки может представлять часть или всю строку полностью квалифицированного имени метки, которая была добавлена в веб-запрос. Полностью квалифицированные метки имеют префикс, необязательные пространства имен и имя метки. Префикс идентифицирует группу правил или контекст веб-ACL правила, добавившего метку. Если вы не предоставите полностью квалифицированное имя в своей строке сопоставления меток, WAF выполняет поиск меток, которые были добавлены в том же контексте, что и оператор сопоставления меток.

Scope -> (string) - Область

Укажите, хотите ли вы сопоставлять, используя имя метки или только пространство имен.

Key -> (string) - Ключ

Строка для сопоставления. Настройка, которую вы предоставляете для этого, зависит от настройки Scope оператора сопоставления:

  • Если Scope указывает LABEL, то это спецификация должна включать имя и может включать любое количество предшествующих спецификаций пространства имен и префикс до предоставления полностью квалифицированного имени метки.
  • Если Scope указывает NAMESPACE, то эта спецификация может включать любое количество смежных строк пространства имен и может включать весь префикс пространства имен метки из группы правил или веб-ACL, откуда происходит метка.

Метки чувствительны к регистру, а компоненты метки должны быть разделены двоеточием, например NS1:NS2:name.

RegexMatchStatement -> (structure) - RegexMatchStatement

Оператор правила, используемый для поиска соответствия компонентам веб-запроса с одним регулярным выражением.

RegexString -> (string)

Строка, представляющая регулярное выражение.

FieldToMatch -> (structure)

Часть веб-запроса, которую вы хотите, чтобы WAF проверял.

SingleHeader -> (structure)

Проверка одного заголовка. Укажите имя заголовка для проверки, например, User-Agent или Referer . Этот параметр не учитывает регистр.

Пример JSON: "SingleHeader": { "Name": "haystack" }

Кроме того, вы можете фильтровать и проверять все заголовки с помощью параметра Headers FieldToMatch.

Name -> (string)

Имя заголовка запроса для проверки.

SingleQueryArgument -> (structure)

Проверка одного аргумента запроса. Укажите имя аргумента запроса для проверки, например, UserName или SalesRegion . Имя может содержать до 30 символов и не учитывает регистр.

Пример JSON: "SingleQueryArgument": { "Name": "myArgument" }

Name -> (string)

Имя аргумента запроса для проверки.

AllQueryArguments -> (structure)

Проверка всех аргументов запроса.

UriPath -> (structure)

Проверка пути URI запроса. Это часть веб-запроса, которая идентифицирует ресурс, например, /images/daily-ad.jpg .

QueryString -> (structure)

Проверка строки запроса. Это часть URL-адреса, которая отображается после символа ? , если таковой имеется.

Body -> (structure)

Проверка тела запроса как обычного текста. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта Body.

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки большого размера следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Method -> (structure)

Проверка HTTP-метода. Метод указывает тип операции, которую запрос требует от источника.

JsonBody -> (structure)

Проверка тела запроса как JSON. Тело запроса следует сразу за заголовками запроса. Это часть запроса, которая содержит любые дополнительные данные, которые вы хотите отправить на свой веб-сервер в качестве тела HTTP-запроса, например данные из формы.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Информацию о том, как обрабатывать тела запросов большого размера, см. в конфигурации объекта JsonBody.

MatchPattern -> (structure)

Шаблоны для поиска в теле JSON. WAF проверяет результаты этих сопоставлений шаблонов в соответствии с критериями проверки правила.

All -> (structure)

Сопоставить все элементы. См. также MatchScope в JsonBody .

Вы должны указать либо этот параметр, либо параметр IncludedPaths, но не оба.

IncludedPaths -> (list)

Сопоставлять только указанные пути включения. См. также MatchScope в JsonBody .

Укажите пути включения, используя синтаксис указателя JSON. Например, "IncludedPaths": ["/dogs/0/name", "/dogs/1/name"] . Информацию об этом синтаксисе см. в документации Internet Engineering Task Force (IETF) JavaScript Object Notation (JSON) Pointer .

Вы должны указать либо этот параметр, либо параметр All, но не оба.

Примечание

Не используйте этот параметр для включения всех путей. Вместо этого используйте параметр All.

(string)

MatchScope -> (string)

Части JSON для сопоставления с использованием MatchPattern . Если вы укажете ALL, WAF выполняет сопоставление с ключами и значениями.

All не требует, чтобы соответствие было найдено в ключах и соответствие было найдено в значениях. Он требует, чтобы совпадение было найдено в ключах, в значениях или в обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое выражение AND для объединения двух правил сопоставления, одно из которых проверяет ключи, а другое - значения.

InvalidFallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Доступны следующие варианты:

  • EVALUATE_AS_STRING - Проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Если вы не предоставите этот параметр, WAF выполнит синтаксический анализ и оценит содержимое только до первой ошибки синтаксического анализа, с которой он столкнется.

Примечание

Разбор WAF не полностью проверяет входную строку JSON, поэтому разбор может быть успешным даже для неверного JSON. Когда синтаксический анализ завершается успешно, WAF не применяет поведение отката. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF .

OversizeHandling -> (string)

Что должен делать WAF, если тело больше, чем WAF может проверить.

WAF не поддерживает проверку всего содержимого тела веб-запроса, если тело превышает лимит для типа ресурса. Когда тело веб-запроса больше лимита, базовый хост-сервис пересылает только содержимое, которое находится в пределах лимита, в WAF для проверки.

  • Для Application Load Balancer и AppSync лимит фиксирован на уровне 8 КБ (8 192 байт).
  • Для CloudFront, API Gateway, Amazon Cognito, App Runner и Verified Access лимит по умолчанию составляет 16 КБ (16 384 байт), и вы можете увеличить лимит для каждого типа ресурса в веб-ACL AssociationConfig за дополнительную плату за обработку.
  • Для Amplify используйте лимит CloudFront.

Варианты обработки большого размера следующие:

  • CONTINUE - Обычная проверка доступного содержимого тела в соответствии с критериями проверки правила.
  • MATCH - Считать веб-запрос соответствующим оператору правила. WAF применяет действие правила к запросу.
  • NO_MATCH - Считать веб-запрос не соответствующим оператору правила.

Вы можете объединить параметры MATCH или NO_MATCH для обработки большого размера с параметрами действия правила и веб-ACL, чтобы заблокировать любой запрос, тело которого превышает лимит.

По умолчанию: CONTINUE

Headers -> (structure)

Проверьте заголовки запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте Headers, чтобы определить набор заголовков и части заголовков, которые проверяет WAF.

Только первые 8 КБ (8192 байта) заголовков запроса и только первые 200 заголовков пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку содержимого заголовков, превышающего размер, в объекте Headers. WAF применяет фильтры сопоставления шаблонов к заголовкам, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества заголовков для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedHeaders, либо ExcludedHeaders.

Пример JSON: "MatchPattern": { "ExcludedHeaders": [ "KeyToExclude1", "KeyToExclude2" ] }

All -> (structure)

Проверить все заголовки.

IncludedHeaders -> (list)

Проверять только заголовки, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedHeaders -> (list)

Проверять только заголовки, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части заголовков для сопоставления с критериями проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Для этого требуется, чтобы совпадение было найдено в ключах, значениях или обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает в WAF не более 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки переразмерности следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

Cookies -> (structure)

Проверить файлы cookie запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте Cookies, чтобы определить набор файлов cookie и части файлов cookie, которые проверяет WAF.

Только первые 8 КБ (8192 байта) файлов cookie запроса и только первые 200 файлов cookie пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого файлов cookie, превышающего размер, в объекте Cookies. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

MatchPattern -> (structure)

Фильтр для идентификации подмножества файлов cookie для проверки в веб-запросе.

Необходимо указать ровно один параметр: либо All, IncludedCookies, либо ExcludedCookies.

Пример JSON: "MatchPattern": { "IncludedCookies": [ "session-id-time", "session-id" ] }

All -> (structure)

Проверить все файлы cookie.

IncludedCookies -> (list)

Проверять только файлы cookie, ключ которых соответствует одной из указанных здесь строк.

(string)

ExcludedCookies -> (list)

Проверять только файлы cookie, ключи которых не соответствуют ни одной из указанных здесь строк.

(string)

MatchScope -> (string)

Части файлов cookie для проверки с помощью критериев проверки правила. Если вы укажете ALL, WAF проверяет как ключи, так и значения.

All не требует, чтобы совпадение было найдено в ключах и совпадение было найдено в значениях. Для этого требуется, чтобы совпадение было найдено в ключах, значениях или обоих. Чтобы требовать совпадения в ключах и значениях, используйте логическое утверждение AND для объединения двух правил сопоставления: одно проверяет ключи, а другое — значения.

OversizeHandling -> (string)

Что должен делать WAF, если файлов cookie в запросе больше или они больше, чем может проверить WAF. WAF не поддерживает проверку всего содержимого файлов cookie запроса, если они превышают 8 КБ (8192 байта) или 200 файлов cookie. Базовая служба хоста пересылает в WAF не более 200 файлов cookie и не более 8 КБ содержимого файлов cookie.

Варианты обработки переразмерности следующие:

  • CONTINUE — обычно проверять доступные файлы cookie в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

HeaderOrder -> (structure)

Проверьте строку, содержащую список имен заголовков запроса, упорядоченных в том виде, в котором они отображаются в веб-запросе, который WAF получает для проверки. WAF генерирует строку, а затем использует ее в качестве компонента для сопоставления поля при проверке. WAF разделяет имена заголовков в строке, используя двоеточия и без добавления пробелов, например host:user-agent:accept:authorization:referer.

OversizeHandling -> (string)

Что должен делать WAF, если заголовки запроса более многочисленны или больше, чем WAF может проверить. WAF не поддерживает проверку всего содержимого заголовков запроса, если они превышают 8 КБ (8192 байта) или 200 заголовков. Базовая служба хоста пересылает в WAF не более 200 заголовков и не более 8 КБ содержимого заголовков.

Варианты обработки переразмерности следующие:

  • CONTINUE — обычно проверять доступные заголовки в соответствии с критериями проверки правила.
  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

JA3Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставить с отпечатком JA3 запроса. Отпечаток JA3 — это 32-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA3 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях журналов см. раздел «Поля журналов» в Руководстве разработчика WAF.

Укажите строку отпечатка JA3 из журналов в спецификации сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, который следует присвоить веб-запросу, если запрос не имеет отпечатка JA3.

Можно указать следующие резервные варианты поведения:

  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

JA4Fingerprint -> (structure)

Доступно для использования с дистрибутивами Amazon CloudFront и Application Load Balancers. Сопоставить с отпечатком JA4 запроса. Отпечаток JA4 — это 36-символьный хэш, полученный из TLS Client Hello входящего запроса. Этот отпечаток служит уникальным идентификатором для конфигурации TLS клиента. WAF вычисляет и регистрирует этот отпечаток для каждого запроса, в котором достаточно информации TLS Client Hello для вычисления. Почти все веб-запросы включают эту информацию.

Примечание

Эту опцию можно использовать только с сопоставлением строк ByteMatchStatement с параметром PositionalConstraint, установленным в EXACTLY.

Вы можете получить отпечаток JA4 для клиентских запросов из журналов веб-ACL. Если WAF может вычислить отпечаток, он включает его в журналы. Для получения информации о полях журналов см. раздел «Поля журналов» в Руководстве разработчика WAF.

Укажите строку отпечатка JA4 из журналов в спецификации сопоставления строк, чтобы сопоставить с любыми будущими запросами, имеющими ту же конфигурацию TLS.

FallbackBehavior -> (string)

Статус сопоставления, который следует присвоить веб-запросу, если запрос не имеет отпечатка JA4.

Можно указать следующие резервные варианты поведения:

  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

UriFragment -> (structure)

Проверить фрагменты URI запроса. Необходимо настроить фильтры сопоставления области и шаблонов в объекте UriFragment, чтобы определить фрагмент URI, который проверяет WAF.

Только первые 8 КБ (8192 байта) фрагментов URI запроса и только первые 200 фрагментов URI пересылаются в WAF для проверки базовой службой хоста. Необходимо настроить обработку любого содержимого фрагмента URI, превышающего размер, в объекте UriFragment. WAF применяет фильтры сопоставления шаблонов к файлам cookie, которые он получает от базовой службы хоста.

FallbackBehavior -> (string)

Что должен делать WAF, если ему не удается полностью проанализировать тело JSON. Варианты следующие:

  • EVALUATE_AS_STRING — проверить тело как обычный текст. WAF применяет преобразования текста и критерии проверки, которые вы определили для проверки JSON, к строке текста тела.
  • MATCH — считать веб-запрос соответствующим утверждению правила. WAF применяет действие правила к запросу.
  • NO_MATCH — считать веб-запрос не соответствующим утверждению правила.

Если вы не предоставите этот параметр, WAF анализирует и оценивает содержимое только до первой ошибки анализа, с которой он столкнется.

Пример JSON: { "UriFragment": { "FallbackBehavior": "MATCH"} }

Примечание

Анализ WAF не полностью проверяет входную строку JSON, поэтому анализ может завершиться успешно даже для недопустимого JSON. Когда анализ выполнен успешно, WAF не применяет резервное поведение. Дополнительные сведения см. в разделе «Тело JSON» в Руководстве разработчика WAF.

TextTransformations -> (list)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение. Преобразования текста используются в операторах соответствия правилам для преобразования компонента запроса FieldToMatch перед его проверкой, а также в операторах правил на основе скорости для преобразования компонентов запроса перед их использованием в качестве пользовательских ключей агрегирования. Если вы укажете одно или несколько преобразований для применения, WAF выполнит все преобразования указанного контента, начиная с самого низкого приоритета, а затем использует содержимое преобразованного компонента.

(структура)

Преобразования текста устраняют некоторые необычные форматы, которые злоумышленники используют в веб-запросах, чтобы обойти обнаружение.

Приоритет -> (integer)

Задает относительный порядок обработки для нескольких преобразований. WAF обрабатывает все преобразования, от самого низкого приоритета до самого высокого, перед проверкой преобразованного контента. Приоритеты не должны быть последовательными, но они должны быть разными.

Тип -> (string)

Подробные описания каждого из типов преобразований см. в разделе Преобразования текста в Руководстве разработчика WAF .

Действие -> (структура)

Действие, которое WAF должен предпринять в отношении веб-запроса, когда он соответствует оператору правила. Настройки на уровне веб-ACL могут переопределять настройку действия правила.

Это используется только для правил, операторы которых не ссылаются на группу правил. Операторы правил, которые ссылаются на группу правил, включают RuleGroupReferenceStatement и ManagedRuleGroupStatement .

Вы должны указать либо этот параметр Action , либо параметр правила OverrideAction , но не оба:

  • Если оператор правила не ссылается на группу правил, используйте этот параметр действия правила, а не параметр действия переопределения правила.
  • Если оператор правила ссылается на группу правил, используйте действие переопределения, а не это действие.

Блокировать -> (structure)

Информирует WAF о блокировке веб-запроса.

CustomResponse -> (structure)

Определяет пользовательский ответ для веб-запроса.

Информацию о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

ResponseCode -> (integer)

Код состояния HTTP для возврата клиенту.

Список кодов состояния, которые можно использовать в пользовательских ответах, см. в разделе Поддерживаемые коды состояния для пользовательского ответа в Руководстве разработчика WAF .

CustomResponseBodyKey -> (string)

Ссылки на тело ответа, которое вы хотите, чтобы WAF вернул клиенту веб-запроса. Вы можете определить пользовательский ответ для действия правила или действия веб-ACL по умолчанию, которое установлено на блокировку. Для этого сначала определите ключ и значение тела ответа в параметре CustomResponseBodies для WebACL или RuleGroup, где вы хотите его использовать. Затем в действии правила или действии по умолчанию веб-ACL параметр BlockAction вы ссылаетесь на тело ответа, используя этот ключ.

ResponseHeaders -> (list)

Заголовки HTTP для использования в ответе. Вы можете указать любое имя заголовка, кроме content-type . Дубликаты имен заголовков не допускаются.

Информацию об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Разрешить -> (structure)

Информирует WAF о разрешении веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Информацию о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Информацию об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Подсчет -> (structure)

Информирует WAF о подсчете веб-запроса, а затем продолжении оценки запроса с использованием оставшихся правил в веб-ACL.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса.

Информацию о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Информацию об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Captcha -> (structure)

Информирует WAF о запуске проверки CAPTCHA в отношении веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка CAPTCHA определяет, что токен запроса действителен и не истек.

Информацию о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Информацию об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

Challenge -> (structure)

Информирует WAF о запуске проверки Challenge в отношении веб-запроса.

CustomRequestHandling -> (structure)

Определяет пользовательскую обработку для веб-запроса, используемую, когда проверка challenge определяет, что токен запроса действителен и не истек.

Информацию о настройке веб-запросов и ответов см. в разделе Настройка веб-запросов и ответов в WAF в Руководстве разработчика WAF .

InsertHeaders -> (list)

Заголовки HTTP для вставки в запрос. Дубликаты имен заголовков не допускаются.

Информацию об ограничениях по количеству и размеру для пользовательских настроек запросов и ответов см. в разделе Квоты WAF в Руководстве разработчика WAF .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

OverrideAction -> (structure)

Действие, используемое вместо действия, которое получается в результате оценки группы правил. Установите действие переопределения в значение none, чтобы оставить результат группы правил без изменений. Установите значение count, чтобы переопределить результат только для подсчета.

Вы можете использовать это только для операторов правил, ссылающихся на группу правил, например RuleGroupReferenceStatement и ManagedRuleGroupStatement .

Примечание

Этот параметр обычно устанавливается в значение none. Он не влияет на то, как оцениваются правила в группе правил. Если вы хотите, чтобы правила в группе правил только подсчитывали совпадения, не используйте это и вместо этого используйте параметр переопределения действия правила с действием Count в настройках оператора ссылки на группу правил.

Count -> (структура)

Переопределите результат оценки группы правил, чтобы учитывать только количество.

Примечание

Этот параметр обычно устанавливается в значение none. Он не влияет на то, как оцениваются правила в группе правил. Если вы хотите, чтобы правила в группе правил только подсчитывали совпадения, не используйте это и вместо этого используйте параметр переопределения действия правила с действием Count в настройках оператора ссылки на группу правил.

CustomRequestHandling -> (структура)

Определяет пользовательскую обработку веб-запроса.

Для получения информации о настройке веб-запросов и ответов см. раздел Customizing web requests and responses in WAF в WAF Developer Guide .

InsertHeaders -> (список)

HTTP-заголовки для вставки в запрос. Дублирование имен заголовков не допускается.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел WAF quotas в WAF Developer Guide .

(структура)

Пользовательский заголовок для пользовательской обработки запросов и ответов. Это используется в CustomResponse и CustomRequestHandling .

Name -> (string)

Имя пользовательского заголовка.

Для вставки пользовательского заголовка запроса, когда WAF вставляет заголовок в запрос, он добавляет к этому имени префикс x-amzn-waf- , чтобы избежать путаницы с заголовками, которые уже есть в запросе. Например, для имени заголовка sample , WAF вставляет заголовок x-amzn-waf-sample .

Value -> (string)

Значение пользовательского заголовка.

None -> (структура)

Не переопределять результат оценки группы правил. Это наиболее распространенный параметр.

RuleLabels -> (список)

Метки для применения к веб-запросам, которые соответствуют оператору соответствия правилу. WAF применяет полностью определенные метки к соответствующим веб-запросам. Полностью определенная метка представляет собой конкатенацию пространства имен метки и метки правила. Группа правил правила или веб-ACL определяет пространство имен метки.

Примечание

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

Правила, которые выполняются после этого правила в веб-ACL, могут соответствовать этим меткам, используя LabelMatchStatement .

Для каждой метки укажите строку с учетом регистра, содержащую необязательные пространства имен и имя метки, в соответствии со следующими рекомендациями:

  • Разделите каждый компонент метки двоеточием.
  • Каждое пространство имен или имя может содержать до 128 символов.
  • Вы можете указать до 5 пространств имен в метке.
  • Не используйте следующие зарезервированные слова в спецификации метки: aws , waf , managed , rulegroup , webacl , regexpatternset , или ipset .

Например, myLabelName или nameSpace1:nameSpace2:myLabelName .

(структура)

Одиночный контейнер меток. Это используется в качестве элемента массива меток в нескольких контекстах, например, в RuleLabels внутри Rule и в Labels внутри SampledHTTPRequest .

Name -> (string)

Строка метки.

VisibilityConfig -> (структура)

Определяет и включает метрики Amazon CloudWatch и сбор образцов веб-запросов.

Если вы измените имя Rule после его создания и хотите, чтобы имя метрики правила отражало изменение, также обновите имя метрики. WAF не обновляет имя метрики автоматически.

SampledRequestsEnabled -> (boolean)

Указывает, следует ли WAF хранить выборку веб-запросов, соответствующих правилам. Вы можете просмотреть выборочные запросы через консоль WAF.

Если вы настраиваете защиту данных для веб-ACL, защита применяется к данным выборочных веб-запросов веб-ACL.

Примечание

Выборка запросов не предоставляет опцию редактирования полей, и любое редактирование полей, которое вы указываете в своей конфигурации ведения журнала, не влияет на выборку. Вы можете исключить поля из выборки запросов, только отключив выборку в конфигурации видимости веб-ACL или настроив защиту данных для веб-ACL.

CloudWatchMetricsEnabled -> (boolean)

Указывает, отправляет ли связанный ресурс метрики в Amazon CloudWatch. Список доступных метрик см. в разделе WAF Metrics в WAF Developer Guide .

Для веб-ACL метрики предназначены для веб-запросов, к которым применено действие по умолчанию для веб-ACL. WAF применяет действие по умолчанию к веб-запросам, которые проходят проверку всех правил в веб-ACL, не будучи разрешенными или заблокированными. Для получения дополнительной информации см. раздел The web ACL default action в WAF Developer Guide .

MetricName -> (string)

Имя измерения метрики Amazon CloudWatch. Имя может содержать только символы: A-Z, a-z, 0-9, - (дефис) и _ (подчеркивание). Имя может быть от одного до 128 символов в длину. Оно не может содержать пробелы или имена метрик, зарезервированные для WAF, например All и Default_Action .

CaptchaConfig -> (структура)

Указывает, как WAF должен обрабатывать оценки CAPTCHA . Если вы не укажете это, WAF использует конфигурацию CAPTCHA , определенную для веб-ACL.

ImmunityTimeProperty -> (структура)

Определяет, как долго CAPTCHA временная метка в токене остается действительной после того, как клиент успешно решит головоломку CAPTCHA .

ImmunityTime -> (long)

Количество времени в секундах, в течение которого временная метка CAPTCHA или Challenge считается действительной WAF. Настройка по умолчанию — 300.

Для действия Challenge минимальная настройка — 300.

ChallengeConfig -> (структура)

Указывает, как WAF должен обрабатывать оценки Challenge . Если вы не укажете это, WAF использует конфигурацию Challenge, определенную для веб-ACL.

ImmunityTimeProperty -> (структура)

Определяет, как долго временная метка Challenge в токене остается действительной после того, как клиент успешно отвечает на Challenge.

ImmunityTime -> (long)

Количество времени в секундах, в течение которого временная метка CAPTCHA или Challenge считается действительной WAF. Настройка по умолчанию — 300.

Для действия Challenge минимальная настройка — 300.

Синтаксис JSON:

[
  {
    "Name": "string",
    "Priority": integer,
    "Statement": {
      "ByteMatchStatement": {
        "SearchString": blob,
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ],
        "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
      },
      "SqliMatchStatement": {
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ],
        "SensitivityLevel": "LOW"|"HIGH"
      },
      "XssMatchStatement": {
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ]
      },
      "SizeConstraintStatement": {
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
        "Size": long,
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ]
      },
      "GeoMatchStatement": {
        "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
        "ForwardedIPConfig": {
          "HeaderName": "string",
          "FallbackBehavior": "MATCH"|"NO_MATCH"
        }
      },
      "RuleGroupReferenceStatement": {
        "ARN": "string",
        "ExcludedRules": [
          {
            "Name": "string"
          }
          ...
        ],
        "RuleActionOverrides": [
          {
            "Name": "string",
            "ActionToUse": {
              "Block": {
                "CustomResponse": {
                  "ResponseCode": integer,
                  "CustomResponseBodyKey": "string",
                  "ResponseHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Allow": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Count": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Captcha": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Challenge": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              }
            }
          }
          ...
        ]
      },
      "IPSetReferenceStatement": {
        "ARN": "string",
        "IPSetForwardedIPConfig": {
          "HeaderName": "string",
          "FallbackBehavior": "MATCH"|"NO_MATCH",
          "Position": "FIRST"|"LAST"|"ANY"
        }
      },
      "RegexPatternSetReferenceStatement": {
        "ARN": "string",
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ]
      },
      "RateBasedStatement": {
        "Limit": long,
        "EvaluationWindowSec": long,
        "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
        "ScopeDownStatement": {
          "ByteMatchStatement": {
            "SearchString": blob,
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
          },
          "SqliMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "SensitivityLevel": "LOW"|"HIGH"
          },
          "XssMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "SizeConstraintStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
            "Size": long,
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "GeoMatchStatement": {
            "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            }
          },
          "RuleGroupReferenceStatement": {
            "ARN": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "IPSetReferenceStatement": {
            "ARN": "string",
            "IPSetForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH",
              "Position": "FIRST"|"LAST"|"ANY"
            }
          },
          "RegexPatternSetReferenceStatement": {
            "ARN": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "RateBasedStatement": {
            "Limit": long,
            "EvaluationWindowSec": long,
            "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
            "ScopeDownStatement": { ... recursive ... },
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            },
            "CustomKeys": [
              {
                "Header": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "Cookie": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryArgument": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryString": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "HTTPMethod": {

                },
                "ForwardedIP": {

                },
                "IP": {

                },
                "LabelNamespace": {
                  "Namespace": "string"
                },
                "UriPath": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              }
              ...
            ]
          },
          "AndStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "OrStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "NotStatement": {
            "Statement": { ... recursive ... }
          },
          "ManagedRuleGroupStatement": {
            "VendorName": "string",
            "Name": "string",
            "Version": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "ScopeDownStatement": { ... recursive ... },
            "ManagedRuleGroupConfigs": [
              {
                "LoginPath": "string",
                "PayloadType": "JSON"|"FORM_ENCODED",
                "UsernameField": {
                  "Identifier": "string"
                },
                "PasswordField": {
                  "Identifier": "string"
                },
                "AWSManagedRulesBotControlRuleSet": {
                  "InspectionLevel": "COMMON"|"TARGETED",
                  "EnableMachineLearning": true|false
                },
                "AWSManagedRulesATPRuleSet": {
                  "LoginPath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    }
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                },
                "AWSManagedRulesACFPRuleSet": {
                  "CreationPath": "string",
                  "RegistrationPagePath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    },
                    "EmailField": {
                      "Identifier": "string"
                    },
                    "PhoneNumberFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ],
                    "AddressFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ]
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                }
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "LabelMatchStatement": {
            "Scope": "LABEL"|"NAMESPACE",
            "Key": "string"
          },
          "RegexMatchStatement": {
            "RegexString": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          }
        },
        "ForwardedIPConfig": {
          "HeaderName": "string",
          "FallbackBehavior": "MATCH"|"NO_MATCH"
        },
        "CustomKeys": [
          {
            "Header": {
              "Name": "string",
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "Cookie": {
              "Name": "string",
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "QueryArgument": {
              "Name": "string",
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "QueryString": {
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "HTTPMethod": {

            },
            "ForwardedIP": {

            },
            "IP": {

            },
            "LabelNamespace": {
              "Namespace": "string"
            },
            "UriPath": {
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "JA3Fingerprint": {
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            },
            "JA4Fingerprint": {
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            }
          }
          ...
        ]
      },
      "AndStatement": {
        "Statements": [
          {
            "ByteMatchStatement": {
              "SearchString": blob,
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ],
              "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
            },
            "SqliMatchStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ],
              "SensitivityLevel": "LOW"|"HIGH"
            },
            "XssMatchStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
              "Size": long,
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "GeoMatchStatement": {
              "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
              "ForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "RuleGroupReferenceStatement": {
              "ARN": "string",
              "ExcludedRules": [
                {
                  "Name": "string"
                }
                ...
              ],
              "RuleActionOverrides": [
                {
                  "Name": "string",
                  "ActionToUse": {
                    "Block": {
                      "CustomResponse": {
                        "ResponseCode": integer,
                        "CustomResponseBodyKey": "string",
                        "ResponseHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Allow": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Count": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Captcha": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Challenge": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    }
                  }
                }
                ...
              ]
            },
            "IPSetReferenceStatement": {
              "ARN": "string",
              "IPSetForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH",
                "Position": "FIRST"|"LAST"|"ANY"
              }
            },
            "RegexPatternSetReferenceStatement": {
              "ARN": "string",
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "RateBasedStatement": {
              "Limit": long,
              "EvaluationWindowSec": long,
              "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
              "ScopeDownStatement": { ... recursive ... },
              "ForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "CustomKeys": [
                {
                  "Header": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "Cookie": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "QueryArgument": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "QueryString": {
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "HTTPMethod": {

                  },
                  "ForwardedIP": {

                  },
                  "IP": {

                  },
                  "LabelNamespace": {
                    "Namespace": "string"
                  },
                  "UriPath": {
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "JA3Fingerprint": {
                    "FallbackBehavior": "MATCH"|"NO_MATCH"
                  },
                  "JA4Fingerprint": {
                    "FallbackBehavior": "MATCH"|"NO_MATCH"
                  }
                }
                ...
              ]
            },
            "AndStatement": {
              "Statements": [
                { ... recursive ... }
                ...
              ]
            },
            "OrStatement": {
              "Statements": [
                { ... recursive ... }
                ...
              ]
            },
            "NotStatement": {
              "Statement": { ... recursive ... }
            },
            "ManagedRuleGroupStatement": {
              "VendorName": "string",
              "Name": "string",
              "Version": "string",
              "ExcludedRules": [
                {
                  "Name": "string"
                }
                ...
              ],
              "ScopeDownStatement": { ... recursive ... },
              "ManagedRuleGroupConfigs": [
                {
                  "LoginPath": "string",
                  "PayloadType": "JSON"|"FORM_ENCODED",
                  "UsernameField": {
                    "Identifier": "string"
                  },
                  "PasswordField": {
                    "Identifier": "string"
                  },
                  "AWSManagedRulesBotControlRuleSet": {
                    "InspectionLevel": "COMMON"|"TARGETED",
                    "EnableMachineLearning": true|false
                  },
                  "AWSManagedRulesATPRuleSet": {
                    "LoginPath": "string",
                    "RequestInspection": {
                      "PayloadType": "JSON"|"FORM_ENCODED",
                      "UsernameField": {
                        "Identifier": "string"
                      },
                      "PasswordField": {
                        "Identifier": "string"
                      }
                    },
                    "ResponseInspection": {
                      "StatusCode": {
                        "SuccessCodes": [integer, ...],
                        "FailureCodes": [integer, ...]
                      },
                      "Header": {
                        "Name": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      },
                      "BodyContains": {
                        "SuccessStrings": ["string", ...],
                        "FailureStrings": ["string", ...]
                      },
                      "Json": {
                        "Identifier": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      }
                    },
                    "EnableRegexInPath": true|false
                  },
                  "AWSManagedRulesACFPRuleSet": {
                    "CreationPath": "string",
                    "RegistrationPagePath": "string",
                    "RequestInspection": {
                      "PayloadType": "JSON"|"FORM_ENCODED",
                      "UsernameField": {
                        "Identifier": "string"
                      },
                      "PasswordField": {
                        "Identifier": "string"
                      },
                      "EmailField": {
                        "Identifier": "string"
                      },
                      "PhoneNumberFields": [
                        {
                          "Identifier": "string"
                        }
                        ...
                      ],
                      "AddressFields": [
                        {
                          "Identifier": "string"
                        }
                        ...
                      ]
                    },
                    "ResponseInspection": {
                      "StatusCode": {
                        "SuccessCodes": [integer, ...],
                        "FailureCodes": [integer, ...]
                      },
                      "Header": {
                        "Name": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      },
                      "BodyContains": {
                        "SuccessStrings": ["string", ...],
                        "FailureStrings": ["string", ...]
                      },
                      "Json": {
                        "Identifier": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      }
                    },
                    "EnableRegexInPath": true|false
                  }
                }
                ...
              ],
              "RuleActionOverrides": [
                {
                  "Name": "string",
                  "ActionToUse": {
                    "Block": {
                      "CustomResponse": {
                        "ResponseCode": integer,
                        "CustomResponseBodyKey": "string",
                        "ResponseHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Allow": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Count": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Captcha": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Challenge": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    }
                  }
                }
                ...
              ]
            },
            "LabelMatchStatement": {
              "Scope": "LABEL"|"NAMESPACE",
              "Key": "string"
            },
            "RegexMatchStatement": {
              "RegexString": "string",
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            }
          }
          ...
        ]
      },
      "OrStatement": {
        "Statements": [
          {
            "ByteMatchStatement": {
              "SearchString": blob,
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ],
              "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
            },
            "SqliMatchStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ],
              "SensitivityLevel": "LOW"|"HIGH"
            },
            "XssMatchStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "SizeConstraintStatement": {
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
              "Size": long,
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "GeoMatchStatement": {
              "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
              "ForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "RuleGroupReferenceStatement": {
              "ARN": "string",
              "ExcludedRules": [
                {
                  "Name": "string"
                }
                ...
              ],
              "RuleActionOverrides": [
                {
                  "Name": "string",
                  "ActionToUse": {
                    "Block": {
                      "CustomResponse": {
                        "ResponseCode": integer,
                        "CustomResponseBodyKey": "string",
                        "ResponseHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Allow": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Count": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Captcha": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Challenge": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    }
                  }
                }
                ...
              ]
            },
            "IPSetReferenceStatement": {
              "ARN": "string",
              "IPSetForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH",
                "Position": "FIRST"|"LAST"|"ANY"
              }
            },
            "RegexPatternSetReferenceStatement": {
              "ARN": "string",
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            },
            "RateBasedStatement": {
              "Limit": long,
              "EvaluationWindowSec": long,
              "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
              "ScopeDownStatement": { ... recursive ... },
              "ForwardedIPConfig": {
                "HeaderName": "string",
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "CustomKeys": [
                {
                  "Header": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "Cookie": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "QueryArgument": {
                    "Name": "string",
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "QueryString": {
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "HTTPMethod": {

                  },
                  "ForwardedIP": {

                  },
                  "IP": {

                  },
                  "LabelNamespace": {
                    "Namespace": "string"
                  },
                  "UriPath": {
                    "TextTransformations": [
                      {
                        "Priority": integer,
                        "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                      }
                      ...
                    ]
                  },
                  "JA3Fingerprint": {
                    "FallbackBehavior": "MATCH"|"NO_MATCH"
                  },
                  "JA4Fingerprint": {
                    "FallbackBehavior": "MATCH"|"NO_MATCH"
                  }
                }
                ...
              ]
            },
            "AndStatement": {
              "Statements": [
                { ... recursive ... }
                ...
              ]
            },
            "OrStatement": {
              "Statements": [
                { ... recursive ... }
                ...
              ]
            },
            "NotStatement": {
              "Statement": { ... recursive ... }
            },
            "ManagedRuleGroupStatement": {
              "VendorName": "string",
              "Name": "string",
              "Version": "string",
              "ExcludedRules": [
                {
                  "Name": "string"
                }
                ...
              ],
              "ScopeDownStatement": { ... recursive ... },
              "ManagedRuleGroupConfigs": [
                {
                  "LoginPath": "string",
                  "PayloadType": "JSON"|"FORM_ENCODED",
                  "UsernameField": {
                    "Identifier": "string"
                  },
                  "PasswordField": {
                    "Identifier": "string"
                  },
                  "AWSManagedRulesBotControlRuleSet": {
                    "InspectionLevel": "COMMON"|"TARGETED",
                    "EnableMachineLearning": true|false
                  },
                  "AWSManagedRulesATPRuleSet": {
                    "LoginPath": "string",
                    "RequestInspection": {
                      "PayloadType": "JSON"|"FORM_ENCODED",
                      "UsernameField": {
                        "Identifier": "string"
                      },
                      "PasswordField": {
                        "Identifier": "string"
                      }
                    },
                    "ResponseInspection": {
                      "StatusCode": {
                        "SuccessCodes": [integer, ...],
                        "FailureCodes": [integer, ...]
                      },
                      "Header": {
                        "Name": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      },
                      "BodyContains": {
                        "SuccessStrings": ["string", ...],
                        "FailureStrings": ["string", ...]
                      },
                      "Json": {
                        "Identifier": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      }
                    },
                    "EnableRegexInPath": true|false
                  },
                  "AWSManagedRulesACFPRuleSet": {
                    "CreationPath": "string",
                    "RegistrationPagePath": "string",
                    "RequestInspection": {
                      "PayloadType": "JSON"|"FORM_ENCODED",
                      "UsernameField": {
                        "Identifier": "string"
                      },
                      "PasswordField": {
                        "Identifier": "string"
                      },
                      "EmailField": {
                        "Identifier": "string"
                      },
                      "PhoneNumberFields": [
                        {
                          "Identifier": "string"
                        }
                        ...
                      ],
                      "AddressFields": [
                        {
                          "Identifier": "string"
                        }
                        ...
                      ]
                    },
                    "ResponseInspection": {
                      "StatusCode": {
                        "SuccessCodes": [integer, ...],
                        "FailureCodes": [integer, ...]
                      },
                      "Header": {
                        "Name": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      },
                      "BodyContains": {
                        "SuccessStrings": ["string", ...],
                        "FailureStrings": ["string", ...]
                      },
                      "Json": {
                        "Identifier": "string",
                        "SuccessValues": ["string", ...],
                        "FailureValues": ["string", ...]
                      }
                    },
                    "EnableRegexInPath": true|false
                  }
                }
                ...
              ],
              "RuleActionOverrides": [
                {
                  "Name": "string",
                  "ActionToUse": {
                    "Block": {
                      "CustomResponse": {
                        "ResponseCode": integer,
                        "CustomResponseBodyKey": "string",
                        "ResponseHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Allow": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Count": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Captcha": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    },
                    "Challenge": {
                      "CustomRequestHandling": {
                        "InsertHeaders": [
                          {
                            "Name": "string",
                            "Value": "string"
                          }
                          ...
                        ]
                      }
                    }
                  }
                }
                ...
              ]
            },
            "LabelMatchStatement": {
              "Scope": "LABEL"|"NAMESPACE",
              "Key": "string"
            },
            "RegexMatchStatement": {
              "RegexString": "string",
              "FieldToMatch": {
                "SingleHeader": {
                  "Name": "string"
                },
                "SingleQueryArgument": {
                  "Name": "string"
                },
                "AllQueryArguments": {

                },
                "UriPath": {

                },
                "QueryString": {

                },
                "Body": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Method": {

                },
                "JsonBody": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedPaths": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Headers": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedHeaders": ["string", ...],
                    "ExcludedHeaders": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "Cookies": {
                  "MatchPattern": {
                    "All": {

                    },
                    "IncludedCookies": ["string", ...],
                    "ExcludedCookies": ["string", ...]
                  },
                  "MatchScope": "ALL"|"KEY"|"VALUE",
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "HeaderOrder": {
                  "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "UriFragment": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              },
              "TextTransformations": [
                {
                  "Priority": integer,
                  "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                }
                ...
              ]
            }
          }
          ...
        ]
      },
      "NotStatement": {
        "Statement": {
          "ByteMatchStatement": {
            "SearchString": blob,
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
          },
          "SqliMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "SensitivityLevel": "LOW"|"HIGH"
          },
          "XssMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "SizeConstraintStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
            "Size": long,
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "GeoMatchStatement": {
            "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            }
          },
          "RuleGroupReferenceStatement": {
            "ARN": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "IPSetReferenceStatement": {
            "ARN": "string",
            "IPSetForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH",
              "Position": "FIRST"|"LAST"|"ANY"
            }
          },
          "RegexPatternSetReferenceStatement": {
            "ARN": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "RateBasedStatement": {
            "Limit": long,
            "EvaluationWindowSec": long,
            "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
            "ScopeDownStatement": { ... recursive ... },
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            },
            "CustomKeys": [
              {
                "Header": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "Cookie": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryArgument": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryString": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "HTTPMethod": {

                },
                "ForwardedIP": {

                },
                "IP": {

                },
                "LabelNamespace": {
                  "Namespace": "string"
                },
                "UriPath": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              }
              ...
            ]
          },
          "AndStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "OrStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "NotStatement": {
            "Statement": { ... recursive ... }
          },
          "ManagedRuleGroupStatement": {
            "VendorName": "string",
            "Name": "string",
            "Version": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "ScopeDownStatement": { ... recursive ... },
            "ManagedRuleGroupConfigs": [
              {
                "LoginPath": "string",
                "PayloadType": "JSON"|"FORM_ENCODED",
                "UsernameField": {
                  "Identifier": "string"
                },
                "PasswordField": {
                  "Identifier": "string"
                },
                "AWSManagedRulesBotControlRuleSet": {
                  "InspectionLevel": "COMMON"|"TARGETED",
                  "EnableMachineLearning": true|false
                },
                "AWSManagedRulesATPRuleSet": {
                  "LoginPath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    }
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                },
                "AWSManagedRulesACFPRuleSet": {
                  "CreationPath": "string",
                  "RegistrationPagePath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    },
                    "EmailField": {
                      "Identifier": "string"
                    },
                    "PhoneNumberFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ],
                    "AddressFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ]
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                }
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "LabelMatchStatement": {
            "Scope": "LABEL"|"NAMESPACE",
            "Key": "string"
          },
          "RegexMatchStatement": {
            "RegexString": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          }
        }
      },
      "ManagedRuleGroupStatement": {
        "VendorName": "string",
        "Name": "string",
        "Version": "string",
        "ExcludedRules": [
          {
            "Name": "string"
          }
          ...
        ],
        "ScopeDownStatement": {
          "ByteMatchStatement": {
            "SearchString": blob,
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
          },
          "SqliMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ],
            "SensitivityLevel": "LOW"|"HIGH"
          },
          "XssMatchStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "SizeConstraintStatement": {
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "ComparisonOperator": "EQ"|"NE"|"LE"|"LT"|"GE"|"GT",
            "Size": long,
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "GeoMatchStatement": {
            "CountryCodes": ["AF"|"AX"|"AL"|"DZ"|"AS"|"AD"|"AO"|"AI"|"AQ"|"AG"|"AR"|"AM"|"AW"|"AU"|"AT"|"AZ"|"BS"|"BH"|"BD"|"BB"|"BY"|"BE"|"BZ"|"BJ"|"BM"|"BT"|"BO"|"BQ"|"BA"|"BW"|"BV"|"BR"|"IO"|"BN"|"BG"|"BF"|"BI"|"KH"|"CM"|"CA"|"CV"|"KY"|"CF"|"TD"|"CL"|"CN"|"CX"|"CC"|"CO"|"KM"|"CG"|"CD"|"CK"|"CR"|"CI"|"HR"|"CU"|"CW"|"CY"|"CZ"|"DK"|"DJ"|"DM"|"DO"|"EC"|"EG"|"SV"|"GQ"|"ER"|"EE"|"ET"|"FK"|"FO"|"FJ"|"FI"|"FR"|"GF"|"PF"|"TF"|"GA"|"GM"|"GE"|"DE"|"GH"|"GI"|"GR"|"GL"|"GD"|"GP"|"GU"|"GT"|"GG"|"GN"|"GW"|"GY"|"HT"|"HM"|"VA"|"HN"|"HK"|"HU"|"IS"|"IN"|"ID"|"IR"|"IQ"|"IE"|"IM"|"IL"|"IT"|"JM"|"JP"|"JE"|"JO"|"KZ"|"KE"|"KI"|"KP"|"KR"|"KW"|"KG"|"LA"|"LV"|"LB"|"LS"|"LR"|"LY"|"LI"|"LT"|"LU"|"MO"|"MK"|"MG"|"MW"|"MY"|"MV"|"ML"|"MT"|"MH"|"MQ"|"MR"|"MU"|"YT"|"MX"|"FM"|"MD"|"MC"|"MN"|"ME"|"MS"|"MA"|"MZ"|"MM"|"NA"|"NR"|"NP"|"NL"|"NC"|"NZ"|"NI"|"NE"|"NG"|"NU"|"NF"|"MP"|"NO"|"OM"|"PK"|"PW"|"PS"|"PA"|"PG"|"PY"|"PE"|"PH"|"PN"|"PL"|"PT"|"PR"|"QA"|"RE"|"RO"|"RU"|"RW"|"BL"|"SH"|"KN"|"LC"|"MF"|"PM"|"VC"|"WS"|"SM"|"ST"|"SA"|"SN"|"RS"|"SC"|"SL"|"SG"|"SX"|"SK"|"SI"|"SB"|"SO"|"ZA"|"GS"|"SS"|"ES"|"LK"|"SD"|"SR"|"SJ"|"SZ"|"SE"|"CH"|"SY"|"TW"|"TJ"|"TZ"|"TH"|"TL"|"TG"|"TK"|"TO"|"TT"|"TN"|"TR"|"TM"|"TC"|"TV"|"UG"|"UA"|"AE"|"GB"|"US"|"UM"|"UY"|"UZ"|"VU"|"VE"|"VN"|"VG"|"VI"|"WF"|"EH"|"YE"|"ZM"|"ZW"|"XK", ...],
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            }
          },
          "RuleGroupReferenceStatement": {
            "ARN": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "IPSetReferenceStatement": {
            "ARN": "string",
            "IPSetForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH",
              "Position": "FIRST"|"LAST"|"ANY"
            }
          },
          "RegexPatternSetReferenceStatement": {
            "ARN": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          },
          "RateBasedStatement": {
            "Limit": long,
            "EvaluationWindowSec": long,
            "AggregateKeyType": "IP"|"FORWARDED_IP"|"CUSTOM_KEYS"|"CONSTANT",
            "ScopeDownStatement": { ... recursive ... },
            "ForwardedIPConfig": {
              "HeaderName": "string",
              "FallbackBehavior": "MATCH"|"NO_MATCH"
            },
            "CustomKeys": [
              {
                "Header": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "Cookie": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryArgument": {
                  "Name": "string",
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "QueryString": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "HTTPMethod": {

                },
                "ForwardedIP": {

                },
                "IP": {

                },
                "LabelNamespace": {
                  "Namespace": "string"
                },
                "UriPath": {
                  "TextTransformations": [
                    {
                      "Priority": integer,
                      "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
                    }
                    ...
                  ]
                },
                "JA3Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                },
                "JA4Fingerprint": {
                  "FallbackBehavior": "MATCH"|"NO_MATCH"
                }
              }
              ...
            ]
          },
          "AndStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "OrStatement": {
            "Statements": [
              { ... recursive ... }
              ...
            ]
          },
          "NotStatement": {
            "Statement": { ... recursive ... }
          },
          "ManagedRuleGroupStatement": {
            "VendorName": "string",
            "Name": "string",
            "Version": "string",
            "ExcludedRules": [
              {
                "Name": "string"
              }
              ...
            ],
            "ScopeDownStatement": { ... recursive ... },
            "ManagedRuleGroupConfigs": [
              {
                "LoginPath": "string",
                "PayloadType": "JSON"|"FORM_ENCODED",
                "UsernameField": {
                  "Identifier": "string"
                },
                "PasswordField": {
                  "Identifier": "string"
                },
                "AWSManagedRulesBotControlRuleSet": {
                  "InspectionLevel": "COMMON"|"TARGETED",
                  "EnableMachineLearning": true|false
                },
                "AWSManagedRulesATPRuleSet": {
                  "LoginPath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    }
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                },
                "AWSManagedRulesACFPRuleSet": {
                  "CreationPath": "string",
                  "RegistrationPagePath": "string",
                  "RequestInspection": {
                    "PayloadType": "JSON"|"FORM_ENCODED",
                    "UsernameField": {
                      "Identifier": "string"
                    },
                    "PasswordField": {
                      "Identifier": "string"
                    },
                    "EmailField": {
                      "Identifier": "string"
                    },
                    "PhoneNumberFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ],
                    "AddressFields": [
                      {
                        "Identifier": "string"
                      }
                      ...
                    ]
                  },
                  "ResponseInspection": {
                    "StatusCode": {
                      "SuccessCodes": [integer, ...],
                      "FailureCodes": [integer, ...]
                    },
                    "Header": {
                      "Name": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    },
                    "BodyContains": {
                      "SuccessStrings": ["string", ...],
                      "FailureStrings": ["string", ...]
                    },
                    "Json": {
                      "Identifier": "string",
                      "SuccessValues": ["string", ...],
                      "FailureValues": ["string", ...]
                    }
                  },
                  "EnableRegexInPath": true|false
                }
              }
              ...
            ],
            "RuleActionOverrides": [
              {
                "Name": "string",
                "ActionToUse": {
                  "Block": {
                    "CustomResponse": {
                      "ResponseCode": integer,
                      "CustomResponseBodyKey": "string",
                      "ResponseHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Allow": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Count": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Captcha": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  },
                  "Challenge": {
                    "CustomRequestHandling": {
                      "InsertHeaders": [
                        {
                          "Name": "string",
                          "Value": "string"
                        }
                        ...
                      ]
                    }
                  }
                }
              }
              ...
            ]
          },
          "LabelMatchStatement": {
            "Scope": "LABEL"|"NAMESPACE",
            "Key": "string"
          },
          "RegexMatchStatement": {
            "RegexString": "string",
            "FieldToMatch": {
              "SingleHeader": {
                "Name": "string"
              },
              "SingleQueryArgument": {
                "Name": "string"
              },
              "AllQueryArguments": {

              },
              "UriPath": {

              },
              "QueryString": {

              },
              "Body": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Method": {

              },
              "JsonBody": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedPaths": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Headers": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedHeaders": ["string", ...],
                  "ExcludedHeaders": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "Cookies": {
                "MatchPattern": {
                  "All": {

                  },
                  "IncludedCookies": ["string", ...],
                  "ExcludedCookies": ["string", ...]
                },
                "MatchScope": "ALL"|"KEY"|"VALUE",
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "HeaderOrder": {
                "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
              },
              "JA3Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "JA4Fingerprint": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              },
              "UriFragment": {
                "FallbackBehavior": "MATCH"|"NO_MATCH"
              }
            },
            "TextTransformations": [
              {
                "Priority": integer,
                "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
              }
              ...
            ]
          }
        },
        "ManagedRuleGroupConfigs": [
          {
            "LoginPath": "string",
            "PayloadType": "JSON"|"FORM_ENCODED",
            "UsernameField": {
              "Identifier": "string"
            },
            "PasswordField": {
              "Identifier": "string"
            },
            "AWSManagedRulesBotControlRuleSet": {
              "InspectionLevel": "COMMON"|"TARGETED",
              "EnableMachineLearning": true|false
            },
            "AWSManagedRulesATPRuleSet": {
              "LoginPath": "string",
              "RequestInspection": {
                "PayloadType": "JSON"|"FORM_ENCODED",
                "UsernameField": {
                  "Identifier": "string"
                },
                "PasswordField": {
                  "Identifier": "string"
                }
              },
              "ResponseInspection": {
                "StatusCode": {
                  "SuccessCodes": [integer, ...],
                  "FailureCodes": [integer, ...]
                },
                "Header": {
                  "Name": "string",
                  "SuccessValues": ["string", ...],
                  "FailureValues": ["string", ...]
                },
                "BodyContains": {
                  "SuccessStrings": ["string", ...],
                  "FailureStrings": ["string", ...]
                },
                "Json": {
                  "Identifier": "string",
                  "SuccessValues": ["string", ...],
                  "FailureValues": ["string", ...]
                }
              },
              "EnableRegexInPath": true|false
            },
            "AWSManagedRulesACFPRuleSet": {
              "CreationPath": "string",
              "RegistrationPagePath": "string",
              "RequestInspection": {
                "PayloadType": "JSON"|"FORM_ENCODED",
                "UsernameField": {
                  "Identifier": "string"
                },
                "PasswordField": {
                  "Identifier": "string"
                },
                "EmailField": {
                  "Identifier": "string"
                },
                "PhoneNumberFields": [
                  {
                    "Identifier": "string"
                  }
                  ...
                ],
                "AddressFields": [
                  {
                    "Identifier": "string"
                  }
                  ...
                ]
              },
              "ResponseInspection": {
                "StatusCode": {
                  "SuccessCodes": [integer, ...],
                  "FailureCodes": [integer, ...]
                },
                "Header": {
                  "Name": "string",
                  "SuccessValues": ["string", ...],
                  "FailureValues": ["string", ...]
                },
                "BodyContains": {
                  "SuccessStrings": ["string", ...],
                  "FailureStrings": ["string", ...]
                },
                "Json": {
                  "Identifier": "string",
                  "SuccessValues": ["string", ...],
                  "FailureValues": ["string", ...]
                }
              },
              "EnableRegexInPath": true|false
            }
          }
          ...
        ],
        "RuleActionOverrides": [
          {
            "Name": "string",
            "ActionToUse": {
              "Block": {
                "CustomResponse": {
                  "ResponseCode": integer,
                  "CustomResponseBodyKey": "string",
                  "ResponseHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Allow": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Count": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Captcha": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              },
              "Challenge": {
                "CustomRequestHandling": {
                  "InsertHeaders": [
                    {
                      "Name": "string",
                      "Value": "string"
                    }
                    ...
                  ]
                }
              }
            }
          }
          ...
        ]
      },
      "LabelMatchStatement": {
        "Scope": "LABEL"|"NAMESPACE",
        "Key": "string"
      },
      "RegexMatchStatement": {
        "RegexString": "string",
        "FieldToMatch": {
          "SingleHeader": {
            "Name": "string"
          },
          "SingleQueryArgument": {
            "Name": "string"
          },
          "AllQueryArguments": {

          },
          "UriPath": {

          },
          "QueryString": {

          },
          "Body": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Method": {

          },
          "JsonBody": {
            "MatchPattern": {
              "All": {

              },
              "IncludedPaths": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "InvalidFallbackBehavior": "MATCH"|"NO_MATCH"|"EVALUATE_AS_STRING",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Headers": {
            "MatchPattern": {
              "All": {

              },
              "IncludedHeaders": ["string", ...],
              "ExcludedHeaders": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "Cookies": {
            "MatchPattern": {
              "All": {

              },
              "IncludedCookies": ["string", ...],
              "ExcludedCookies": ["string", ...]
            },
            "MatchScope": "ALL"|"KEY"|"VALUE",
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "HeaderOrder": {
            "OversizeHandling": "CONTINUE"|"MATCH"|"NO_MATCH"
          },
          "JA3Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "JA4Fingerprint": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          },
          "UriFragment": {
            "FallbackBehavior": "MATCH"|"NO_MATCH"
          }
        },
        "TextTransformations": [
          {
            "Priority": integer,
            "Type": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE"|"BASE64_DECODE"|"HEX_DECODE"|"MD5"|"REPLACE_COMMENTS"|"ESCAPE_SEQ_DECODE"|"SQL_HEX_DECODE"|"CSS_DECODE"|"JS_DECODE"|"NORMALIZE_PATH"|"NORMALIZE_PATH_WIN"|"REMOVE_NULLS"|"REPLACE_NULLS"|"BASE64_DECODE_EXT"|"URL_DECODE_UNI"|"UTF8_TO_UNICODE"
          }
          ...
        ]
      }
    },
    "Action": {
      "Block": {
        "CustomResponse": {
          "ResponseCode": integer,
          "CustomResponseBodyKey": "string",
          "ResponseHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      },
      "Allow": {
        "CustomRequestHandling": {
          "InsertHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      },
      "Count": {
        "CustomRequestHandling": {
          "InsertHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      },
      "Captcha": {
        "CustomRequestHandling": {
          "InsertHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      },
      "Challenge": {
        "CustomRequestHandling": {
          "InsertHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      }
    },
    "OverrideAction": {
      "Count": {
        "CustomRequestHandling": {
          "InsertHeaders": [
            {
              "Name": "string",
              "Value": "string"
            }
            ...
          ]
        }
      },
      "None": {

      }
    },
    "RuleLabels": [
      {
        "Name": "string"
      }
      ...
    ],
    "VisibilityConfig": {
      "SampledRequestsEnabled": true|false,
      "CloudWatchMetricsEnabled": true|false,
      "MetricName": "string"
    },
    "CaptchaConfig": {
      "ImmunityTimeProperty": {
        "ImmunityTime": long
      }
    },
    "ChallengeConfig": {
      "ImmunityTimeProperty": {
        "ImmunityTime": long
      }
    }
  }
  ...
]

--visibility-config (структура)

Определяет и включает метрики Amazon CloudWatch и сбор образцов веб-запросов.

SampledRequestsEnabled -> (boolean)

Указывает, следует ли WAF хранить выборку веб-запросов, соответствующих правилам. Вы можете просмотреть выборочные запросы через консоль WAF.

Если вы настраиваете защиту данных для веб-ACL, защита применяется к данным выборочных веб-запросов веб-ACL.

Примечание

Выборка запросов не предоставляет опцию редактирования полей, и любое редактирование полей, которое вы указываете в своей конфигурации ведения журнала, не влияет на выборку. Вы можете исключить поля из выборки запросов, только отключив выборку в конфигурации видимости веб-ACL или настроив защиту данных для веб-ACL.

CloudWatchMetricsEnabled -> (boolean)

Указывает, отправляет ли связанный ресурс метрики в Amazon CloudWatch. Список доступных метрик см. в разделе WAF Metrics в WAF Developer Guide .

Для веб-ACL метрики предназначены для веб-запросов, к которым применено действие по умолчанию для веб-ACL. WAF применяет действие по умолчанию к веб-запросам, которые проходят проверку всех правил в веб-ACL, не будучи разрешенными или заблокированными. Для получения дополнительной информации см. раздел The web ACL default action в WAF Developer Guide .

MetricName -> (string)

Имя измерения метрики Amazon CloudWatch. Имя может содержать только символы: A-Z, a-z, 0-9, - (дефис) и _ (подчеркивание). Имя может быть от одного до 128 символов в длину. Оно не может содержать пробелы или имена метрик, зарезервированные для WAF, например All и Default_Action .

Синтаксис сокращений:

SampledRequestsEnabled=boolean,CloudWatchMetricsEnabled=boolean,MetricName=string

Синтаксис JSON:

{
  "SampledRequestsEnabled": true|false,
  "CloudWatchMetricsEnabled": true|false,
  "MetricName": "string"
}

--tags (список)

Массив пар key:value для связи с ресурсом.

(структура)

Тег, связанный с ресурсом Amazon Web Services. Теги — это пары ключ-значение, которые можно использовать для категоризации и управления ресурсами, например, для выставления счетов или другого управления. Как правило, ключ тега представляет категорию, например «environment», а значение тега представляет собой конкретное значение в этой категории, например «test», «development» или «production». Или вы можете установить ключ тега в «customer», а значение — в имя или идентификатор клиента. Вы можете указать один или несколько тегов, чтобы добавить к каждому ресурсу Amazon Web Services, до 50 тегов для ресурса.

Вы можете пометить ресурсы Amazon Web Services, которыми вы управляете через WAF: веб-ACL, группы правил, наборы IP-адресов и наборы шаблонов regex. Вы не можете управлять или просматривать теги через консоль WAF.

Key -> (string)

Часть пары ключ-значение, которая определяет тег. Вы можете использовать ключ тега для описания категории информации, например «customer». Ключи тегов чувствительны к регистру.

Value -> (string)

Часть пары ключ-значение, которая определяет тег. Вы можете использовать значение тега для описания конкретного значения в категории, например «companyA» или «companyB». Значения тегов чувствительны к регистру.

Синтаксис сокращений:

Key=string,Value=string ...

Синтаксис JSON:

[
  {
    "Key": "string",
    "Value": "string"
  }
  ...
]

--custom-response-bodies (карта)

Сопоставление пользовательских ключей ответа и тел контента. Когда вы создаете правило с действием блокировки, вы можете отправить пользовательский ответ на веб-запрос. Вы определяете их для группы правил, а затем используете их в правилах, которые вы определяете в группе правил.

Для получения информации о настройке веб-запросов и ответов см. раздел «Настройка веб-запросов и ответов в WAF» в Руководстве разработчика WAF.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел «Квоты WAF» в Руководстве разработчика WAF.

ключ -> (string)

значение -> (structure)

Текст ответа для использования в пользовательском ответе на веб-запрос. На него ссылается ключ из CustomResponse CustomResponseBodyKey .

ContentType -> (string)

Тип контента в полезных данных, которые вы определяете в строке Content.

Content -> (string)

Полезные данные пользовательского ответа.

Вы можете использовать строки экранирования JSON в контенте JSON. Для этого необходимо указать контент JSON в настройке ContentType.

Для получения информации об ограничениях на количество и размер пользовательских настроек запросов и ответов см. раздел «Квоты WAF» в Руководстве разработчика WAF.

Синтаксис сокращений:

KeyName1=ContentType=string,Content=string,KeyName2=ContentType=string,Content=string

Синтаксис JSON:

{"string": {
      "ContentType": "TEXT_PLAIN"|"TEXT_HTML"|"APPLICATION_JSON",
      "Content": "string"
    }
  ...}

--cli-input-json | --cli-input-yaml (string) Считывает аргументы из предоставленной строки JSON. Строка JSON соответствует формату, предоставленному --generate-cli-skeleton. Если в командной строке предоставлены другие аргументы, эти значения переопределят значения, предоставленные JSON. Невозможно передать произвольные двоичные значения, используя значение, предоставленное JSON, так как строка будет воспринята буквально. Это не может быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (string) Выводит скелет JSON в стандартный вывод без отправки запроса API. При предоставлении без значения или значения input выводит пример входных данных JSON, которые можно использовать в качестве аргумента для --cli-input-json. Аналогичным образом, при предоставлении yaml-input он выведет пример входных данных YAML, которые можно использовать с --cli-input-yaml. При предоставлении значения output он проверяет входные данные команды и возвращает пример выходных данных JSON для этой команды. Сгенерированный скелет JSON не является стабильным между версиями AWS CLI, и в сгенерированном скелете JSON отсутствуют гарантии обратной совместимости.

Глобальные параметры

--debug (boolean)

Включить ведение журнала отладки.

--endpoint-url (string)

Переопределить URL по умолчанию для команды указанным URL.

--no-verify-ssl (boolean)

По умолчанию AWS CLI использует SSL при общении со службами AWS. Для каждого SSL-соединения AWS CLI будет проверять сертификаты SSL. Эта опция переопределяет поведение по умолчанию при проверке сертификатов SSL.

--no-paginate (boolean)

Отключить автоматическую разбивку на страницы. Если автоматическая разбивка на страницы отключена, AWS CLI сделает только один вызов для первой страницы результатов.

--output (string)

Стиль форматирования выходных данных команды.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (string)

Запрос JMESPath для использования при фильтрации данных ответа.

--profile (string)

Использовать определенный профиль из вашего файла учетных данных.

--region (string)

Регион для использования. Переопределяет настройки конфигурации/среды.

--version (string)

Отобразить версию этого инструмента.

--color (string)

Включение/выключение цветного вывода.

  • on
  • off
  • auto

--no-sign-request (boolean)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.

--ca-bundle (string)

Пакет сертификатов CA для использования при проверке сертификатов SSL. Переопределяет настройки конфигурации/среды.

--cli-read-timeout (int)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокироваться и не завершится по таймауту. Значение по умолчанию — 60 секунд.

--cli-connect-timeout (int)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокироваться и не завершится по таймауту. Значение по умолчанию — 60 секунд.

--cli-binary-format (string)

Стиль форматирования, который будет использоваться для двоичных больших объектов. Формат по умолчанию — base64. Формат base64 предполагает, что двоичные большие объекты будут предоставлены в виде строки, закодированной в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, которое соответствует двоичному большому объекту, fileb:// всегда будет рассматриваться как двоичный и использовать содержимое файла напрямую, независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть надлежащим образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (boolean)

Отключить пейджер cli для вывода.

--cli-auto-prompt (boolean)

Автоматически запрашивать параметры ввода CLI.

--no-cli-auto-prompt (boolean)

Отключить автоматическое запрашивание параметров ввода CLI.

Примеры

Примечание

Чтобы использовать следующие примеры, необходимо установить и настроить AWS CLI. См. руководство «Начало работы» в Руководстве пользователя AWS CLI для получения дополнительной информации.

Если не указано иное, во всех примерах используются правила цитирования, подобные unix. Эти примеры необходимо будет адаптировать к правилам цитирования вашего терминала. См. раздел «Использование кавычек со строками» в Руководстве пользователя AWS CLI.

Чтобы создать пользовательскую группу правил для использования в ваших списках ACL веб-сайтов

Следующая команда create-rule-group создает пользовательскую группу правил для регионального использования. Операторы правил для группы предоставляются в файле в формате JSON.

aws wafv2 create-rule-group \
    --name "TestRuleGroup" \
    --scope REGIONAL \
    --capacity 250 \
    --rules file://waf-rule.json \
    --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=TestRuleGroupMetrics \
    --region us-west-2

Содержимое file://waf-rule.json:

[
    {
        "Name":"basic-rule",
        "Priority":0,
        "Statement":{
            "AndStatement":{
                "Statements":[
                    {
                        "ByteMatchStatement":{
                            "SearchString":"example.com",
                            "FieldToMatch":{
                                "SingleHeader":{
                                    "Name":"host"
                                }
                            },
                            "TextTransformations":[
                                {
                                    "Priority":0,
                                    "Type":"LOWERCASE"
                                }
                            ],
                            "PositionalConstraint":"EXACTLY"
                        }
                    },
                    {
                        "GeoMatchStatement":{
                            "CountryCodes":[
                                "US",
                                "IN"
                            ]
                        }
                    }
                ]
            }
        },
        "Action":{
            "Allow":{

            }
        },
        "VisibilityConfig":{
            "SampledRequestsEnabled":true,
            "CloudWatchMetricsEnabled":true,
            "MetricName":"basic-rule"
        }
    }
]

Выход:

{
    "Summary":{
        "ARN":"arn:aws:wafv2:us-west-2:123456789012:regional/rulegroup/TestRuleGroup/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "Description":"",
        "Name":"TestRuleGroup",
        "LockToken":"7b3bcec2-374e-4c5a-b2b9-563bf47249f0",
        "Id":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    }
}

Дополнительные сведения см. в разделе «Управление собственными группами правил» в Руководстве разработчика AWS WAF, AWS Firewall Manager и AWS Shield Advanced.

Вывод

Summary -> (structure)

Высокоуровневая информация о RuleGroup, возвращаемая такими операциями, как создание и перечисление. Это предоставляет такую информацию, как ID, которую вы можете использовать для получения и управления RuleGroup, и ARN, который вы предоставляете в RuleGroupReferenceStatement для использования группы правил в Rule.

Name -> (string)

Имя экземпляра типа данных. Вы не можете изменить имя после создания экземпляра.

Id -> (string)

Уникальный идентификатор для группы правил. Этот идентификатор возвращается в ответах на команды создания и перечисления. Вы предоставляете его таким операциям, как обновление и удаление.

Description -> (string)

Описание группы правил, которое помогает с идентификацией.

LockToken -> (string)

Токен, используемый для оптимистической блокировки. WAF возвращает токен в ваши запросы get и list, чтобы отметить состояние сущности на момент запроса. Чтобы внести изменения в сущность, связанную с токеном, вы предоставляете токен таким операциям, как update и delete. WAF использует токен, чтобы гарантировать, что в сущность не было внесено никаких изменений с момента ее последнего получения. Если изменение было внесено, обновление завершится неудачей с WAFOptimisticLockException. Если это произойдет, выполните еще одну операцию get и используйте новый токен, возвращенный этой операцией.

ARN -> (string)

Имя ресурса Amazon (ARN) сущности.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

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