通过 API 配置顺序缓解包括通过选择顺序并设置规则的类型及其操作来构建规则对象。
{
"id": "d4909253-390f-4956-89fd-92a5b0cd86d8",
"title": "<RULE_TITLE>",
"kind": "allow",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0,
"last_updated": "2023-07-24T12:06:51.796286Z",
"created_at": "2023-07-24T12:06:51.796286Z"
}此规则强制要求对端点 0d9bf70c-92e1-4bb3-9411-34a3bcc59003 的请求必须在对端点 b704ab4d-5be0-46e0-9875-b2b3d1ab42f9 的请求之前发生。
否则,对端点 b704ab4d-5be0-46e0-9875-b2b3d1ab42f9 的请求将被阻止。
| 字段名称 | 描述 | 可选值 | 示例 |
|---|---|---|---|
id |
标识规则的不透明标识符。 | 一个 UUID | "d4909253-390f-4956-89fd-92a5b0cd86d8" |
title |
有助于识别规则的字符串。 | 1 到 50 个字符之间的值 | "Allow checkout sequence" |
kind |
定义此规则的语义。Block 规则具有否定安全模型,允许显式拒绝某一顺序。Allow 规则具有肯定安全模型,拒绝除配置顺序之外的一切请求。 | block, allow |
"block" |
action |
当规则匹配时,我们应该执行什么防火墙操作。 | block,log |
"log" |
sequence |
表示组成此规则顺序的操作(来自端点管理)。我们目前仅支持长度为二的顺序。第一个操作为起始端点,第二个操作为结束端点。 | 包含两个来自端点管理的有效操作 ID 的数组 | ["0d9bf70c-92e1-4bb3-9411-34a3bcc59003", "b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"] |
priority |
表示此规则相对于所有其他规则的优先级。优先级值较高的规则会先于优先级较低的规则进行评估。如果两个规则具有相同的优先级,则按添加它们的顺序进行评估。 | 一个有效的整数 | 10 |
last_updated |
此规则上次更改的时间。 | 日期字符串 | 2023-05-02T12:06:51.796286Z |
created_at |
此规则创建的时间。 | 日期字符串 | 2023-05-02T12:06:51.796286Z |
您可以通过在端点管理中导出架构或通过 API 来找到端点的操作 ID。
使用 GET 命令列出规则。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules"使用 POST 命令创建单个规则。
这会将单个规则添加到所有现有规则中。Priority 可以用来将规则放置在另一个规则之间、之前或之后。
响应将反映已写入的规则及其 ID。如果规则有任何不妥之处,将提供一个指向该问题的 json 路径的适当错误消息。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules" \
--header "Content-Type: application/json" \
--data '{
"title": "string",
"kind": "block",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0
}'使用 PUT 命令批量设置新规则。
这将覆盖任何现有规则,并将其替换为正文中指定的规则。为 rules 设置空数组将删除所有规则。
响应将反映已写入的规则及其 ID。如果规则有任何不妥之处,将提供一个指向该问题的 json 路径的适当错误消息。
curl --request PUT "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules" \
--header "Content-Type: application/json" \
--data '{
"rules": [
{
"title": "<RULE_TITLE>",
"kind": "block",
"action": "block",
"sequence": [
"0d9bf70c-92e1-4bb3-9411-34a3bcc59003",
"b704ab4d-5be0-46e0-9875-b2b3d1ab42f9"
],
"priority": 0
}
]
}'使用 DELETE 命令及其规则 ID 来删除规则。
curl --request DELETE "https://api.cloudflare.com/client/v4/zones/{zone_id}/api_gateway/seqrules/rules/d4909253-390f-4956-89fd-92a5b0cd86d8"