[ aws . waf-regional ]
update-byte-match-set
Описание
Примечание
Это документация по AWS WAF Classic. Для получения дополнительной информации см. AWS WAF Classic в руководстве разработчика.
Вставляет или удаляет объекты ByteMatchTuple (фильтры) в ByteMatchSet. Для каждого объекта ByteMatchTuple вы указываете следующие значения:
- Необходимо ли вставить или удалить объект из массива. Если вы хотите изменить объект
ByteMatchSetUpdate, вы удаляете существующий объект и добавляете новый. - Часть веб-запроса, которую AWS WAF должен проверять, например, строку запроса или значение заголовка
User-Agent. - Байты (обычно строка, соответствующая ASCII-символам), которые AWS WAF должен искать. Для получения дополнительной информации, включая то, как вы указываете значения для API AWS WAF и AWS CLI или SDK, см.
TargetStringв типе данных ByteMatchTuple. - Место поиска, например, в начале или конце строки запроса.
- Нужно ли выполнять какие-либо преобразования запроса, например, приводить его к нижнему регистру, прежде чем проверять его на указанную строку.
Например, вы можете добавить объект ByteMatchSetUpdate, который соответствует веб-запросам, в которых заголовки User-Agent содержат строку BadBot. Затем вы можете настроить AWS WAF для блокирования этих запросов.
Для создания и настройки ByteMatchSet выполните следующие шаги:
- Создайте
ByteMatchSet.. Для получения дополнительной информации см. CreateByteMatchSet. - Используйте GetChangeToken для получения маркера изменения, который вы предоставляете в параметре
ChangeTokenзапросаUpdateByteMatchSet. - Отправьте запрос
UpdateByteMatchSetдля указания части запроса, которую AWS WAF должен проверять (например, заголовок или URI), и значения, которое AWS WAF должен искать.
Дополнительную информацию о том, как использовать API AWS WAF для разрешения или блокирования HTTP-запросов, см. в руководстве разработчика AWS WAF.
См. также: Документация API AWS
Синтаксис
update-byte-match-set
--byte-match-set-id <value>
--change-token <value>
--updates <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]
Параметры
--byte-match-set-id (строка)
ByteMatchSetId возвращается методами CreateByteMatchSet и ListByteMatchSets.--change-token (строка)
--updates (список)
Массив объектов ByteMatchSetUpdate, которые вы хотите вставить или удалить из ByteMatchSet. Дополнительную информацию см. в соответствующих типах данных:
- ByteMatchSetUpdate : Содержит
ActionиByteMatchTuple - ByteMatchTuple : Содержит
FieldToMatch,PositionalConstraint,TargetStringиTextTransformation - FieldToMatch : Содержит
DataиType
(структура)
Примечание
Это документация по AWS WAF Classic. Для получения дополнительной информации см. AWS WAF Classic в руководстве разработчика.
В запросе UpdateByteMatchSet параметр ByteMatchSetUpdate указывает, нужно ли вставлять или удалять ByteMatchTuple, и содержит настройки для ByteMatchTuple.
Action -> (строка)
ByteMatchTuple -> (структура)
Информация о части веб-запроса, которую AWS WAF должен проверить, и значении, которое AWS WAF должен искать. Если вы укажете DELETE для значения Action , значения ByteMatchTuple должны точно совпадать со значениями в ByteMatchTuple, которые вы хотите удалить из ByteMatchSet.
FieldToMatch -> (структура)
Часть веб-запроса, которую AWS WAF должен искать, например, указанный заголовок или строку запроса. Дополнительную информацию см. в разделе FieldToMatch.
Type -> (строка)
Часть веб-запроса, которую AWS WAF должен искать для указанной строки. Части запроса, которые можно искать, включают:
-
HEADER: Указанный заголовок запроса, например, значение заголовкаUser-AgentилиReferer. Если вы выберитеHEADERдля типа, укажите имя заголовка вData. -
METHOD: HTTP-метод, который указывает тип операции, которую запрос просит выполнить у источника. Amazon CloudFront поддерживает следующие методы:DELETE,GET,HEAD,OPTIONS,PATCH,POSTиPUT. -
QUERY_STRING: Строка запроса, которая является частью URL, появляющейся после символа?, если таковой имеется. -
URI: Часть веб-запроса, которая идентифицирует ресурс, например,/images/daily-ad.jpg. -
BODY: Часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы. Тело запроса сразу следует за заголовками запроса. Обратите внимание, что только первые8192байты тела запроса передаются AWS WAF для проверки. Чтобы разрешать или блокировать запросы на основе длины тела, вы можете создать набор ограничений размера. Дополнительную информацию см. в разделе CreateSizeConstraintSet. -
SINGLE_QUERY_ARG: Параметр в строке запроса, который будет проверяться, например, UserName или SalesRegion. Максимальная длинаSINGLE_QUERY_ARGсоставляет 30 символов. -
ALL_QUERY_ARGS: АналогичноSINGLE_QUERY_ARG, но вместо проверки одного параметра AWS WAF будет проверять все параметры в строке запроса на значение или шаблон регулярных выражений, указанные вTargetString.
Data -> (строка)
Когда значение Type равно HEADER, введите имя заголовка, который AWS WAF должен искать, например, User-Agent или Referer. Название заголовка не чувствительно к регистру.
Когда значение Type равно SINGLE_QUERY_ARG, введите имя параметра, который AWS WAF должен искать, например, UserName или SalesRegion. Название параметра не чувствительно к регистру.
Если значение Type — любое другое значение, опустите Data.
TargetString -> (blob)
Значение, которое вы хотите, чтобы AWS WAF искал. AWS WAF ищет указанную строку в части веб-запросов, указанных в FieldToMatch. Максимальная длина значения составляет 50 байт.
Допустимые значения зависят от значений, указанных для FieldToMatch:
-
HEADER: Значение, которое вы хотите, чтобы AWS WAF искал в заголовке запроса, указанном в FieldToMatch, например, значение заголовкаUser-AgentилиReferer. -
METHOD: HTTP-метод, который указывает тип операции, указанной в запросе. CloudFront поддерживает следующие методы:DELETE,GET,HEAD,OPTIONS,PATCH,POSTиPUT. -
QUERY_STRING: Значение, которое вы хотите, чтобы AWS WAF искал в строке запроса, которая является частью URL, появляющейся после символа?. -
URI: Значение, которое вы хотите, чтобы AWS WAF искал в части URL, идентифицирующей ресурс, например,/images/daily-ad.jpg. -
BODY: Часть запроса, содержащая любые дополнительные данные, которые вы хотите отправить на ваш веб-сервер в качестве тела HTTP-запроса, например, данные из формы. Тело запроса сразу следует за заголовками запроса. Обратите внимание, что только первые8192байта тела запроса передаются AWS WAF для проверки. Чтобы разрешать или блокировать запросы на основе длины тела, вы можете создать набор ограничений размера. Дополнительную информацию см. в разделе CreateSizeConstraintSet. -
SINGLE_QUERY_ARG: Параметр в строке запроса, который будет проверяться, например, UserName или SalesRegion. Максимальная длинаSINGLE_QUERY_ARGсоставляет 30 символов. -
ALL_QUERY_ARGS: АналогичноSINGLE_QUERY_ARG, но вместо проверки одного параметра AWS WAF проверяет все параметры в строке запроса на значение или шаблон регулярных выражений, указанные вTargetString.
Если TargetString содержит буквенные символы A-Z и a-z, обратите внимание, что значение чувствительно к регистру.
Укажите кодированную по основанию 64 версию значения. Максимальная длина значения перед кодированием по основанию 64 составляет 50 байт.
Например, предположим, что значение Type равно HEADER, а значение Data равно User-Agent. Если вы хотите искать в заголовке User-Agent значение BadBot, закодируйте BadBot с помощью кодирования MIME base64 и включите полученное значение QmFkQm90 в значение TargetString.
Значение, которое вы хотите, чтобы AWS WAF искал. SDK автоматически кодирует значение по основанию 64.
TextTransformation -> (строка)
Преобразования текста устраняют некоторые необычные форматирования, которые используют злоумышленники в веб-запросах, пытаясь обойти AWS WAF. Если вы укажете преобразование, AWS WAF выполнит преобразование над FieldToMatch перед проверкой его на соответствие.
Вы можете указать только один тип TextTransformation.
Когда вы беспокоитесь о том, что злоумышленники вводят команду командной строки операционной системы и используют необычное форматирование, чтобы скрыть часть или все команды, используйте этот параметр для выполнения следующих преобразований:
- Удалите следующие символы: “ ‘ ^
- Удалите пробелы перед следующими символами: / (
- Замените следующие символы на пробел: , ;
- Замените несколько пробелов одним пробелом
- Преобразуйте заглавные буквы (A-Z) в строчные (a-z)
Используйте этот параметр для замены следующих символов символом пробела (десятичное 32):
- f, подача формы, десятичное 12
- t, табуляция, десятичное 9
- n, перевод строки, десятичное 10
- r, возврат каретки, десятичное 13
- v, вертикальная табуляция, десятичное 11
- неразрывный пробел, десятичное 160
COMPRESS_WHITE_SPACE также заменяет несколько пробелов одним пробелом.
HTML_ENTITY_DECODE
Используйте этот параметр для замены кодированных HTML символов некодированными символами. HTML_ENTITY_DECODE выполняет следующие операции:
- Заменяет
(ampersand)quot;на" - Заменяет
(ampersand)nbsp;на неразрывный пробел, десятичное 160 - Заменяет
(ampersand)lt;на символ «меньше чем» - Заменяет
(ampersand)gt;на> - Заменяет символы, представленные в шестнадцатеричном формате,
(ampersand)#xhhhh;, на соответствующие символы - Заменяет символы, представленные в десятичном формате,
(ampersand)#nnnn;, на соответствующие символы
Используйте этот параметр для преобразования заглавных букв (A-Z) в строчные (a-z).
Используйте этот параметр для декодирования значения, закодированного в URL.
Укажите NONE, если вы не хотите выполнять никаких преобразований текста.
PositionalConstraint -> (строка)
В части веб-запроса, которую вы хотите искать (например, в строке запроса, если таковая имеется), укажите, где AWS WAF должен искать. Допустимые значения включают:
Указанная часть веб-запроса должна включать значение TargetString, но местоположение не имеет значения.
Указанная часть веб-запроса должна включать значение TargetString, и TargetString должно содержать только буквенно-цифровые символы или символ подчеркивания (A-Z, a-z, 0-9 или _). Кроме того, TargetString должно быть словом, что означает следующее:
-
TargetStringточно совпадает со значением указанной части веб-запроса, например, значением заголовка. -
TargetStringнаходится в начале указанной части веб-запроса и за ним следует символ, отличный от буквенно-цифрового или символа подчеркивания (_), например,BadBot;. -
TargetStringнаходится в конце указанной части веб-запроса и перед ним следует символ, отличный от буквенно-цифрового или символа подчеркивания (_), например,;BadBot. -
TargetStringнаходится посередине указанной части веб-запроса и перед ним, и после него следуют символы, отличные от буквенно-цифровых или символа подчеркивания (_), например,-BadBot;.
Значение указанной части веб-запроса должно точно совпадать со значением TargetString.
Значение TargetString должно находиться в начале указанной части веб-запроса.
Значение TargetString должно находиться в конце указанной части веб-запроса.
Сокращенная синтаксическая запись:
Action=string,ByteMatchTuple={FieldToMatch={Type=string,Data=string},TargetString=blob,TextTransformation=string,PositionalConstraint=string} ...
Синтаксис JSON:
[
{
"Action": "INSERT"|"DELETE",
"ByteMatchTuple": {
"FieldToMatch": {
"Type": "URI"|"QUERY_STRING"|"HEADER"|"METHOD"|"BODY"|"SINGLE_QUERY_ARG"|"ALL_QUERY_ARGS",
"Data": "string"
},
"TargetString": blob,
"TextTransformation": "NONE"|"COMPRESS_WHITE_SPACE"|"HTML_ENTITY_DECODE"|"LOWERCASE"|"CMD_LINE"|"URL_DECODE",
"PositionalConstraint": "EXACTLY"|"STARTS_WITH"|"ENDS_WITH"|"CONTAINS"|"CONTAINS_WORD"
}
}
...
]
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения, используя значение, предоставленное в JSON, так как строка будет воспринята буквально. Это может не быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса к API. Если предоставлено значение без значения или со значением input, выводит пример входного JSON, который может быть использован в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который может быть использован с --cli-input-yaml. Если предоставлено значение output, он проверит входные данные команды и вернёт пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Общие параметры
--debug (логическое)
Включить отладочную регистрацию.
--endpoint-url (строка)
Переопределить стандартный URL команды заданным URL.
--no-verify-ssl (логическое)
По умолчанию AWS CLI использует SSL при взаимодействии с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.
--no-paginate (логическое)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI сделает только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для вывода команды.
- json
- текст
- таблица
- yaml
- yaml-поток
--query (строка)
Запрос JMESPath для использования при фильтрации данных ответа.
--profile (строка)
Использовать определённый профиль из файла ваших учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/окружения.
--version (строка)
Показать версию этого инструмента.
--color (строка)
Включить/отключить цветной вывод.
- включено
- выключено
- автоматически
--no-sign-request (логическое)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (строка)
Файл сертификатов CA для использования при проверке SSL-сертификатов. Переопределяет настройки конфигурации/окружения.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет выполняться блокирующим образом и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет выполняться блокирующим образом и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — 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 (логическое)
Отключить кли-паджер для вывода.
--cli-auto-prompt (логическое)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (логическое)
Отключить автоматическое запроса параметров ввода CLI.
Примеры
Примечание
Чтобы использовать следующие примеры, вы должны установить и настроить AWS CLI. Более подробную информацию см. в руководстве по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры имеют правила цитирования, аналогичные правилам Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей терминальной оболочки. См. Использование кавычек со строками в руководстве пользователя AWS CLI.
Для обновления набора байт-совпадений
Следующая команда update-byte-match-set удаляет объект ByteMatchTuple (фильтр) в ByteMatchSet. Поскольку значение updates содержит вложенные двойные кавычки, вы должны заключить значение в одинарные кавычки.
aws waf-regional update-byte-match-set \
--cli-binary-format raw-in-base64-out \
--byte-match-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
--change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
--updates 'Action="DELETE",ByteMatchTuple={FieldToMatch={Type="HEADER",Data="referer"},TargetString="badrefer1",TextTransformation="NONE",PositionalConstraint="CONTAINS"}'
Для получения дополнительной информации см. работу со строковыми условиями соответствия в руководстве разработчика AWS WAF.
Вывод
ChangeToken -> (строка)
ChangeToken для отправки запроса UpdateByteMatchSet. Вы также можете использовать это значение для запроса статуса запроса. Для получения дополнительной информации см. GetChangeTokenStatus.
© Copyright 2025, Amazon Web Services. Created using Sphinx.