Dokumentace Domluvit pilot

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

  1. Vytvoření sady pravidel pro omezení frekvence požadavků (tedy vlastní sady pravidel ve fázi http_ratelimit fáze) s jedním nebo více pravidly rate limiting.
  2. Nasaďte sadu pravidel do vstupní sada pravidel http_ratelimit fá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é:
Vytvořte account ruleset
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.

  1. Vyvolejte Získání vstupní sady pravidel účtu operaci k získání definice vstupní sady pravidel pro http_ratelimit fáze. Budete potřebovat ID účtu pro tento úkol.

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

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Account WAF Write
    • Account WAF Read
    • Account Rulesets Read
    • Account Rulesets Write
    Získání vstupní sady pravidel úč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 vstupní sada pravidel již existuje (to znamená, 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 sady pravidel účtu operaci pro přidání execute pravidlo 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:

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

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Account WAF Write
    • Account Rulesets Write
    Vytvoření pravidla sady 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 vstupní sada pravidel neexistuje (to znamená, pokud jste obdrželi 404 Not Found stavový kód v kroku 1), vytvořte ji pomocí Vytvořte account ruleset operaci. Zahrňte jedno pravidlo do rules pole, které spouští sadu pravidel pro omezení frekvence požadavků pro všechny příchozí požadavky zón Enterprise ve vašem účtu.

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

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Account WAF Write
    • Account Rulesets Write
    Vytvořte account ruleset
    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 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 "kind": "custom" a "phase": "http_ratelimit". Odpověď bude obsahovat ID sad pravidel.

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

Požádejte o pilot zdarma

Domluvit pilot