Добавить правило в профиль 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.
Вы можете задать несколько условий. Для этого в поле Условия выберите все необходимые типы условий.
Вы также можете задать несколько условий одного типа. Для этого в секции с нужным условием нажмите кнопку
и или или.Чтобы удалить условие, нажмите
.
-
-
В блоке Подсчет запросов выберите:
-
Без группировки— считать каждый запрос по отдельности. -
По характеристикам— считать группы запросов, объединенных одной или несколькими характеристиками.-
Выберите характеристику для группировки:
Автоматическая группировка Группировка по ключу 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.