跳转到内容
搜索文档

通过 API 配置载荷记录

最后更新 查看 MarkdownAgent 设置

使用 Rulesets API 通过 API 为托管规则集配置载荷记录。

配置并启用载荷记录

  1. 使用 Get a zone entry point ruleset 操作获取以下 ID:

    • http_request_firewall_managed 阶段入口点规则集 ID。
    • 部署您要配置载荷记录的 WAF 托管规则集的 execute 规则 ID。
  2. 使用 Update a zone ruleset rule 操作更新您在上一步中识别的规则。

    在规则的 action_parameters 对象中包含 matched_data 对象以配置载荷记录。matched_data 对象的结构如下:

    "action_parameters": {
      // ...
      "matched_data": {
        "public_key": "<PUBLIC_KEY_VALUE>"
      }
    }

    <PUBLIC_KEY_VALUE> 替换为要用于载荷记录的公钥。您可以在命令行中在 Cloudflare 仪表板中生成公钥。

示例

此示例为已部署到 ID 为 $ZONE_ID 的 zone 的 Cloudflare Managed Ruleset 配置载荷记录。

  1. 调用 Get a zone entry point ruleset 操作,获取 http_request_firewall_managed 阶段入口点规则集中当前配置的规则。

    Get a zone entry point rulesetbash
    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": {
    		"id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID
    		"name": "default",
    		"description": "",
    		"source": "firewall_managed",
    		"kind": "zone",
    		"version": "3",
    		"rules": [
    			// (...)
    			{
    				"id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule ID
    				"version": "1",
    				"action": "execute",
    				"expression": "true",
    				"last_updated": "2024-01-20T14:21:28.643979Z",
    				"ref": "1bdb49371c1f46958fc8b985efcb79e7",
    				"enabled": true,
    				"action_parameters": {
    					"id": "efb7b8c949ac4650a09736fc376e9aee", // "Cloudflare Managed Ruleset" ID
    					"version": "latest"
    				}
    			}
    			// (...)
    		],
    		"last_updated": "2024-01-20T14:29:00.190643Z",
    		"phase": "http_request_firewall_managed"
    	},
    	"success": true,
    	"errors": [],
    	"messages": []
    }
  2. 为下一步保存以下 ID:

    • 入口点规则集的 ID:060013b1eeb14c93b0dcd896537e0d2c
    • 部署 Cloudflare Managed Ruleset 的 execute 规则的 ID:1bdb49371c1f46958fc8b985efcb79e7

    要在 rules 数组中找到正确的规则,请搜索 action_parameters > id 中包含 Cloudflare Managed Ruleset ID()的 execute 规则。

  3. 调用 Update a zone ruleset rule 操作以更新您识别的规则配置。该规则现在将包含载荷记录配置(matched_data 对象)。

    Update a zone ruleset rulebash
    curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \
    	--request PATCH \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"action": "execute",
    		"action_parameters": {
    				"id": "efb7b8c949ac4650a09736fc376e9aee",
    				"matched_data": {
    						"public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8="
    				}
    		},
    		"expression": "true"
    	}'

    响应将包含更新规则后的完整规则集。

有关通过 API 部署托管规则集的更多信息,请参阅 Ruleset Engine 文档中的 部署托管规则集


禁用载荷记录

要禁用托管规则集的载荷记录:

  1. 使用 Update a zone ruleset rule 操作更新部署托管规则集的规则(带有 "action": "execute" 的规则)。

  2. 修改规则定义,使 action_parameters 中不包含 matched_data 对象。

例如,以下 PATCH 请求更新 ID 为 $RULE_ID、部署 Cloudflare Managed Ruleset 的规则,以禁用载荷记录:

Update a zone ruleset rulebash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules/$RULE_ID" \
	--request PATCH \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"action": "execute",
		"action_parameters": {
				"id": "efb7b8c949ac4650a09736fc376e9aee"
		},
		"expression": "true"
	}'

有关获取入口点规则集 ID 和要更新的规则 ID 的详情,请参阅 配置并启用载荷记录

这篇文档对您有帮助吗?