Изменить правило в профиле безопасности
В профиле безопасности можно изменить базовые правила, а также правила Smart Protection и WAF. Правила ARL изменяются в профиле ARL. Если при редактировании правил возникает ошибка, проверьте, что сервисному аккаунту назначена роль logging.writer.
-
В консоли управления
выберите каталог, в котором находится нужный профиль безопасности. -
Перейдите в сервис Smart Web Security.
-
Выберите профиль, в котором вы хотите изменить правило.
-
На вкладке Правила безопасности в строке с нужным правилом нажмите
и выберите Редактировать. -
В открывшемся окне задайте новые параметры правила:
-
Введите имя правила.
-
(опционально) Введите описание.
-
Задайте приоритет правила. Добавляемое правило будет иметь более высокий приоритет, чем преднастроенные правила.
Примечание
Чем меньше значение параметра, тем больший приоритет у правила. Приоритеты преднастроенных правил:
- базовое правило по умолчанию —
1000000; - правило Smart Protection с полной защитой —
999900.
- базовое правило по умолчанию —
-
(опционально) Включите опцию Только логирование (dry run), если вы хотите только фиксировать информацию о трафике, который соответствует заданным условиям, но не применять к нему никаких действий.
-
Выберите тип правила:
-
Базовое — правило, которое по заданным условиям разрешает, запрещает или отправляет трафик в Yandex SmartCaptcha.
-
Smart Protection — правило, которое отправляет трафик на автоматический анализ с помощью алгоритмов машинного обучения и поведенческого анализа. Подозрительные запросы отправляются в Yandex SmartCaptcha для дополнительной верификации.
-
Web Application Firewall — правило, которое подключает набор правил из профиля WAF. Подозрительные запросы отправляются в Yandex SmartCaptcha.
Для правила WAF выберите или создайте профиль WAF.
-
-
Выберите действие:
-
Для базового правила:
Запретить;Разрешить;Показать капчу— будет показана капча, выбранная в профиле безопасности.
-
Для правила Smart Protection или WAF:
Полная защита— после проверки подозрительные запросы отправляются в SmartCaptcha.Защита API— после проверки подозрительные запросы блокируются.
-
-
В блоке Условия на трафик определите трафик, для анализа которого будет использоваться правило:
-
Весь трафик— правило будет использоваться для анализа всего трафика. -
При условии— правило будет использоваться для анализа трафика, заданного в поле Условия:IP— IP-адрес, диапазон адресов, регион адресов или список адресов;HTTP header— строка в заголовке HTTP;Request URI— путь запроса;Host— домен, на который пришел запрос;HTTP method— метод запроса;Cookie— строка в заголовке cookie.Имя бота— легитимные боты, принадлежащие различным компаниям и сервисам.Категория бота— категории верифицированных ботов по их назначению или характеру действий.Верифицированный бот— фильтрация по признаку верификации бота (даилинет).Вероятность бота— фильтрация по уровню от0(самая низкая вероятность, человек) до100(самая высокая вероятность, бот).
Вы можете задать несколько условий. Для этого в поле Условия выберите все необходимые типы условий.
Вы также можете задать несколько условий одного типа. Для этого в секции с нужным условием нажмите кнопку
и или или.Чтобы удалить условие, нажмите
.
-
-
Нажмите кнопку Добавить.
-
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Чтобы посмотреть список имеющихся профилей безопасности в каталоге по умолчанию, выполните команду:
yc smartwebsecurity security-profile listРезультат:
+----------------------+-------------------+---------------------+----------------+------------+-------------+ | ID | NAME | CREATED | DEFAULT ACTION | CAPTCHA ID | RULES COUNT | +----------------------+-------------------+---------------------+----------------+------------+-------------+ | fev3s055oq64******** | my-new-profile | 2024-08-05 06:57:18 | DENY | | 1 | | fevlqk8vei9p******** | my-sample-profile | 2024-08-05 06:57:28 | DENY | | 2 | +----------------------+-------------------+---------------------+----------------+------------+-------------+ -
Обновите профиль безопасности, применив к нему YAML
-конфигурацию, содержащую измененное описание имеющихся правил безопасности:-
Чтобы получить YAML-конфигурацию имеющихся в профиле правил безопасности, выполните команду, указав имя или идентификатор профиля безопасности:
yc smartwebsecurity security-profile get <имя_или_идентификатор_профиля_безопасности>Результат:
id: fev450d61ucv******** folder_id: b1gt6g8ht345******** cloud_id: b1gia87mbaom******** labels: label1: value1 label2: value2 name: my-new-profile description: my description default_action: DENY security_rules: - name: rule-condition-deny priority: "11111" dry_run: true rule_condition: action: DENY condition: authority: authorities: - exact_match: example.com - exact_match: example.net http_method: http_methods: - exact_match: GET - exact_match: POST request_uri: path: prefix_match: /search queries: - key: firstname value: pire_regex_match: .ivan. - key: lastname value: pire_regex_not_match: .petr. headers: - name: User-Agent value: pire_regex_match: .curl. - name: Referer value: pire_regex_not_match: .bot. source_ip: ip_ranges_match: ip_ranges: - 1.2.33.44 - 2.3.4.56 ip_ranges_not_match: ip_ranges: - 8.8.0.0/16 - 10::1234:1abc:1/64 geo_ip_match: locations: - ru - es geo_ip_not_match: locations: - us - fm - gb description: My first security rule. This rule it's just example to show possibilities of configuration. created_at: "2024-08-05T17:54:48.898624Z" -
Скопируйте в любой текстовый редактор и сохраните в файл текущую конфигурацию правил (содержимое блока
security_rules), внеся в нее необходимые изменения. В приведенном ниже примере было изменено имя правила, а действиеDENYбыло заменено наALLOW:security-rules.yaml
- name: rule-condition-allow priority: "11111" dry_run: true rule_condition: action: ALLOW condition: authority: authorities: - exact_match: example.com - exact_match: example.net http_method: http_methods: - exact_match: GET - exact_match: POST request_uri: path: prefix_match: /search queries: - key: firstname value: pire_regex_match: .ivan. - key: lastname value: pire_regex_not_match: .petr. headers: - name: User-Agent value: pire_regex_match: .curl. - name: Referer value: pire_regex_not_match: .bot. source_ip: ip_ranges_match: ip_ranges: - 1.2.33.44 - 2.3.4.56 ip_ranges_not_match: ip_ranges: - 8.8.0.0/16 - 10::1234:1abc:1/64 geo_ip_match: locations: - ru - es geo_ip_not_match: locations: - us - fm - gbВнимание
При изменении правил в профиле безопасности все существующие правила будут удалены. Поэтому YAML-файл с изменениями должен содержать полный набор правил, который будет действовать в профиле безопасности.
-
Чтобы внести изменения в профиль безопасности, выполните команду, указав имя или идентификатор профиля:
yc smartwebsecurity security-profile update <имя_или_идентификатор_профиля_безопасности> \ --security-rules-file <путь_к_файлу_с_правилами_безопасности>Где
--security-rules-file— путь к YAML -файлу с описанием правил безопасности.Результат:
id: fev450d61ucv******** folder_id: b1gt6g8ht345******** cloud_id: b1gia87mbaom******** labels: label1: value1 label2: value2 name: my-new-profile description: my description default_action: DENY security_rules: - name: rule-condition-allow priority: "11111" dry_run: true rule_condition: action: ALLOW condition: authority: authorities: - exact_match: example.com - exact_match: example.net http_method: http_methods: - exact_match: GET - exact_match: POST request_uri: path: prefix_match: /search queries: - key: firstname value: pire_regex_match: .ivan. - key: lastname value: pire_regex_not_match: .petr. headers: - name: User-Agent value: pire_regex_match: .curl. - name: Referer value: pire_regex_not_match: .bot. source_ip: ip_ranges_match: ip_ranges: - 1.2.33.44 - 2.3.4.56 ip_ranges_not_match: ip_ranges: - 8.8.0.0/16 - 10::1234:1abc:1/64 geo_ip_match: locations: - ru - es geo_ip_not_match: locations: - us - fm - gb description: My first security rule. This rule it's just example to show possibilities of configuration. created_at: "2024-08-05T17:54:48.898624Z"
-
Подробнее о команде yc smartwebsecurity security-profile update читайте в справочнике CLI.
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и в описании профиля безопасности
yandex_sws_security_profileизмените нужный блокsecurity_ruleс правилом безопасности :resource "yandex_sws_security_profile" "demo-profile-simple" { name = "<имя_профиля_безопасности>" default_action = "DENY" captcha_id = "<идентификатор_капчи>" advanced_rate_limiter_profile_id = "<идентификатор_ARL_профиля>" # Правило Smart Protection security_rule { name = "smart-protection" priority = 99999 smart_protection { mode = "API" } } #Базовое правило security_rule { name = "base-rule-geo" priority = 100000 rule_condition { action = "ALLOW" condition { source_ip { geo_ip_match { locations = ["ru", "kz"] } } } } } # Правило c WAF профилем security_rule { name = "waf" priority = 88888 waf { mode = "API" waf_profile_id = "<идентификатор_WAF_профиля>" } } }Более подробную информацию о параметрах ресурса
yandex_sws_security_profileв Terraform, см. в документации провайдера. -
Создайте ресурсы:
-
В терминале перейдите в папку, где вы отредактировали конфигурационный файл.
-
Проверьте корректность конфигурационного файла с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
-
Проверить изменение ресурсов можно в консоли управления
yc smartwebsecurity security-profile get <идентификатор_профиля_безопасности>
Воспользуйтесь методом REST API update для ресурса SecurityProfile или вызовом gRPC API SecurityProfileService/Update.