INTEGRITY Dokumentace

Nasazení spravované sady pravidel WAF přes API (účet)

Použijte Rulesets API k nasazení spravované sady pravidel WAF do http_request_firewall_managed fáze na úrovni účtu.

The WAF Managed Rules obsahuje ID jednotlivých spravovaných sad pravidel WAF. Tyto informace budete potřebovat při nasazování sad přes API.

Pokud používáte Terraform, viz Konfigurace WAF Managed Rules pomocí Terraformu.

Příklad

Následující příklad nasazuje Cloudflare Managed Ruleset do http_request_firewall_managed fáze daného účtu ($ACCOUNT_ID) vytvořením pravidla, které spouští spravovanou sadu pravidel. Pravidla ve spravované sadě pravidel se vykonávají, když název zóny odpovídá jedné z example.com nebo anotherexample.com.

  1. Vyvolejte Získání entry point rulesetu účtu operaci k získání definice entry point rulesetu pro fázi http_request_firewall_managed 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_request_firewall_managed/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_request_firewall_managed",
    		"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, která nasazuje Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee). Ve výchozím nastavení bude pravidlo přidáno na konec seznamu pravidel, která již v sadě jsou.

    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 '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee"
    		},
    		"expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"",
    		"description": "Execute the Cloudflare Managed Ruleset"
    	}'
    {
    	"result": {
    		"id": "<RULESET_ID>",
    		"name": "Account-level phase entry point",
    		"description": "",
    		"kind": "root",
    		"version": "11",
    		"rules": [
    			// ... any existing rules
    			{
    				"id": "<RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee",
    					"version": "latest"
    				},
    				"expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"",
    				"description": "Execute the Cloudflare Managed Ruleset",
    				"last_updated": "2024-03-18T18:30:08.122758Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    		],
    		"last_updated": "2024-03-18T18:30:08.122758Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  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é vykonává Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee) pro všechny příchozí požadavky, kde název zóny odpovídá jedné z example.com nebo anotherexample.com.

    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 '{
    		"name": "My ruleset",
    		"description": "Entry point ruleset for WAF managed rulesets",
    		"kind": "root",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    				{
    						"action": "execute",
    						"action_parameters": {
    								"id": "efb7b8c949ac4650a09736fc376e9aee"
    						},
    						"expression": "(cf.zone.name in {\"example.com\" \"anotherexample.com\"}) and cf.zone.plan eq \"ENT\"",
    						"description": "Execute the Cloudflare Managed Ruleset"
    				}
    		]
    	}'

Další kroky

K přizpůsobení chování pravidel zahrnutých ve spravované sadě pravidel vytvořte přepis.

Pro přeskočení vykonávání spravovaných sad pravidel WAF nebo některých jejich pravidel vytvořte výjimku (nazývané také skip pravidlo).

Výjimky mají přednost před overrides.

Další zdroje

Pokyny k nasazení spravované sady pravidel na úrovni zóny přes API najdete v části Nasazení spravované sady pravidel WAF přes API (zóna).

Další informace o práci se spravovanými sadami pravidel přes API viz Práce se spravovanými sadami pravidel v dokumentaci Ruleset Engine.