INTEGRITY Документация

Создание пользовательского правила через 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 (массив). См. Create ruleset для примера.

Пример A

Этот пример запроса добавляет правило в http_request_firewall_custom (набор правил точки входа этой фазы) для зоны с ID $ZONE_ID. Набор правил точки входа уже существует и имеет идентификатор $RULESET_ID.

Новое правило, которое станет последним в наборе, будет выдавать челлендж запросам из Великобритании или Франции с attack score ниже 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. Набор правил точки входа уже существует и имеет идентификатор $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 (имя фазы), чтобы получить список настроенных пользовательских правил и их идентификаторы.

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

Обновление правила

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

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

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

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

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

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

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

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

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

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