← Cloudflare Ruleset Engine / ruleset-engine / rulesets-api
Создание набора правил
Создает набор правил заданного типа в указанной фазе. Позволяет создавать наборы правил, которые являются точками входа фаз.
Используйте одну из следующих конечных точек API:
- Создайте account ruleset
POST /accounts/{account_id}/rulesets - Создание набора правил зоны
POST /zones/{zone_id}/rulesets
Параметры
A POST запрос на создание набора правил поддерживает в теле запроса следующие параметры:
nameString- Понятное человеку имя набора правил.
- Имя нельзя изменить. Оно остаётся неизменным на протяжении всего существования набора правил.
descriptionStringНеобязательно- Необязательное описание набора правил.
- Вы можете изменить описание набора правил в любой момент его существования.
kindString- Тип набора правил, который представляет JSON-объект.
- Допустимые значения:
custom: Создает пользовательский набор правилroot: Создает фазу ruleset точки входа на уровне аккаунтаzone: Создает набор правил точки входа фазы на уровне зоны
phaseString- Имя фаза где будет создан набор правил.
- Проверьте список фаз либо документацию по соответствующему продукту Cloudflare, чтобы узнать больше о фазах, в которых для этого продукта можно создавать наборы правил.
rulesArray<Rule>Необязательно- Список правила для включения в набор правил.
Дополнительные сведения об этих параметрах см. в Объекты JSON.
Пример: создание пользовательского набора правил
Следующие POST запрос создаёт пользовательский набор правил в http_request_firewall_custom фаза на уровне аккаунта, содержащая одно правило.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Example custom ruleset",
"kind": "custom",
"description": "Example ruleset description",
"rules": [
{
"action": "log",
"expression": "cf.zone.name eq \"example.com\""
}
],
"phase": "http_request_firewall_custom"
}'{
"result": {
"id": "<RULESET_ID>",
"name": "Example custom ruleset",
"description": "Example ruleset description",
"kind": "custom",
"version": "1",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "log",
"expression": "cf.zone.name eq \"example.com\"",
"last_updated": "2025-03-17T15:42:37.917815Z"
}
],
"last_updated": "2025-03-17T15:42:37.917815Z",
"phase": "http_request_firewall_custom"
},
"success": true,
"errors": [],
"messages": []
}Пример: создание набора правил точки входа фазы на уровне зоны
Следующие POST запрос создаёт входной набор правил фазы на уровне зоны для http_request_firewall_managed фаза с одним правилом, которое выполняет управляемый набор правил.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Zone-level phase entry point",
"kind": "zone",
"description": "This ruleset executes a managed ruleset.",
"rules": [
{
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>"
}
}
],
"phase": "http_request_firewall_managed"
}'{
"result": {
"id": "<RULESET_ID>",
"name": "Zone-level phase entry point",
"description": "This ruleset executes a managed ruleset.",
"kind": "zone",
"version": "1",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>"
},
"last_updated": "2025-03-17T15:42:37.917815Z"
}
],
"last_updated": "2025-03-17T15:42:37.917815Z",
"phase": "http_request_firewall_managed"
},
"success": true,
"errors": [],
"messages": []
}Пример: создание набора правил точки входа фазы на уровне аккаунта
Следующие POST запрос создаёт входной набор правил фазы на уровне аккаунта для http_ratelimit фаза с одним правилом, которое выполняет набор правил ограничения скорости для всех зон на плане Enterprise в аккаунте.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Mass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "Account-level phase entry point",
"kind": "root",
"description": "This ruleset executes a rate limiting ruleset.",
"rules": [
{
"action": "execute",
"expression": "(cf.zone.plan eq \"ENT\")",
"action_parameters": {
"id": "<RATE_LIMITING_RULESET_ID>"
}
}
],
"phase": "http_ratelimit"
}'{
"result": {
"id": "<RULESET_ID>",
"name": "Account-level phase entry point",
"description": "This ruleset executes a rate limiting ruleset.",
"kind": "root",
"version": "1",
"rules": [
{
"id": "<RULE_ID>",
"version": "1",
"action": "execute",
"expression": "(cf.zone.plan eq \"ENT\")",
"action_parameters": {
"id": "<RATE_LIMITING_RULESET_ID>"
},
"last_updated": "2024-09-17T15:42:37.917815Z"
}
],
"last_updated": "2024-09-17T15:42:37.917815Z",
"phase": "http_ratelimit"
},
"success": true,
"errors": [],
"messages": []
}