[ aws . waf-regional ]
create-rate-based-rule
Описание
Примечание
Это документация для AWS WAF Classic. Дополнительную информацию см. в руководстве разработчика для AWS WAF Classic.
Создаёт RateBasedRule. В RateBasedRule содержится RateLimit, который определяет максимальное количество запросов, разрешённых AWS WAF с указанного IP-адреса за пять минут. RateBasedRule также содержит объекты IPSet, ByteMatchSet и другие предикаты, которые определяют запросы, которые необходимо подсчитать или заблокировать, если эти запросы превысят RateLimit.
Если вы добавите более одного предиката в RateBasedRule, запрос не только должен превысить RateLimit, но также должен соответствовать всем условиям, чтобы быть посчитанным или заблокированным. Например, предположим, что вы добавите следующее в RateBasedRule:
IPSet, который соответствует IP-адресу192.0.2.44/32ByteMatchSet, который соответствует значению в заголовкеBadBotвUser-Agent
Кроме того, вы указываете RateLimit в 1000.
Затем вы добавляете RateBasedRule в WebACL и указываете, что хотите блокировать запросы, которые соответствуют условиям в правиле. Для того, чтобы запрос был заблокирован, он должен поступать с IP-адреса 192.0.2.44 и заголовок User-Agent в запросе должен содержать значение BadBot. Кроме того, запросы, которые соответствуют этим двум условиям, должны поступать со скоростью более 1000 запросов каждые пять минут. Если оба условия выполняются и скорость превышена, AWS WAF блокирует запросы. Если скорость падает ниже 1000 за пять минут, AWS WAF больше не блокирует запросы.
В качестве второго примера, предположим, что вы хотите ограничить запросы к определённой странице на вашем сайте. Для этого вы можете добавить следующее в RateBasedRule:
ByteMatchSetсFieldToMatchзначенияURIPositionalConstraintзначенияSTARTS_WITHTargetStringзначенияlogin
Кроме того, вы указываете RateLimit в 1000.
Добавив этот RateBasedRule в WebACL, вы могли бы ограничить запросы к вашей странице входа без влияния на остальную часть сайта.
Чтобы создать и настроить RateBasedRule, выполните следующие шаги:
- Создайте и обновите предикаты, которые вы хотите включить в правило. Дополнительную информацию см. в CreateByteMatchSet , CreateIPSet и CreateSqlInjectionMatchSet .
- Используйте GetChangeToken для получения маркера изменения, который вы предоставляете в параметре
ChangeTokenзапросаCreateRule. - Отправьте запрос
CreateRateBasedRule. - Используйте
GetChangeTokenдля получения маркера изменения, который вы предоставляете в параметреChangeTokenзапроса UpdateRule. - Отправьте запрос
UpdateRateBasedRule, чтобы указать предикаты, которые вы хотите включить в правило. - Создайте и обновите
WebACL, который содержитRateBasedRule. Дополнительную информацию см. в CreateWebACL.
Дополнительную информацию о том, как использовать API AWS WAF для разрешения или блокирования HTTP-запросов, см. в руководстве разработчика AWS WAF.
См. также: Документация API AWS
Синтаксис
create-rate-based-rule
--name <value>
--metric-name <value>
--rate-key <value>
--rate-limit <value>
--change-token <value>
[--tags <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 (строка)
RateBasedRule после его создания.--metric-name (строка)
RateBasedRule. Имя может содержать только буквенно-цифровые символы (A-Z, a-z, 0-9), с максимальной длиной 128 и минимальной длиной 1. Оно не может содержать пробелы или имена метрик, зарезервированные для AWS WAF, включая «All» и «Default_Action». Вы не можете изменить имя метрики после создания RateBasedRule.--rate-key (строка)
Поле, которое AWS WAF использует для определения того, поступают ли запросы, скорее всего, от одного источника, и, следовательно, подлежат мониторингу скорости. Единственное допустимое значение для RateKey — IP. IP указывает, что запросы, поступающие с одного IP-адреса, подлежат RateLimit, который указан в RateBasedRule.
Возможные значения:
IP
--rate-limit (целое число)
RateKey, разрешённых за пять минут. Если количество запросов превышает RateLimit и другие предикаты, указанные в правиле, также выполняются, AWS WAF запускает действие, указанное для этого правила.--change-token (строка)
ChangeToken, который вы использовали для отправки запроса CreateRateBasedRule. Вы также можете использовать это значение для запроса статуса запроса. Дополнительную информацию см. в GetChangeTokenStatus.--tags (список)
(структура)
Примечание
Это документация для AWS WAF Classic. Дополнительную информацию см. в руководстве разработчика для AWS WAF Classic.
Тег, связанный с ресурсом AWS. Теги — пары ключ:значение, которые вы можете использовать для категоризации и управления своими ресурсами, например, для выставления счетов. Например, вы можете установить ключ тега на «customer», а значение на имя или идентификатор клиента. Вы можете указать один или несколько тегов для добавления к каждому ресурсу AWS, до 50 тегов для ресурса.
Теги доступны только через API, SDK и CLI. Вы не можете управлять или просматривать теги через консоль AWS WAF Classic. Вы можете добавлять теги к ресурсам AWS, которые вы управляете через AWS WAF Classic: web ACL, группам правил и правилам.
Ключ -> (строка)
Значение -> (строка)
Краткая запись:
Key=string,Value=string ...
Синтаксис JSON:
[
{
"Key": "string",
"Value": "string"
}
...
]
--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 (строка)
Переопределяет адрес по умолчанию команды на указанный адрес.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с сервисами AWS. Для каждого подключения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение проверки сертификатов SSL по умолчанию.
--no-paginate (логическое значение)
Отключает автоматическую постраничность. Если автоматическая постраничность отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для вывода команд.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использование определенного профиля из файла учетных данных.
--region (строка)
Используемый регион. Переопределяет настройки конфигурации/среды.
--version (строка)
Отображение версии этого инструмента.
--color (строка)
Включение/выключение цветного вывода.
- on
- off
- auto
--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.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запросить параметры CLI.
Вывод
Правило -> (структура)
Правило RateBasedRule, которое возвращается в ответ CreateRateBasedRule.
RuleId -> (строка)
RateBasedRule. Используйте RuleId, чтобы получить более подробную информацию о RateBasedRule (см. GetRateBasedRule), обновить RateBasedRule (см. UpdateRateBasedRule), вставить RateBasedRule в WebACL или удалить из WebACL (см. UpdateWebACL), или удалить RateBasedRule из AWS WAF (см. DeleteRateBasedRule).Имя -> (строка)
RateBasedRule. Вы не можете изменить имя RateBasedRule после его создания.ИмяМетрики -> (строка)
RateBasedRule. Имя может содержать только буквенно-цифровые символы (A-Z, a-z, 0-9), с максимальной длиной 128 символов и минимальной 1. Оно не может содержать пробелы или имена метрик, зарезервированные для AWS WAF, включая «All» и «Default_Action». Вы не можете изменить имя метрики после создания RateBasedRule.MatchPredicates -> (список)
Объект Predicates содержит по одному элементу Predicate для каждого объекта ByteMatchSet, IPSet или SqlInjectionMatchSet, которые вы хотите включить в RateBasedRule.
(структура)
Примечание
Это документация по AWS WAF Classic. Для получения дополнительной информации см. AWS WAF Classic в руководстве разработчика.
Указывает объекты ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet и SizeConstraintSet, которые вы хотите добавить в Rule, и для каждого объекта указывает, хотите ли вы инвертировать настройки, например, запросы, НЕ исходящие из IP-адреса 192.0.2.44.
Negated -> (булево)
Установите Negated на значение False, если вы хотите, чтобы AWS WAF разрешал, блокировал или учитывал запросы, основанные на настройках в указанном ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet или SizeConstraintSet. Например, если IPSet включает IP-адрес 192.0.2.44, AWS WAF будет разрешать или блокировать запросы на основе этого IP-адреса.
Установите Negated на значение True, если вы хотите, чтобы AWS WAF разрешал или блокировал запрос на основе инвертирования настроек в ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet, GeoMatchSet или SizeConstraintSet. Например, если IPSet включает IP-адрес 192.0.2.44, AWS WAF будет разрешать, блокировать или учитывать запросы на основе всех IP-адресов, *кроме* 192.0.2.44.
Тип -> (строка)
Rule, например, ByteMatch или IPSet.DataId -> (строка)
Rule, например, ByteMatchSetId или IPSetId. Идентификатор возвращается соответствующей командой Create или List.RateKey -> (строка)
RateKey — IP. IP указывает, что запросы, поступающие с одного IP-адреса, подлежат RateLimit, указанной в RateBasedRule.RateLimit -> (целое число)
RateKey, разрешённых в пятиминутный период. Если количество запросов превысит RateLimit и другие предикаты, указанные в правиле, также выполнены, AWS WAF запускает действие, указанное для этого правила.ChangeToken -> (строка)
ChangeToken, который вы использовали для отправки запроса CreateRateBasedRule. Вы также можете использовать это значение для запроса состояния запроса. Для получения дополнительной информации см. GetChangeTokenStatus.
© Copyright 2025, Amazon Web Services. Created using Sphinx.