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

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

Используйте Rulesets API чтобы создать пользовательское правило через API на уровне зоны.

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

Если вы используете Terraform, см. Настройка пользовательских правил WAF с помощью Terraform.

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

Чтобы создать пользовательское правило для зоны, добавьте правило в http_request_firewall_custom набор правил точки входа фазы.

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

  2. Если входной набор правил уже существует (то есть если вы получили 200 OK код состояния и определение набора правил), запишите ID набора правил из ответа. Затем вызовите Создание правила набора правил зоны операцию для добавления пользовательского правила в существующий набор правил. Подробности см. в примерах ниже.

  3. Если входной набор правил не существует (то есть если вы получили 404 Not Found код состояния на шаге 1), создайте его с помощью Создание набора правил зоны операцию. Включите своё пользовательское правило в rules массив. См. Создание набора правил для примера.

Пример A

Этот пример запроса добавляет правило в http_request_firewall_custom входной набор правил фазы для зоны с ID $ZONE_ID. Входной набор правил уже существует, с ID $RULESET_ID.

Новое правило, которое будет последним в наборе правил, будет запрашивать проверку для запросов из Великобритании или Франции с помощью оценка атаки ниже, чем 20.

Создание правила набора правил зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"description": "My custom rule",
		"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and cf.waf.score lt 20",
		"action": "challenge"
	}'

Чтобы задать конкретную позицию для нового правила, включите position объект в теле запроса в соответствии с рекомендациями из Изменение порядка правила в наборе правил.

Инструкции по созданию входного набора правил и определению его правил с помощью одного вызова API см. в Добавьте правила во входные наборы правил фазы.

Пример B

Этот пример запроса добавляет правило в http_request_firewall_custom входной набор правил фазы для зоны с ID $ZONE_ID. Входной набор правил уже существует, с ID $RULESET_ID.

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

Создание правила набора правил зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"description": "My custom rule with plain text response",
		"expression": "(ip.src.country eq \"GB\" or ip.src.country eq \"FR\") and cf.waf.score lt 20",
		"action": "block",
		"action_parameters": {
				"response": {
						"status_code": 403,
						"content": "Your request was blocked.",
						"content_type": "text/plain"
				}
		}
	}'

Чтобы задать конкретную позицию для нового правила, включите position объект в теле запроса в соответствии с рекомендациями из Изменение порядка правила в наборе правил.

Инструкции по созданию входного набора правил и определению его правил с помощью одного вызова API см. в Добавьте правила во входные наборы правил фазы.


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

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

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

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

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

Обновить правило

Используйте Обновление правила в наборе правил зоны операцию.

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

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

Удаление правила

Используйте Удаление правила набора правил зоны операцию.

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

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

Эти операции описаны в документации Ruleset Engine. Ruleset Engine используется в разных продуктах Cloudflare, включая пользовательские правила.

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

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

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

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