INTEGRITY Dokumentace

Nasazení spravované sady pravidel

Spravovanou sadu pravidel můžete nasadit na úrovni zóny nebo na úrovni účtu. Chcete-li nasadit spravovanou sadu pravidel do fáze, použijte Rulesets API.

Pokud používáte Terraform, přečtěte si Konfigurace WAF Managed Rules pomocí Terraformu s dalšími informacemi.

Pokud používáte Cloudflare dashboard, přečtěte si následující stránky:

Nasazení spravované sady pravidel do fáze na úrovni zóny

Spravovaný ruleset nasadíte do fáze na úrovni zóny podle následujícího postupu.

  1. Získejte svůj ID zóny.
  2. Vyvolejte Seznam sad pravidel na úrovni účtu operaci a získejte dostupné spravované sady pravidel. Spravované sady pravidel existují na úrovni účtu, ale můžete je nasadit do zóny. Najděte ID sady pravidel spravované sady pravidel, kterou chcete nasadit.
  3. Identifikujte fáze kde chcete nasadit spravovanou sadu pravidel. Ujistěte se, že spravovaná sada pravidel patří do stejné fáze, do které ji chcete nasadit.
  4. Přidejte pravidlo do fáze na úrovni zóny vstupní sada pravidel , které spouští spravovanou sadu pravidel. Podrobnosti k tomuto kroku najdete v následujícím příkladu.

Příklad

Následující příklad nasadí Cloudflare Managed Ruleset do http_request_firewall_managed fáze dané zóny ($ZONE_ID) vytvořením pravidla, které spouští spravovanou sadu pravidel.

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

    Získání vstupní sady pravidel zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
    {
    	"result": {
    		"description": "Zone-level phase entry point",
    		"id": "<RULESET_ID>",
    		"kind": "zone",
    		"last_updated": "2024-03-16T15:40:08.202335Z",
    		"name": "zone",
    		"phase": "http_request_firewall_managed",
    		"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 zóny operaci pro přidání execute pravidlo do stávající sady pravidel nasazující Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee). Ve výchozím nastavení se pravidlo přidá na konec seznamu pravidel, která už v sadě pravidel jsou.

    Vytvoření pravidla sady pravidel zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee"
    		},
    		"expression": "true",
    		"description": "Execute the Cloudflare Managed Ruleset"
    	}'
    {
    	"result": {
    		"id": "<RULESET_ID>",
    		"name": "Zone-level phase entry point",
    		"description": "",
    		"kind": "zone",
    		"version": "11",
    		"rules": [
    			// ... any existing rules
    			{
    				"id": "<RULE_ID>",
    				"version": "1",
    				"action": "execute",
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee",
    					"version": "latest"
    				},
    				"expression": "true",
    				"description": "Execute the Cloudflare Managed Ruleset",
    				"last_updated": "2024-03-18T18:08:14.003361Z",
    				"ref": "<RULE_REF>",
    				"enabled": true
    			}
    		],
    		"last_updated": "2024-03-18T18:08:14.003361Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  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ření rulesetu zóny operaci. Zahrňte jedno pravidlo do rules pole, které spouští Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee) pro všechny příchozí požadavky v zóně.

    Vytvoření rulesetu zóny
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "My ruleset",
    		"description": "Entry point ruleset for WAF managed rulesets",
    		"kind": "zone",
    		"phase": "http_request_firewall_managed",
    		"rules": [
    				{
    						"action": "execute",
    						"action_parameters": {
    								"id": "efb7b8c949ac4650a09736fc376e9aee"
    						},
    						"expression": "true",
    						"description": "Execute the Cloudflare Managed Ruleset"
    				}
    		]
    	}'

V tomto příkladu spravovaný ruleset provádí chování nakonfigurované Cloudflare. Chcete-li chování spravovaných rulesetů přizpůsobit, přečtěte si Přepsání spravované sady pravidel.

Nasazení spravované sady pravidel do fáze na úrovni účtu

Spravovaný ruleset nasadíte do fáze na úrovni účtu podle následujícího postupu.

  1. Získejte svůj ID účtu.
  2. Vyvolejte Seznam sad pravidel na úrovni účtu operaci a získejte dostupné spravované sady pravidel. Najděte ID sady pravidel spravované sady pravidel, kterou chcete nasadit.
  3. Identifikujte fáze kde chcete nasadit spravovanou sadu pravidel. Ujistěte se, že spravovaná sada pravidel patří do stejné fáze, do které ji chcete nasadit.
  4. Přidejte pravidlo do fáze na úrovni účtu vstupní sada pravidel , které spouští spravovanou sadu pravidel. Veškeré vlastní podmínky ve výrazu pravidla uzavřete do závorek a výraz ukončete and cf.zone.plan eq "ENT" tak, aby platilo pouze pro zóny v plánu Enterprise. Podrobnosti k tomuto kroku najdete v následujícím příkladu.

Příklad

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

  1. Vyvolejte Získání vstupní sady pravidel účtu operaci k získání definice vstupní sady pravidel pro http_request_firewall_managed 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_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 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í Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee). Ve výchozím nastavení se pravidlo přidá na konec seznamu pravidel, která už v sadě pravidel jsou.

    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 '{
    		"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 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í Cloudflare Managed Ruleset (s ID efb7b8c949ac4650a09736fc376e9aee) pro všechny příchozí požadavky, kde název zóny odpovídá jedné z hodnot example.com nebo anotherexample.com.

    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 '{
    		"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"
    				}
    		]
    	}'

V tomto příkladu spravovaný ruleset provádí chování nakonfigurované Cloudflare. Chcete-li se dozvědět, jak přizpůsobit chování spravovaných rulesetů, přečtěte si Přepsání spravované sady pravidel.