← Документация WAF / account / managed-rulesets
Развёртывание управляемого набора правил WAF через API (аккаунт)
Используйте Rulesets API, чтобы развернуть управляемый набор правил WAF в http_request_firewall_managed на уровне аккаунта.
WAF Managed Rules (страница) содержит ID различных управляемых наборов правил WAF. Эта информация понадобится при развёртывании наборов через API.
Если вы используете Terraform, см. Конфигурация WAF Managed Rules с помощью Terraform.
Пример
Следующий пример развёртывает Cloudflare Managed Ruleset в http_request_firewall_managed указанного аккаунта ($ACCOUNT_ID) создав правило, которое выполняет управляемый набор правил. Правила из управляемого набора выполняются, когда имя зоны совпадает с одним из example.com или anotherexample.com.
-
Вызовите Получение набора правил точки входа аккаунта (операция), чтобы получить определение набора правил точки входа для фазы
http_request_firewall_managed(фаза). Вам понадобится ID аккаунта для этой задачи.
Хотя бы одно из следующих разрешения токена обязательно:Необходимые разрешения API-токена
Account WAF WriteAccount WAF ReadAccount Rulesets ReadAccount Rulesets Write
Получение набора правил точки входа аккаунтаcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "description": "Account-level phase entry point", "id": "<RULESET_ID>", "kind": "root", "last_updated": "2024-03-16T15:40:08.202335Z", "name": "root", "phase": "http_request_firewall_managed", "rules": [ // ... ], "source": "firewall_managed", "version": "10" }, "success": true, "errors": [], "messages": [] } -
Если набор правил точки входа уже существует (то есть если вы получили
200 OKкод состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила в наборе правил учётной записи операцию, чтобы добавитьexecuteв существующий набор правил, разворачивающий Cloudflare Managed Ruleset (с IDefb7b8c949ac4650a09736fc376e9aee). По умолчанию правило будет добавлено в конец списка правил, уже имеющихся в наборе.
Хотя бы одно из следующих разрешения токена обязательно:Необходимые разрешения API-токена
Account WAF WriteAccount Rulesets Write
Создание правила в наборе правил учётной записиcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"", "description": "Execute the Cloudflare Managed Ruleset" }'{ "result": { "id": "<RULESET_ID>", "name": "Account-level phase entry point", "description": "", "kind": "root", "version": "11", "rules": [ // ... any existing rules { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", "version": "latest" }, "expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"", "description": "Execute the Cloudflare Managed Ruleset", "last_updated": "2024-03-18T18:30:08.122758Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2024-03-18T18:30:08.122758Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": [] } -
Если набор правил точки входа не существует (то есть если вы получили
404 Not Foundкод состояния на шаге 1), создайте его с помощью Создание набора правил аккаунта. Включите одно правило в массивrules, выполняющее Cloudflare Managed Ruleset (с IDefb7b8c949ac4650a09736fc376e9aee) для всех входящих запросов, у которых имя зоны совпадает с одним изexample.comилиanotherexample.com.
Хотя бы одно из следующих разрешения токена обязательно:Необходимые разрешения API-токена
Account WAF WriteAccount Rulesets Write
Создание набора правил аккаунтаcurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "name": "My ruleset", "description": "Entry point ruleset for WAF managed rulesets", "kind": "root", "phase": "http_request_firewall_managed", "rules": [ { "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee" }, "expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"", "description": "Execute the Cloudflare Managed Ruleset" } ] }'
Дальнейшие шаги
Чтобы настроить поведение правил, входящих в управляемый набор, создайте переопределение.
Чтобы пропустить выполнение управляемых наборов правил WAF или отдельных их правил, создать исключение (также называется правилом пропуска — skip rule).
Исключения имеют приоритет над переопределениями.
Дополнительные ресурсы
Инструкции по развёртыванию управляемого набора правил на уровне зоны через API см. в Развёртывание управляемого набора правил WAF через API (зона).
Подробнее о работе с управляемыми наборами правил через API см. Работа с управляемыми наборами правил в документации по Ruleset Engine.