Добавить правило в профиль 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 минут
), за который рассчитывать лимит. Все запросы сверх лимита будут блокироваться. -
-
Нажмите кнопку Сохранить правило.
-
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.