跳转到内容
搜索文档

通过 API 创建配置规则

最后更新 查看 MarkdownAgent 设置

使用 Rulesets API 通过 API 创建配置规则。

基本规则设置

通过 API 创建配置规则时,请确保:

  • 将规则操作设为 set_config
  • 根据你希望为匹配请求覆盖的 设置,在 action_parameters 字段中定义参数。
  • 将规则部署到 zone 级别的 http_config_settings 阶段。

操作步骤

通过 API 为给定 zone 创建 a configuration rule 时,请遵循以下工作流:

  1. 使用 List zone rulesets 操作检查 zone 级别是否已有 http_config_settings phase 的 ruleset。

  2. 如果 phase ruleset 不存在,使用 Create a zone ruleset 操作创建。在新 ruleset 属性中设置以下值:

    • kindzone
    • phasehttp_config_settings
  3. 使用 Update a zone ruleset 操作将 a configuration rule 添加到 ruleset 规则列表。或者,在上一步的 Create a zone ruleset 请求中包含该规则。

请确保你的 API 令牌具有执行 API 操作所需的 权限

示例请求

示例:添加启用 Email Obfuscation 与 Browser Integrity Check 的规则

以下示例使用 Update a zone ruleset 操作,将现有阶段规则集({ruleset_id})的规则设为单条配置规则——为联系页面启用 Email Obfuscation 与 Browser Integrity Check:

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "enable_email_obfuscation_bic",
						"expression": "starts_with(http.request.uri.path, \"/contact-us/\")",
						"description": "Obfuscates email addresses and enables BIC in contacts page",
						"action": "set_config",
						"action_parameters": {
								"email_obfuscation": true,
								"bic": true
						}
				}
		]
	}'

使用 Terraform 时,通过 ref 字段可在更新后保持稳定的规则 ID。添加该字段可防止 Terraform 在变更时重建规则。更多信息请参阅 故障排除(Terraform 文档)。

示例:添加为管理区域开启 Under Attack 模式的规则

以下示例使用 Update a zone ruleset 操作,将现有阶段规则集({ruleset_id})的规则设为单条配置规则——为管理区域开启 Under Attack 模式:

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "enable_under_attack_in_admin",
						"expression": "http.host eq \"admin.example.com\"",
						"description": "Turn on Under Attack mode for admin area",
						"action": "set_config",
						"action_parameters": {
								"security_level": "under_attack"
						}
				}
		]
	}'

使用 Terraform 时,通过 ref 字段可在更新后保持稳定的规则 ID。添加该字段可防止 Terraform 在变更时重建规则。更多信息请参阅 故障排除(Terraform 文档)。


所需 API 令牌权限

用于管理配置规则的 API 请求中使用的 API 令牌至少需要具备以下权限:

  • Zone > Config Rules > Edit

这篇文档对您有帮助吗?