INTEGRITY Dokumentace

Nasazení vlastní sady pravidel

Chcete-li nasadit vlastní sadu pravidel, přidejte pravidlo s execute akci do seznamu pravidel fáze vstupní sada pravidel na úrovni účtu nebo zóny. Výraz nového pravidla určí, kdy se spustí vlastní sada pravidel.

Vlastní sady pravidel můžete nasadit pouze ve vstupní sadě pravidel se stejným rozsahem. Vlastní sadu pravidel definovanou na úrovni účtu lze například nasadit pouze na úrovni účtu.

Pokud používáte Terraform, přečtěte si Konfigurace vlastních pravidel WAF pomocí Terraformu najdete příklady vytváření a nasazování vlastních sad pravidel.

Pokud používáte Cloudflare dashboard, přečtěte si Práce s vlastními sadami pravidel v dashboardu.

Než začnete

  1. Získání názvu fáze kde chcete nasadit vlastní sadu pravidel.
  2. Vytvořte vlastní sadu pravidel a uložit si ID nové vlastní sady pravidel.
  3. Načtěte pravidla, která už jsou v sadě pravidel vstupního bodu fáze. Musíte zahrnout do PUT požadavku uveďte všechna existující pravidla, která chcete zachovat.

Příklad A - Nasazení na úrovni účtu

Následující PUT přidá pravidlo, které spustí vlastní sadu pravidel, pokud název zóny odpovídá example.com.

V PUT požadavku musíte uvést ID všech existujících pravidel, která chcete zachovat. Odpověď bude obsahovat všechna pravidla ve vstupní sadě pravidel fáze po provedení aktualizace.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Aktualizace rulesetu vstupního bodu účtu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_custom/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"description": "Execute custom ruleset",
						"expression": "(cf.zone.name == \"example.com\") and cf.zone.plan eq \"ENT\"",
						"action_parameters": {
								"id": "<CUSTOM_RULESET_ID>"
						}
				},
				{
						"id": "<EXISTING_PHASE_RULE_ID_1>"
				},
				{
						"id": "<EXISTING_PHASE_RULE_ID_2>"
				}
		]
	}'
{
	"result": {
		"id": "<ACCOUNT_PHASE_RULESET_ID>",
		"name": "http_request_firewall_custom phase entry point ruleset for my account",
		"description": "Execute several rulesets",
		"kind": "root",
		"version": "3",
		"rules": [
			{
				"id": "<PHASE_RULE_ID>",
				"version": "1",
				"action": "execute",
				"description": "Execute custom ruleset",
				"action_parameters": {
					"id": "<CUSTOM_RULESET_ID>",
					"version": "latest"
				},
				"expression": "(cf.zone.name == \"example.com\") and cf.zone.plan eq \"ENT\"",
				"last_updated": "2021-03-18T18:35:14.135697Z",
				"ref": "<PHASE_RULE_REF>",
				"enabled": true
			},
			{
				"id": "<EXISTING_PHASE_RULE_ID_1>",
				"version": "1",
				"action": "execute",
				"action_parameters": {
					"id": "<EXECUTED_RULESET_ID_1>",
					"version": "latest"
				},
				"expression": "(cf.zone.name eq \"example.com\") and cf.zone.plan eq \"ENT\"",
				"last_updated": "2021-03-16T15:51:49.180378Z",
				"ref": "<EXISTING_PHASE_RULE_REF_1>",
				"enabled": true
			},
			{
				"id": "<EXISTING_PHASE_RULE_ID_2>",
				"version": "1",
				"action": "execute",
				"action_parameters": {
					"id": "<EXECUTED_RULESET_ID_2>",
					"version": "latest"
				},
				"expression": "(cf.zone.name eq \"example.com\") and cf.zone.plan eq \"ENT\"",
				"last_updated": "2021-03-16T15:50:29.861157Z",
				"ref": "<EXISTING_PHASE_RULE_REF_2>",
				"enabled": true
			}
		],
		"last_updated": "2021-03-18T18:35:14.135697Z",
		"phase": "http_request_firewall_custom"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Příklad B - Nasazení na úrovni zóny

Následující PUT přidá do vstupní sady pravidel na úrovni zóny pravidlo, které spouští vlastní sadu pravidel s ID "<CUSTOM_RULESET_ID>" pro požadavky směřující na /login cesta URI.

Musíte zahrnout do PUT požadavku uveďte ID všech existujících pravidel, která chcete zachovat. Odpověď bude obsahovat všechna pravidla ve vstupní sadě pravidel fáze po provedení aktualizace.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
Aktualizace vstupní sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_custom/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"action": "execute",
						"description": "Execute custom ruleset (zone)",
						"expression": "(http.request.uri.path eq \"/login\")",
						"action_parameters": {
								"id": "<CUSTOM_RULESET_ID>"
						}
				},
				{
						"id": "<EXISTING_PHASE_RULE_ID_1>"
				}
		]
	}'
{
	"result": {
		"id": "<ZONE_PHASE_RULESET_ID>",
		"name": "http_request_firewall_custom phase entry point ruleset for my zone",
		"description": "",
		"kind": "zone",
		"version": "3",
		"rules": [
			{
				"id": "<PHASE_RULE_ID>",
				"version": "1",
				"action": "execute",
				"description": "Execute custom ruleset (zone)",
				"action_parameters": {
					"id": "<CUSTOM_RULESET_ID>",
					"version": "latest"
				},
				"expression": "(http.request.uri.path eq \"/login\")",
				"last_updated": "2025-08-18T18:35:14.135697Z",
				"ref": "<PHASE_RULE_REF>",
				"enabled": true
			},
			{
				"id": "<EXISTING_PHASE_RULE_ID_1>",
				"version": "1",
				"action": "managed_challenge",
				"expression": "(cf.waf.score lt 20 and http.request.uri.path wildcard \"/admin/*\")",
				"last_updated": "2025-08-16T15:51:49.180378Z",
				"ref": "<EXISTING_PHASE_RULE_REF_1>",
				"enabled": true
			}
		],
		"last_updated": "2025-08-18T18:35:14.135697Z",
		"phase": "http_request_firewall_custom"
	},
	"success": true,
	"errors": [],
	"messages": []
}