ルールセットの作成
指定されたフェーズで特定の種類のルールセットを作成します。フェーズエントリポイントルールセットを作成することができます。
次のAPIエンドポイントのいずれかを使用します:
| 操作 | メソッド + エンドポイント |
|---|---|
| アカウントルールセットの作成 | POST /accounts/{account_id}/rulesets |
| ゾーンルールセットの作成 | POST /zones/{zone_id}/rulesets |
次のパラメータが必要です:
name-String:- ルールセットの人間が読み取れる名前。
- 名前は不変です。ルールセットの生涯にわたって変更することはできません。
description-String:- ルールセットのオプションの説明。
- ルールセットの生涯にわたって説明を変更することができます。
kind-String:- JSONオブジェクトが表すルールセットの種類。
- 許可される値:
custom: カスタムルールセットを作成しますroot: アカウントレベルでフェーズエントリポイントルールセットを作成しますzone: ゾーンレベルでフェーズエントリポイントルールセットを作成します
phase-String:- ルールセットが作成されるフェーズの名前。
- その製品のルールセットを作成できるフェーズに関する詳細は、特定のCloudflare製品のドキュメントを確認してください。
rulesパラメータを使用して、ルールセットのルールのリストを提供します。オブジェクト定義については、Rulesets API: JSONオブジェクトを参照してください。
次の例リクエストは、単一のルールを含むhttp_request_firewall_customフェーズにカスタムルールセットを作成します。
リクエスト
curl https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "name": "Example custom ruleset", "kind": "custom", "description": "Example ruleset description", "rules": [ { "action": "log", "expression": "cf.zone.name eq \"example.com\"" } ], "phase": "http_request_firewall_custom"}'レスポンス
{ "result": { "id": "<RULESET_ID>", "name": "Example custom ruleset", "description": "Example ruleset description", "kind": "custom", "version": "1", "rules": [ { "id": "<RULE_ID>", "version": "1", "action": "log", "expression": "cf.zone.name eq \"example.com\"", "last_updated": "2021-03-17T15:42:37.917815Z" } ], "last_updated": "2021-03-17T15:42:37.917815Z", "phase": "http_request_firewall_custom" }, "success": true, "errors": [], "messages": []}次の例リクエストは、単一のルールを持つhttp_request_firewall_managedフェーズでゾーンレベルのフェーズエントリポイントルールセットを作成します。このルールは、管理されたルールセットを実行します。
リクエスト
curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "name": "Zone-level phase entry point", "kind": "zone", "description": "This ruleset executes a managed ruleset.", "rules": [ { "action": "execute", "expression": "true", "action_parameters": { "id": "<MANAGED_RULESET_ID>" } } ], "phase": "http_request_firewall_managed"}'レスポンス
{ "result": { "id": "<RULESET_ID>", "name": "Zone-level phase entry point", "description": "This ruleset executes a managed ruleset.", "kind": "zone", "version": "1", "rules": [ { "id": "<RULE_ID>", "version": "1", "action": "execute", "expression": "true", "action_parameters": { "id": "<MANAGED_RULESET_ID>" }, "last_updated": "2021-03-17T15:42:37.917815Z" } ], "last_updated": "2021-03-17T15:42:37.917815Z", "phase": "http_request_firewall_managed" }, "success": true, "errors": [], "messages": []}