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.
См. также: Документация AWS API
Синтаксис
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 (строка)
CreateRateBasedRule. Вы также можете использовать это значение для запроса статуса запроса. Дополнительную информацию см. в GetChangeTokenStatus.--tags (список)
(структура)
Примечание
Данная документация относится к AWS WAF Classic. Дополнительную информацию см. в руководстве разработчика AWS WAF Classic.
Тег, связанный с ресурсом AWS. Теги — это пары ключ-значение, которые вы можете использовать для категоризации и управления своими ресурсами, например, для выставления счетов. Например, вы можете задать ключ тега «клиент» и значение — имя или идентификатор клиента. Вы можете указать один или несколько тегов для добавления к каждому ресурсу AWS, до 50 тегов на ресурс.
Теги доступны только через API, SDK и командную строку. Вы не можете управлять или просматривать теги через консоль AWS WAF Classic. Вы можете назначать теги ресурсам AWS, которые вы управляете через AWS WAF Classic: правилам веб-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 (строка)
Переопределить URL по умолчанию команды указанным URL.
--no-verify-ssl (булево)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет поведение проверки сертификатов SSL по умолчанию.
--no-paginate (булево)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования вывода команды.
- json
- text
- таблица
- 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.
--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.