コンテンツにスキップ

ルールセットの作成

指定されたフェーズで特定の種類のルールセットを作成します。フェーズエントリポイントルールセットを作成することができます。

次の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フェーズにカスタムルールセットを作成します。

リクエスト

Terminal window
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フェーズでゾーンレベルのフェーズエントリポイントルールセットを作成します。このルールは、管理されたルールセットを実行します。

リクエスト

Terminal window
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": []
}