Документация Запланировать пилот

Пользовательские наборы правил (на уровне зоны)

Пользовательские наборы правил являются коллекциями пользовательских правил, которые можно развернуть на уровне зоны или уровень аккаунта.

Подобно пользовательские правила, пользовательские наборы правил позволяют контролировать входящий трафик путем фильтрации запросов.

Например, можно применить пользовательский набор правил ко всем входящим запросам вашей зоны или к их подмножеству.

На уровне зоны все клиенты могут создавать и развёртывать пользовательские наборы правил. Пользовательские наборы правил на уровне аккаунта требуют тарифного плана Enterprise. Подробнее см. Доступность.

Развёртывание пользовательского набора правил через API

Создание пользовательского набора правил не активирует его. Пользовательские наборы правил выполняются только тогда, когда правило с execute действие ссылается на них из входной набор правил фазы, набор правил верхнего уровня, который Cloudflare оценивает для каждого запроса в заданной фаза.

Чтобы развернуть пользовательский набор правил для зоны:

  1. Создайте пользовательский набор правил на уровне зоны с одним или несколькими правилами. Либо укажите существующий пользовательский набор правил, который нужно развернуть, с помощью Список наборов правил зоны операция API.
  2. Добавьте правило с execute действие к http_request_firewall_custom входной набор правил фазы, ссылающийся на ID пользовательского набора правил. Это правило указывает Cloudflare выполнить пользовательский набор правил при совпадении выражения правила.

1. Создайте пользовательский набор правил

Следующий запрос создаёт новый пользовательский набор правил на уровне зоны с двумя правилами. Ответ будет содержать ID нового пользовательского набора правил в id поле.

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Создание набора правил зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Custom Ruleset 1",
		"description": "My First Custom Ruleset (zone)",
		"kind": "custom",
		"phase": "http_request_firewall_custom",
		"rules": [
				{
						"expression": "(ip.src.country in {\"GB\" \"FR\"} and cf.bot_management.score < 20 and not cf.bot_management.verified_bot)",
						"action": "challenge",
						"description": "challenge GB and FR based on bot score"
				},
				{
						"expression": "not http.request.uri.path wildcard \"/api/*\"",
						"action": "challenge",
						"description": "challenge not /api"
				}
		]
	}'
{
	"result": {
		"id": "f82ccda3d21f4a02825d3fe45b5e1c10",
		"name": "Custom Ruleset 1",
		"description": "My First Custom Ruleset (zone)",
		"kind": "custom",
		"version": "1",
		"rules": [
			{
				"expression": "(ip.src.country in {\"GB\" \"FR\"} and cf.bot_management.score < 20 and not cf.bot_management.verified_bot)",
				"action": "challenge",
				"description": "challenge GB and FR based on bot score"
			},
			{
				"expression": "not http.request.uri.path wildcard \"/api/*\"",
				"action": "challenge",
				"description": "challenge not /api"
			}
		],
		"last_updated": "2025-11-09T10:27:30.636197Z",
		"phase": "http_request_firewall_custom"
	},
	"success": true,
	"errors": [],
	"messages": []
}

2. Разверните пользовательский набор правил

Разверните пользовательский набор правил, добавив правило с "action": "execute" к http_request_firewall_custom набор правил точки входа фазы.

  1. Вызовите Получить входной набор правил зоны операцию для получения определения входного набора правил для http_request_firewall_custom фаза. Вам понадобится ID зоны для этой задачи.

    Необходимые разрешения API-токена

    Хотя бы одно из следующих права доступа токена требуется:
    • Zone WAF Write
    • Zone WAF Read
    Получить входной набор правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_custom/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"description": "Zone-level phase entry point",
    		"id": "<ENTRY_POINT_RULESET_ID>",
    		"kind": "zone",
    		"last_updated": "2025-11-16T15:40:08.202335Z",
    		"name": "zone",
    		"phase": "http_request_firewall_custom",
    		"rules": [
    			// ...
    		],
    		"version": "10"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Если входной набор правил уже существует (то есть если вы получили 200 OK код состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила набора правил зоны операцию для добавления execute правило в существующий набор правил, разворачивающий пользовательский набор правил, созданный вами на шаге 1 (замените f82ccda3d21f4a02825d3fe45b5e1c10 с ID вашего пользовательского набора правил).
    Поскольку выражение имеет вид true, пользовательский набор правил будет выполняться для всех входящих запросов. По умолчанию правило добавляется в конец списка правил, уже имеющихся в наборе правил.

    Необходимые разрешения API-токена

    Хотя бы одно из следующих права доступа токена требуется:
    • Zone WAF Write
    Создание правила набора правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$ENTRY_POINT_RULESET_ID/rules" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"expression": "true",
    		"action_parameters": {
    				"id": "f82ccda3d21f4a02825d3fe45b5e1c10"
    		},
    		"description": "Execute custom ruleset"
    	}'
    {
    	"result": {
    		"id": "<ENTRY_POINT_RULESET_ID>",
    		"name": "zone",
    		"description": "Zone-level phase entry point",
    		"kind": "zone",
    		"version": "11",
    		"rules": [
    			// ... any existing rules
    			{
    				"id": "<RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "f82ccda3d21f4a02825d3fe45b5e1c10"
    				},
    				"expression": "true",
    				"description": "Execute custom ruleset",
    				"last_updated": "2025-11-18T18:08:14.003361Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    		],
    		"last_updated": "2025-11-18T18:08:14.003361Z",
    		"phase": "http_request_firewall_custom"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  3. Если входной набор правил не существует (то есть если вы получили 404 Not Found код состояния на шаге 1), создайте его с помощью Создание набора правил зоны операцию. Включите одно правило в rules массив, который выполняет пользовательский набор правил для всех входящих запросов в зоне. Замените f82ccda3d21f4a02825d3fe45b5e1c10 с ID вашего пользовательского набора правил.

    Необходимые разрешения API-токена

    Хотя бы одно из следующих права доступа токена требуется:
    • Zone WAF Write
    Создание набора правил зоны
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "zone",
    		"description": "Zone-level phase entry point",
    		"kind": "zone",
    		"phase": "http_request_firewall_custom",
    		"rules": [
    				{
    						"action": "execute",
    						"action_parameters": {
    								"id": "f82ccda3d21f4a02825d3fe45b5e1c10"
    						},
    						"expression": "true",
    						"description": "Execute custom ruleset"
    				}
    		]
    	}'

Следующие шаги

Используйте различные операции в Rulesets API для работы с созданным и развёрнутым вами пользовательским набором правил. В следующей таблице приведён список распространённых задач при работе с пользовательскими наборами правил на уровне зоны:

Задача Процедура
Получить список пользовательских наборов правил

Используйте Список наборов правил зоны операцию и найдите наборы правил с "kind": "custom" и "phase": "http_request_firewall_custom". Ответ будет включать идентификаторы наборов правил.

Подробнее см. в Список существующих наборов правил.

Список всех правил в пользовательском наборе правил

Используйте Получить набор правил зоны операцию с ID пользовательского набора правил, чтобы получить список настроенных правил и их ID.

Подробнее см. в Просмотреть конкретный набор правил.

Обновление пользовательского правила

Используйте Обновление правила в наборе правил зоны операцию. Вам потребуется указать ID пользовательского набора правил и ID правила.

Подробнее см. в Обновление правила в наборе правил.

Удаление пользовательского правила

Используйте Удаление правила набора правил зоны операцию. Вам потребуется указать ID пользовательского набора правил и ID правила.

Подробнее см. в Удалите правило в наборе правил.

Дополнительные ресурсы

Дополнительную информацию о работе с пользовательскими наборами правил через API Cloudflare см. в Работа с пользовательскими наборами правил в документации по Ruleset Engine.

Запросите бесплатный пилот

Запланировать пилот