コンテンツにスキップ

APIを介してペイロードロギングを構成する

Rulesets APIを使用して、APIを介して管理されたルールセットのペイロードロギングを構成します。

ペイロードロギングの構成と有効化

  1. Get a zone entry point ruleset操作を使用して、次のIDを取得します:

    • http_request_firewall_managed phaseentry point rulesetの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}のゾーンに既に展開されているCloudflare Managed Rulesetのペイロードロギングを構成します。

  1. Get a zone entry point ruleset操作(GETリクエスト)を呼び出して、http_request_firewall_managedフェーズのエントリポイントルールセットに現在構成されているルールを取得します。

    リクエスト
    curl https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
    --header "Authorization: Bearer <API_TOKEN>"
    例の応答
    {
    "result": {
    "id": "060013b1eeb14c93b0dcd896537e0d2c", // エントリポイントルールセットID
    "name": "default",
    "description": "",
    "source": "firewall_managed",
    "kind": "zone",
    "version": "3",
    "rules": [
    // (...)
    {
    "id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute`ルール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( ...376e9aee )を含むexecuteルールを検索します。

  3. Update a zone ruleset rule操作(PATCHリクエスト)を呼び出して、特定したルールの構成を更新します。ルールには、ペイロードロギング構成(matched_dataオブジェクト)が含まれるようになります。

    リクエスト
    curl --request PATCH \
    "https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \
    --header "Authorization: Bearer <API_TOKEN>" \
    --header "Content-Type: application/json" \
    --data '{
    "action": "execute",
    "action_parameters": {
    "id": "efb7b8c949ac4650a09736fc376e9aee",
    "matched_data": {
    "public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8="
    }
    },
    "expression": "true"
    }'

    応答には、ルールを更新した後の完全なルールセットが含まれます。

APIを介して管理されたルールセットを展開する方法の詳細については、Ruleset EngineのドキュメントのDeploy a managed rulesetを参照してください。


ペイロードロギングの無効化

管理されたルールセットのペイロードロギングを無効にするには:

  1. Update a zone ruleset rule操作(PATCHリクエスト)を使用して、管理ルールセットを展開するルール(executeルール)を更新します。

  2. ルール定義を変更して、action_parametersmatched_dataオブジェクトが含まれないようにします。

例えば、次のPATCHリクエストは、ペイロードロギングが無効になるようにCloudflare Managed Rulesetを展開するIDが{rule_id}のルールを更新します:

Terminal window
curl --request PATCH \
"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/{entrypoint_ruleset_id}/rules/{rule_id}" \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee"
},
"expression": "true"
}'

エントリポイントルールセットIDと更新するルールのIDを取得する詳細については、Configure and enable payload loggingを参照してください。