Добавить правило в профиль ARL
В профиле ARL можно добавить только правила ARL. Базовые правила, а также правила Smart Protection и WAF добавляются в профиле безопасности.
-
В консоли управления
выберите каталог, в котором находится профиль ARL. -
Перейдите в сервис Smart Web Security.
-
На панели слева выберите
Профили ARL. -
Выберите профиль, в который вы хотите добавить правило.
-
Нажмите кнопку
Добавить правило и в открывшемся окне:-
Введите имя правила.
-
(Опционально) Введите описание.
-
Задайте приоритет правила. Этот приоритет действует только на правила ARL и не зависит от приоритета правил в профиле безопасности.
-
(Опционально) Включите опцию Включить dry run (только логирование), чтобы протестировать правило и оценить нагрузку на веб-сервис. В этом режиме запросы блокироваться не будут.
-
В блоке Условия на трафик определите трафик, для анализа которого будет использоваться правило:
-
Весь трафик— правило будет использоваться для анализа всего трафика. -
При условии— правило будет использоваться для анализа трафика, заданного в поле Условия:IP— IP-адрес, диапазон адресов, регион адресов или список адресов;HTTP header— строка в заголовке HTTP;Request URI— путь запроса;Host— домен, на который пришел запрос;HTTP method— метод запроса;Cookie— строка в заголовке cookie.Имя бота— легитимные боты, принадлежащие различным компаниям и сервисам.Категория бота— категории верифицированных ботов по их назначению или характеру действий.Верифицированный бот— фильтрация по признаку верификации бота (даилинет).Вероятность бота— фильтрация по уровню от0(самая низкая вероятность, человек) до100(самая высокая вероятность, бот).
Вы можете задать несколько условий. Для этого в поле Условия выберите все необходимые типы условий.
Вы также можете задать несколько условий одного типа. Для этого в секции с нужным условием нажмите кнопку
и или или.Чтобы удалить условие, нажмите
.
-
-
В блоке Подсчет запросов выберите:
-
Без группировки— считать каждый запрос по отдельности. -
По характеристикам— считать группы запросов, объединенных одной или несколькими характеристиками.-
Выберите характеристику для группировки:
Автоматическая группировка Группировка по ключу Request path— путь запросаHTTP cookie— строка в заголовке cookieHTTP method— метод запросаHTTP header— строка в заголовке HTTPIP-адрес— IP-адрес, с которого пришел запросQuery params— строка в параметрах запроса.Регион— регион, которому принадлежат IP-адреса запросовHost— домен, на который пришел запросДля группировки по ключу, укажите значение ключа.
-
(Опционально) Включите опцию
Учитывать регистр, чтобы характеристики с одинаковыми значениями, но в разном регистре попадали в разные группы.
-
Задайте лимит запросов или лимит запросов на группу, а также временной интервал (от
1 секундыдо60 минут), за который рассчитывать лимит. Все запросы сверх лимита будут блокироваться. -
-
В блоке При превышении лимита запросов выберите действие:
- Блокировать запросы свыше лимита (доступно без группировки запросов) — заблокировать все запросы, которые поступят в период, заданный в лимите запросов.
- Временно блокировать все запросы (доступно при группировке запросов) и укажите период времени, в течение которого запросы будут блокироваться.
- Показать капчу для запросов свыше лимита — отправлять на капчу все запросы, которые поступят в период, заданный в лимите запросов. Капчу можно настроить в профиле безопасности, к которому подключен профиль ARL.
-
Нажмите кнопку Сохранить правило.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы добавить правило в профиль ARL:
-
Откройте файл конфигурации Terraform и измените фрагмент с описанием ресурса
yandex_sws_advanced_rate_limiter_profile: добавьте блокadvanced_rate_limiter_ruleс правилом безопасности.# Профиль ARL resource "yandex_sws_advanced_rate_limiter_profile" "arl-profile" { name = "<имя_профиля>" description = "<описание_профиля>" # Правило 1 advanced_rate_limiter_rule { name = "<имя_правила>" priority = <приоритет_правила> description = "<описание_правила>" dry_run = true static_quota { action = "DENY" limit = <лимит_правила> period = <период_правила> condition { request_uri { path { exact_match = "/api" } } } } } # Правило 2 advanced_rate_limiter_rule { name = "<имя_правила>" priority = <приоритет_правила> description = "<описание_правила>" dry_run = true static_quota { action = "DENY" limit = <лимит_правила> period = <период_правила> condition { source_ip { geo_ip_match { locations = ["ru", "kz"] } } } } } }Где:
name— имя профиля ARL.description— описание профиля ARL. Необязательный параметр.labels— метки профиля ARL. Необязательный параметр.advanced_rate_limiter_rule— блок правил.name— имя правила.priority— приоритет правила, уникальное число от1до999999. Первыми применяются правила с меньшим числовым значением.description— описание правила. Необязательный параметр.dry_run— флаг пробного запуска. Установите значениеtrue, чтобы протестировать правило и оценить нагрузку на веб-сервис. В этом режиме запросы блокироваться не будут, но информация о срабатывании правила будет записываться в логи. Необязательный параметр.static_quota— способ подсчета запросов, при котором считается каждый запрос по отдельности, без группировки. Может быть указан только один из блоков:static_quotaилиdynamic_quota.action— действие при превышении лимита. Единственное возможное значение —DENY.limit— максимальное количество разрешенных запросов за период.period— период времени в секундах, в течение которого считается лимит.condition— условие применения правила. Необязательный параметр. Описание условий см. в документации провайдера, в разделе описания структурыadvanced_rate_limiter_rule.static_quota.condition.
dynamic_quota— способ подсчета запросов, при котором считаются группы запросов, объединенных одной или несколькими характеристиками. Может быть указан только один из блоков:static_quotaилиdynamic_quota.action— действие при превышении лимита. Единственное возможное значение —DENY.limit— максимальное количество разрешенных запросов за период.period— период времени в секундах, в течение которого считается лимит.condition— условие применения правила. Необязательный параметр. Описание условий см. в документации провайдера, в разделе описания структурыadvanced_rate_limiter_rule.dynamic_quota.condition.characteristic- описание характеристик для группировки запросов. Может быть указан один из блоков:simple_characteristicилиkey_characteristic.case_insensitive:true— не учитывать регистр,false— учитывать регистр.key_characteristic— блок параметров, для которых надо указать ключ (строку) для группировки запросов.type– тип группировки. Возможные значения:COOKIE_KEY,HEADER_KEY,QUERY_KEY.value— значение ключа (строка), по которому будут группироваться запросы.
simple_characteristic— блок параметров с автоматической группировкой. Т.е. запросы группируются автоматически по указанному параметру.type– тип группировки. Возможные значения:REQUEST_PATH,HTTP_METHOD,IP,GEO,HOST.
Более подробную информацию о параметрах ресурса
yandex_sws_advanced_rate_limiter_profile, см. в документации провайдера. -
Примените изменения:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить изменение ресурсов можно в консоли управления
. -
Получите информацию о профиле ARL и затем внесите изменения в профиль ARL с помощью метода REST API update для ресурса AdvancedRateLimiterProfile или вызова gRPC API AdvancedRateLimiterProfile/Update.