← Dokumentace WAF / custom-rules
Vlastní sady pravidel (úroveň zóny)
Vlastní sady pravidel jsou kolekce vlastních pravidel, které můžete nasadit na úrovni zóny nebo úroveň účtu.
Podobně jako vlastní pravidla, vlastní sady pravidel umožňují řídit příchozí provoz filtrováním požadavků.
Vlastní sadu pravidel můžete aplikovat například na všechny příchozí požadavky své zóny, nebo jen na jejich podmnožinu.
Na úrovni zóny mohou vlastní sady pravidel vytvářet a nasazovat všichni zákazníci. Vlastní sady pravidel na úrovni účtu vyžadují plán Enterprise. Podrobnosti najdete v Dostupnost.
Nasazení vlastní sady pravidel přes API
Vytvoření vlastní sady pravidel ji neaktivuje. Vlastní sady pravidel se spouštějí, pouze když pravidlo s akcí execute akce na ně odkazuje z entry point ruleset fáze — sada pravidel nejvyšší úrovně, kterou Cloudflare vyhodnocuje pro každý požadavek v dané fáze.
Nasazení vlastní sady pravidel pro zónu:
- Vytvořte vlastní sadu pravidel na úrovni zóny s jedním nebo více pravidly. Případně identifikujte existující vlastní sadu pravidel, kterou chcete nasadit, pomocí Výpis sad pravidel zóny operace API.
- Přidejte pravidlo s
executenahttp_request_firewall_custom(entry point ruleset fáze) s odkazem na ID vlastní sady pravidel. Toto pravidlo říká Cloudflare, aby vlastní sadu pravidel spustil, když výraz pravidla odpovídá.
1. Vytvořte vlastní sadu pravidel
Následující požadavek vytvoří novou vlastní sadu pravidel na úrovni zóny se dvěma pravidly. Odpověď bude obsahovat ID nové vlastní sady pravidel v id pole.
Požadovaná oprávnění API tokenu
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Zone WAF Write
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. Nasaďte vlastní sadu pravidel
Nasaďte vlastní sadu pravidel přidáním pravidla s "action": "execute" do http_request_firewall_custom vstupní sada pravidel fáze.
-
Vyvolejte Získání vstupní sady pravidel zóny operaci k získání definice entry point rulesetu pro fázi
http_request_firewall_customfázi. Budete potřebovat ID zóny pro tuto úlohu.
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Požadovaná oprávnění API tokenu
Zone WAF WriteZone WAF Read
Získání vstupní sady pravidel zónycurl "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": [] } -
Pokud entry point ruleset již existuje (tedy pokud jste obdrželi
200 OKstavový kód a definici sady pravidel), poznamenejte si ID sady pravidel z odpovědi. Poté zavolejte Vytvoření pravidla v sadě pravidel zóny operaci k přidáníexecutepravidlo do existující sady pravidel, nasazující vlastní sadu pravidel vytvořenou v kroku 1 (nahraďtef82ccda3d21f4a02825d3fe45b5e1c10ID vaší vlastní sady pravidel).
Protože výraz jetrue, vlastní sada pravidel se spustí pro všechny příchozí požadavky. Ve výchozím nastavení bude pravidlo přidáno na konec seznamu pravidel, která již v sadě jsou.
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Požadovaná oprávnění API tokenu
Zone WAF Write
Vytvoření pravidla v sadě pravidel zónycurl "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": [] } -
Pokud entry point ruleset neexistuje (tedy pokud jste obdrželi
404 Not Foundstavový kód v kroku 1), vytvořte jej pomocí Vytvoření sady pravidel zóny operace. Zahrňte jediné pravidlo do polerulespole, které spouští vlastní sadu pravidel pro všechny příchozí požadavky v zóně. Nahraďtef82ccda3d21f4a02825d3fe45b5e1c10ID vaší vlastní sady pravidel.
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Požadovaná oprávnění API tokenu
Zone WAF Write
Vytvoření sady pravidel zónycurl "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" } ] }'
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 zóny:
| Úloha | Postup |
|---|---|
| Získání seznamu vlastních sad pravidel | Použijte Výpis sad pravidel zóny operaci a vyhledejte rulesety s Další informace viz Výpis existujících sad pravidel. |
| Výpis všech pravidel ve vlastní sadě pravidel | Použijte Získání sady pravidel zóny 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 rulesetu zóny 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 zóny operaci. Budete muset zadat ID vlastní sady pravidel a ID pravidla. Další informace viz Smazání pravidla v sadě pravidel. |
Další zdroje
Další informace o práci s vlastními sadami pravidel přes Cloudflare API najdete v Práce s vlastními sadami pravidel v dokumentaci Ruleset Engine.