Rulesets API を使い、API でマネージドルールセットのペイロードログを設定します。
-
ゾーンのエントリポイントルールセットを取得する 操作で、次の ID を取得します。
http_request_firewall_managedフェーズ の エントリポイントルールセット の ID。- ペイロードログを設定したい、WAF マネージドルールセットをデプロイしている
executeルールの ID。
-
ゾーンのルールセットルールを更新する 操作で、前のステップで特定したルールを更新します。
ルールの
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 のペイロードログを設定します。
-
ゾーンのエントリポイントルールセットを取得する 操作を呼び出し、
http_request_firewall_managedフェーズのエントリポイントルールセットに現在設定されているルールを取得します。Get a zone entry point rulesetbash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \ --request GET \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{ "result": { "id": "060013b1eeb14c93b0dcd896537e0d2c", // entry point ruleset ID "name": "default", "description": "", "source": "firewall_managed", "kind": "zone", "version": "3", "rules": [ // (...) { "id": "1bdb49371c1f46958fc8b985efcb79e7", // `execute` rule 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": [] } -
次のステップのために、次の ID を保存します。
- エントリポイントルールセットの ID:
060013b1eeb14c93b0dcd896537e0d2c - Cloudflare Managed Ruleset をデプロイしている
executeルールの ID:1bdb49371c1f46958fc8b985efcb79e7
rules配列で正しいルールを探すには、action_parameters>idに Cloudflare Managed Ruleset の ID()を含むexecuteルールを検索します。 - エントリポイントルールセットの ID:
-
ゾーンのルールセットルールを更新する 操作を呼び出し、特定したルールの設定を更新します。このルールに、ペイロードログの設定(
matched_dataオブジェクト)が含まれます。Update a zone ruleset rulebash curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/060013b1eeb14c93b0dcd896537e0d2c/rules/1bdb49371c1f46958fc8b985efcb79e7" \ --request PATCH \ --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ --json '{ "action": "execute", "action_parameters": { "id": "efb7b8c949ac4650a09736fc376e9aee", "matched_data": { "public_key": "Ycig/Zr/pZmklmFUN99nr+taURlYItL91g+NcHGYpB8=" } }, "expression": "true" }'レスポンスには、ルール更新後のルールセット全体が含まれます。
API でマネージドルールセットをデプロイする詳細は、Ruleset Engine ドキュメントの マネージドルールセットをデプロイする を参照してください。
マネージドルールセットのペイロードログを無効にする手順は次のとおりです。
-
ゾーンのルールセットルールを更新する 操作で、マネージドルールセットをデプロイしているルール(
"action": "execute"のルール)を更新します。 -
action_parametersにmatched_dataオブジェクトがないように、ルール定義を変更します。
たとえば、次の PATCH リクエストは、Cloudflare Managed Ruleset をデプロイしている ID $RULE_ID のルールを更新し、ペイロードログを無効にします。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules/$RULE_ID" \
--request PATCH \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "execute",
"action_parameters": {
"id": "efb7b8c949ac4650a09736fc376e9aee"
},
"expression": "true"
}'エントリポイントルールセット ID と更新するルール ID の取得方法は、ペイロードログを設定して有効にする を参照してください。