← Dokumentace WAF / account / rate-limiting-rulesets
Vytvoření sady pravidel rate limitingu přes API
Pro nasazení pravidel rate limitingu na úrovni účtu musíte vytvořit sadu pravidel rate limitingu s jedním nebo více pravidly. Použijte Rulesets API k vytváření a nasazování sad pravidel rate limitingu přes API.
Další informace o parametrech pravidel najdete v Parametry rate limitingu.
Každé pravidlo rate limitingu obsahuje ratelimit objekt s konfigurací rate limitingu. Viz Parametry rate limitingu pro více informací o tomto objektu a jeho parametrech.
Pokud používáte Terraform, viz Konfigurace pravidel rate limitingu pomocí Terraformu.
Postup
Pro nasazení sady pravidel rate limitingu ve vašem účtu postupujte podle těchto obecných kroků:
- Vytvořte sadu pravidel rate limitingu (tedy vlastní sadu pravidel ve fázi
http_ratelimitfáze) s jedním nebo více pravidly rate limitingu. - Nasaďte sadu pravidel do vstupní sada pravidel (entry point ruleset)
http_ratelimitfáze na úrovni účtu.
1. Vytvořte sadu pravidel rate limitingu
Následující příklad vytvoří rate limiting ruleset s jediným pravidlem rate limitingu ve fázi rules pole.
Požadovaná oprávnění API tokenu
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Account WAF WriteAccount Rulesets Write
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 rate limiting ruleset",
"rules": [
{
"description": "Rate limit API requests",
"expression": "(starts_with(http.request.uri.path, \"/my-api/\"))",
"ratelimit": {
"characteristics": [
"ip.src",
"cf.colo.id"
],
"requests_to_origin": false,
"requests_per_period": 30,
"period": 60,
"mitigation_timeout": 120
},
"action": "block",
"action_parameters": {
"response": {
"status_code": 429,
"content_type": "application/json",
"content": "{ \"error\": \"Your API requests have been rate limited. Wait a couple of minutes and try again.\" }"
}
},
"enabled": true
}
],
"phase": "http_ratelimit"
}'Dostupné charakteristiky závisí na vašem plánu Cloudflare a předplatných produktů. Podívejte se na Dostupnost pro více informací.
Uložte si ID sady pravidel z odpovědi pro další krok.
2. Nasaďte rate limiting ruleset
Chcete-li sadu pravidel rate limitingu nasadit, přidejte pravidlo s "action": "execute" do http_ratelimit vstupní sady pravidel fáze na úrovni účtu.
-
Vyvolejte Získání entry point rulesetu účtu operaci k získání definice entry point rulesetu pro fázi
http_ratelimitfázi. Budete potřebovat ID účtu 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
Account WAF WriteAccount WAF ReadAccount Rulesets ReadAccount Rulesets Write
Získání entry point rulesetu účtucurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_ratelimit/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_ratelimit", "rules": [ // ... ], "source": "firewall_managed", "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 účtu operaci k přidáníexecutepravidlo do existující sady pravidel nasazující sadu pravidel rate limitingu. 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é spouští rate limiting ruleset s ID
<RATE_LIMITING_RULESET_ID>pro všechny zóny Enterprise v účtu:
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Požadovaná oprávnění API tokenu
Account WAF WriteAccount Rulesets Write
Vytvoření pravidla v sadě pravidel účtucurl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID/rules" \ --request POST \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "description": "Execute rate limiting ruleset", "expression": "(cf.zone.plan eq \"ENT\")", "action": "execute", "action_parameters": { "id": "<RATE_LIMITING_RULESET_ID>" }, "enabled": true }' -
Pokud entry point ruleset neexistuje (tedy pokud jste obdrželi
404 Not Foundstavový kód v kroku 1), vytvořte jej pomocí Vytvoření rulesetu účtu operace. Zahrňte jediné pravidlo do polerulespole, které spouští sadu pravidel rate limitingu pro všechny příchozí požadavky zón na plánu Enterprise ve vašem účtu.
Alespoň jedno z následujících oprávnění tokenu je vyžadováno:Požadovaná oprávnění API tokenu
Account WAF WriteAccount Rulesets Write
Vytvoření rulesetu účtucurl "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": "<RATE_LIMITING_RULESET_ID>" } } ], "phase": "http_ratelimit" }'
Příklady definic pravidel rate limitingu pro API najdete v Vytvoření pravidla rate limitingu přes API.
Další kroky
Použijte jednotlivé operace v Rulesets API pro práci se sadou pravidel, kterou jste právě vytvořili a nasadili. Následující tabulka obsahuje seznam běžných úloh pro práci se sadami pravidel rate limitingu na úrovni účtu:
| Úloha | Postup |
|---|---|
| Získání seznamu sad pravidel rate limitingu | Použijte Výpis sad pravidel účtu operaci a vyhledejte rulesety s Další informace viz Výpis existujících sad pravidel. |
| Výpis všech pravidel v sadě pravidel rate limitingu | Použijte Získání rulesetu účtu operaci s ID sady pravidel rate limitingu k získání seznamu nakonfigurovaných pravidel rate limitingu a jejich ID. Další informace viz Zobrazení konkrétní sady pravidel. |
| Aktualizace pravidla rate limitingu | Použijte Aktualizace pravidla v sadě pravidel účtu operaci. Budete muset zadat ID sady pravidel rate limitingu a ID pravidla. Další informace viz Aktualizace pravidla v sadě pravidel. |
| Smazání pravidla rate limitingu | Použijte Odstranění pravidla ze sady pravidel účtu operaci. Budete muset zadat ID sady pravidel rate limitingu a ID pravidla. Další informace viz Smazání pravidla v sadě pravidel. |
Další zdroje
Pokyny k nasazení pravidla rate limitingu na úrovni zóny přes API najdete v části Vytvoření pravidla rate limitingu přes API.
Více informací o různých parametrech rate limitingu, které můžete v pravidlech rate limitingu nakonfigurovat, najdete v Parametry rate limitingu.