INTEGRITY Dokumentace

Přidání pravidel do vlastní sady pravidel

Chcete-li přidat pravidla do existující vlastní sady pravidel, použijte Aktualizace rulesetu účtu nebo zóny operaci a pravidla předejte v poli. Každé pravidlo má výraz a akci.

Pokud používáte Terraform, přečtěte si Konfigurace vlastních pravidel WAF pomocí Terraformu najdete příklady vytváření a nasazování vlastních sad pravidel.

Pokud používáte Cloudflare dashboard, přečtěte si Práce s vlastními sadami pravidel v dashboardu.

Přidat pravidla

Následující požadavek přidá dvě pravidla do vlastní sady pravidel na úrovni účtu s ID $RULESET_ID. Toto budou jediná dvě pravidla v rulesetu.

Odpověď bude obsahovat ID pravidla nových pravidel v id .

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Aktualizace rulesetu účtu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"expression": "(ip.src.country in {\"GB\" \"FR\"} and cf.bot_management.score < 20 and not cf.bot_management.verified_bot)",
						"action": "challenge",
						"description": "challenge GB and FR based on bot score"
				},
				{
						"expression": "not http.request.uri.path matches \"^/api/.*$\"",
						"action": "challenge",
						"description": "challenge not /api"
				}
		]
	}'
{
	"result": {
		"id": "<CUSTOM_RULESET_ID>",
		"name": "Custom Ruleset 1",
		"kind": "custom",
		"version": "2",
		"rules": [
			{
				"id": "<CUSTOM_RULE_ID_1>",
				"version": "1",
				"action": "challenge",
				"expression": "(ip.src.country in {\"GB\" \"FR\"} and cf.bot_management.score < 20 and not cf.bot_management.verified_bot)",
				"description": "challenge GB and FR based on bot score",
				"last_updated": "2021-03-18T18:25:08.122758Z",
				"ref": "<CUSTOM_RULE_REF_1>",
				"enabled": true
			},
			{
				"id": "<CUSTOM_RULE_ID_2>",
				"version": "1",
				"action": "challenge",
				"expression": "not http.request.uri.path matches \"^/api/.*$\"",
				"description": "challenge not /api",
				"last_updated": "2021-03-18T18:25:08.122758Z",
				"ref": "<CUSTOM_RULE_REF_2>",
				"enabled": true
			}
		],
		"last_updated": "2021-03-18T18:25:08.122758Z",
		"phase": "http_request_firewall_custom"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Aktualizace pravidel

Chcete-li aktualizovat jedno nebo více pravidel ve vlastním rulesetu, použijte Aktualizace rulesetu účtu nebo zóny operaci. Do pole pravidel zahrňte ID pravidel, která chcete upravit, a přidejte pole, která chcete aktualizovat. Požadavek nahradí celou sadu pravidel novou verzí. Proto musíte zahrnout ID všech pravidel, která chcete zachovat.

Následující PUT upraví jedno pravidlo ve vlastní sadě pravidel na úrovni účtu a aktualizuje pořadí spouštění pravidel.

Odpověď bude obsahovat upravenou vlastní sadu pravidel. Mějte na paměti, že se zvýší číslo verze aktualizovaného pravidla i sady pravidel.

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

Alespoň jeden z následujících oprávnění tokenu je povinné:
Aktualizace rulesetu účtu
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"id": "<CUSTOM_RULE_ID_2>",
						"expression": "not http.request.uri.path matches \"^/api/.*$\"",
						"action": "js_challenge",
						"description": "js_challenge when not /api"
				},
				{
						"id": "<CUSTOM_RULE_ID_1>"
				}
		]
	}'
{
	"result": {
		"id": "<CUSTOM_RULESET_ID>",
		"name": "Custom Ruleset 1",
		"kind": "custom",
		"version": "3",
		"rules": [
			{
				"id": "<CUSTOM_RULE_ID_2>",
				"version": "2",
				"action": "js_challenge",
				"expression": "not http.request.uri.path matches \"^/api/.*$\"",
				"description": "js_challenge when not /api",
				"last_updated": "2021-03-18T18:30:08.122758Z",
				"ref": "<CUSTOM_RULE_ID_2>",
				"enabled": true
			},
			{
				"id": "<CUSTOM_RULE_ID_1>",
				"version": "1",
				"action": "challenge",
				"expression": "(ip.src.country in {\"GB\" \"FR\"} and cf.bot_management.score < 20 and not cf.bot_management.verified_bot)",
				"description": "challenge GB and FR based on bot score",
				"last_updated": "2021-03-18T18:25:08.122758Z",
				"ref": "<CUSTOM_RULE_ID_1>",
				"enabled": true
			}
		],
		"last_updated": "2021-03-18T18:30:08.122758Z",
		"phase": "http_request_firewall_custom"
	},
	"success": true,
	"errors": [],
	"messages": []
}