← Dokumentace WAF / account / rate-limiting-rulesets
Vytvoření sady pravidel pro omezení frekvence požadavků přes API
Chcete-li nasadit pravidla omezení frekvence požadavků na úrovni účtu, musíte vytvořit sadu pravidel pro omezení frekvence požadavků s jedním nebo více pravidly. Použijte Rulesets API k vytváření a nasazování sad pravidel pro omezení frekvence požadavků prostřednictvím API.
Další informace o parametrech pravidla najdete v Parametry omezení frekvence požadavků.
Každé pravidlo omezení frekvence obsahuje ratelimit objekt s konfigurací rate limiting. Více informací najdete v Parametry omezení frekvence požadavků s dalšími informacemi o tomto objektu a jeho parametrech.
Pokud používáte Terraform, přečtěte si Konfigurace pravidel omezení frekvence požadavků pomocí Terraformu.
Postup
Chcete-li nasadit sadu pravidel pro omezení frekvence požadavků ve svém účtu, postupujte podle těchto obecných kroků:
- Vytvoření sady pravidel pro omezení frekvence požadavků (tedy vlastní sady pravidel ve fázi
http_ratelimitfáze) s jedním nebo více pravidly rate limiting. - Nasaďte sadu pravidel do vstupní sada pravidel
http_ratelimitfáze na úrovni účtu.
1. Vytvořte sadu pravidel pro omezení frekvence požadavků
Následující příklad vytvoří sadu pravidel pro omezení frekvence požadavků s jediným pravidlem v rules pole.
Požadovaná oprávnění API tokenu
Alespoň jeden z následujících oprávnění tokenu je povinné: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ředplacených produktech. Viz Dostupnost s dalšími informacemi.
Uložte si ID sady pravidel z odpovědi pro další krok.
2. Nasaďte sadu pravidel pro omezení frekvence požadavků
Chcete-li nasadit sadu pravidel pro omezení frekvence požadavků, přidejte pravidlo s "action": "execute" do http_ratelimit fáze vstupní sady pravidel na úrovni účtu.
-
Vyvolejte Získání vstupní sady pravidel účtu operaci k získání definice vstupní sady pravidel pro
http_ratelimitfáze. Budete potřebovat ID účtu pro tento úkol.
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Account WAF WriteAccount WAF ReadAccount Rulesets ReadAccount Rulesets Write
Získání vstupní sady pravidel úč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 vstupní sada pravidel již existuje (to znamená, 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 sady pravidel účtu operaci pro přidáníexecutepravidlo do stávající sady pravidel nasazující sadu pravidel rate limiting. Ve výchozím nastavení bude pravidlo přidáno na konec seznamu pravidel již obsažených v sadě pravidel.Následující požadavek vytvoří pravidlo, které spustí sadu pravidel pro omezení frekvence požadavků s ID
<RATE_LIMITING_RULESET_ID>pro všechny zóny s plánem Enterprise v účtu:
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Account WAF WriteAccount Rulesets Write
Vytvoření pravidla sady 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 vstupní sada pravidel neexistuje (to znamená, pokud jste obdrželi
404 Not Foundstavový kód v kroku 1), vytvořte ji pomocí Vytvořte account ruleset operaci. Zahrňte jedno pravidlo dorulespole, které spouští sadu pravidel pro omezení frekvence požadavků pro všechny příchozí požadavky zón Enterprise ve vašem účtu.
Alespoň jeden z následujících oprávnění tokenu je povinné:Požadovaná oprávnění API tokenu
Account WAF WriteAccount Rulesets Write
Vytvořte account rulesetcurl "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 omezení frekvence požadavků přes API.
Další kroky
Použijte různé operace v Rulesets API, abyste pracovali se sadou pravidel, kterou jste právě vytvořili a nasadili. Následující tabulka obsahuje seznam běžných úkolů pro práci se sadami pravidel pro omezení frekvence požadavků na úrovni účtu:
| Úkol | Postup |
|---|---|
| Získání seznamu sad pravidel rate limiting | Použijte Seznam sad pravidel na úrovni účtu operaci a vyhledejte sady pravidel s Další informace najdete v tématu Seznam existujících sad pravidel. |
| Seznam všech pravidel v sadě pravidel rate limiting | Použijte Získání sady pravidel účtu operaci s ID sady pravidel rate limiting, abyste získali seznam nakonfigurovaných pravidel rate limiting a jejich ID. Další informace najdete v tématu Zobrazit konkrétní sadu pravidel. |
| Aktualizace pravidla omezení frekvence | Použijte Aktualizace pravidla sady pravidel účtu operaci. Budete muset zadat ID sady pravidel rate limiting a ID pravidla. Další informace najdete v tématu Aktualizace pravidla v sadě pravidel. |
| Odstranění pravidla pro omezení četnosti požadavků | Použijte Odstranění pravidla sady pravidel účtu operaci. Budete muset zadat ID sady pravidel rate limiting a ID pravidla. Další informace najdete v tématu Odstraňte pravidlo v sadě pravidel. |
Další zdroje
Pokyny k nasazení pravidla rate limitingu na úrovni zóny pomocí API najdete v Vytvoření pravidla omezení frekvence požadavků přes API.
Další informace o různých parametrech omezení frekvence požadavků, které můžete nastavit ve svých pravidlech omezení frekvence požadavků, najdete v Parametry omezení frekvence požadavků.