← Документация 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), создайте его с помощью Создайте account ruleset операцию. Включите одно правило вrulesмассив, который выполняет Cloudflare Managed Ruleset (с IDefb7b8c949ac4650a09736fc376e9aee) для всех входящих запросов, у которых имя зоны соответствует одному изexample.comилиanotherexample.com.
Хотя бы одно из следующих права доступа токена требуется:Необходимые разрешения API-токена
Account WAF WriteAccount Rulesets Write
Создайте account rulesetcurl "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 или части их правил, создание исключения (также называется правилом пропуска).
Исключения имеют приоритет над переопределениями.
Дополнительные ресурсы
Инструкции по развёртыванию управляемого набора правил на уровне зоны через API см. в Развёртывание управляемого набора правил WAF через API (зона).
Дополнительную информацию о работе с управляемыми наборами правил через API см. в Работа с управляемыми наборами правил в документации по Ruleset Engine.