INTEGRITY Dokumentace

Vytvoření vlastní sady pravidel pomocí API

Nasazení vlastních pravidel na úrovni účtu:

  1. Vytvořte vlastní sadu pravidel s jedním nebo více pravidly. Případně identifikujte existující vlastní sadu pravidel, kterou chcete nasadit, pomocí Výpis sad pravidel účtu operace API.
  2. Nasaďte vlastní sadu pravidel, aby se vykonávala. K nasazení vlastní sady pravidel vytvořte pravidlo s execute akci.

Použijte Rulesets API pro práci s vlastními sadami pravidel přes API.

Pokud používáte Terraform, viz Konfigurace vlastních pravidel WAF pomocí Terraformu.

Postup

Vlastní sadu pravidel nasadíte podle těchto obecných kroků:

  1. Vytvořte vlastní sadu pravidel ve fázi http_request_firewall_custom fázi s jedním nebo více pravidly.
  2. Nasaďte sadu pravidel do vstupní sada pravidel (entry point ruleset) http_request_firewall_custom fáze.

1. Vytvořte vlastní sadu pravidel

Následující příklad vytvoří vlastní sadu pravidel na úrovni účtu s jediným pravidlem v rules pole.

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

Alespoň jedno z následujících oprávnění tokenu je vyžadováno:
Vytvoření rulesetu účtu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"description": "",
		"kind": "custom",
		"name": "My custom ruleset",
		"rules": [
				{
						"description": "Challenge web traffic (not /api)",
						"expression": "not starts_with(http.request.uri.path, \"/api/\")",
						"action": "managed_challenge"
				}
		],
		"phase": "http_request_firewall_custom"
	}'

Uložte si ID sady pravidel z odpovědi pro další krok.

2. Nasaďte vlastní sadu pravidel

Vlastní sadu pravidel nasadíte přidáním pravidla s "action": "execute" do http_request_firewall_custom vstupní sada pravidel fáze.

  1. Vyvolejte Získání entry point rulesetu účtu operaci k získání definice entry point rulesetu pro fázi http_request_firewall_custom fázi. Budete potřebovat ID účtu pro tuto úlohu.

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

    Alespoň jedno z následujících oprávnění tokenu je vyžadováno:
    • Account WAF Write
    • Account WAF Read
    • Account Rulesets Read
    • Account Rulesets Write
    Získání entry point rulesetu účtu
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_custom/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"description": "Account-level phase entry point",
    		"id": "<RULESET_ID>",
    		"kind": "root",
    		"last_updated": "2024-03-16T15:40:08.202335Z",
    		"name": "root",
    		"phase": "http_request_firewall_custom",
    		"rules": [
    			// ...
    		],
    		"version": "9"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. Pokud entry point ruleset již existuje (tedy pokud jste obdrželi 200 OK stavový kód a definici sady pravidel), poznamenejte si ID sady pravidel z odpovědi. Poté zavolejte Vytvoření pravidla v sadě pravidel účtu operaci k přidání execute pravidlo do existující sady pravidel, nasazující vlastní sadu pravidel. Ve výchozím nastavení bude pravidlo přidáno na konec seznamu pravidel, která již v sadě jsou.

    Následující požadavek vytvoří pravidlo, které vykonává vlastní sadu pravidel s ID <CUSTOM_RULESET_ID> pro všechny zóny Enterprise v účtu:

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

    Alespoň jedno z následujících oprávnění tokenu je vyžadováno:
    • Account WAF Write
    • Account Rulesets Write
    Vytvoření pravidla v sadě pravidel účtu
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID/rules" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"description": "Execute custom ruleset",
    		"expression": "(cf.zone.plan eq \"ENT\")",
    		"action": "execute",
    		"action_parameters": {
    				"id": "<CUSTOM_RULESET_ID>"
    		},
    		"enabled": true
    	}'
  3. Pokud entry point ruleset neexistuje (tedy pokud jste obdrželi 404 Not Found stavový kód v kroku 1), vytvořte jej pomocí Vytvoření rulesetu účtu operace. Zahrňte jediné pravidlo do pole rules pole, které spouští vlastní sadu pravidel pro všechny příchozí požadavky Enterprise zón ve vašem účtu.

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

    Alespoň jedno z následujících oprávnění tokenu je vyžadováno:
    • Account WAF Write
    • Account Rulesets Write
    Vytvoření rulesetu účtu
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"description": "",
    		"kind": "root",
    		"name": "Account-level phase entry point",
    		"rules": [
    				{
    						"action": "execute",
    						"expression": "(cf.zone.plan eq \"ENT\")",
    						"action_parameters": {
    								"id": "<CUSTOM_RULESET_ID>"
    						}
    				}
    		],
    		"phase": "http_request_firewall_custom"
    	}'

Další kroky

Použijte jednotlivé operace v Rulesets API pro práci s vlastní sadou pravidel, kterou jste vytvořili a nasadili. Následující tabulka obsahuje seznam běžných úloh pro práci s vlastními sadami pravidel na úrovni účtu:

Úloha Postup
Získání seznamu vlastních sad pravidel

Použijte Výpis sad pravidel účtu operaci a vyhledejte rulesety s "kind": "custom" a "phase": "http_request_firewall_custom". Odpověď bude obsahovat ID sad pravidel.

Další informace viz Výpis existujících sad pravidel.

Výpis všech pravidel ve vlastní sadě pravidel

Použijte Získání rulesetu účtu operaci s ID vlastní sady pravidel, abyste získali seznam nakonfigurovaných pravidel a jejich ID.

Další informace viz Zobrazení konkrétní sady pravidel.

Aktualizace vlastního pravidla

Použijte Aktualizace pravidla v sadě pravidel účtu operaci. Budete muset zadat ID vlastní sady pravidel a ID pravidla.

Další informace viz Aktualizace pravidla v sadě pravidel.

Smazání vlastního pravidla

Použijte Odstranění pravidla ze sady pravidel účtu operaci. Budete muset zadat ID vlastní sady pravidel a ID pravidla.

Další informace viz Smazání pravidla v sadě pravidel.

Další zdroje

Pokyny k vytvoření vlastní sady pravidel na úrovni zóny přes API najdete v Vlastní sady pravidel (úroveň zóny).

Další informace o práci s vlastními sadami pravidel viz Práce s vlastními sadami pravidel v dokumentaci Ruleset Engine.