INTEGRITY Dokumentace

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ů:

  1. Vytvořte sadu pravidel rate limitingu (tedy vlastní sadu pravidel ve fázi http_ratelimit fáze) s jedním nebo více pravidly rate limitingu.
  2. Nasaďte sadu pravidel do vstupní sada pravidel (entry point ruleset) http_ratelimit fá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:
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 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.

  1. Vyvolejte Získání entry point rulesetu účtu operaci k získání definice entry point rulesetu pro fázi http_ratelimit 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_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": []
    }
  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í 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:

    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 rate limiting ruleset",
    		"expression": "(cf.zone.plan eq \"ENT\")",
    		"action": "execute",
    		"action_parameters": {
    				"id": "<RATE_LIMITING_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í sadu pravidel rate limitingu pro všechny příchozí požadavky zón na plánu Enterprise 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": "<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 "kind": "custom" a "phase": "http_ratelimit". Odpověď bude obsahovat ID sad pravidel.

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.