Rulesets API を使って、API からカスタムルールを設定します。
skip アクションは、スキップしたいセキュリティ機能やプロダクトに応じて、複数の スキップオプション をサポートします。
このページでは、カスタムルールのスキップルールをシナリオ別に示します。次の点に注意してください。
-
$ZONE_IDは、ルールを追加する ゾーンの ID です。 -
$RULESET_IDは、http_request_firewall_customフェーズの エントリポイントルールセット の ID です。このルールセット ID の取得方法は、ルールセットの一覧と表示 を参照してください。このページの API 例は、ゾーンルールセットにルールを作成する 操作で、既存のルールセットにスキップルールを追加します。ただし、エントリポイントルールセットがまだ存在しない場合もあります。その場合は、ゾーンルールセットを作成する 操作を呼び出して、スキップルール付きのエントリポイントルールセットを作成します。例は ルールセットの作成 を参照してください。
-
各例ではアクションパラメーターを 1 つだけ示しています。同じルールで
ruleset、phases、productsを同時に指定すると、複数のスキップオプションを使えます。
この例は、ゾーンルールセットにルールを作成する 操作を呼び出し、既存の http_request_firewall_custom フェーズのエントリポイントルールセット(ID は $RULESET_ID)にスキップルールを追加します。ルール式に一致するリクエストでは、現在のルールセットの残りのルールをすべてスキップします。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"ruleset": "current"
},
"expression": "http.request.uri.path contains \"/skip-current-ruleset/\"",
"description": ""
}'この例は、ゾーンルールセットにルールを作成する 操作を呼び出し、既存の http_request_firewall_custom フェーズのエントリポイントルールセット(ID は $RULESET_ID)にルールを追加します。ルール式に一致するリクエストでは、http_ratelimit フェーズをスキップします。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phases": [
"http_ratelimit"
]
},
"expression": "http.request.uri.path contains \"/skip-phase/\"",
"description": ""
}'スキップできるフェーズの一覧は、利用できるスキップオプション を参照してください。
この例は、ゾーンルールセットにルールを作成する 操作を呼び出し、次のルールを追加します。
http_ratelimitフェーズをスキップする- 現在のルールのイベントログを無効にする
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phases": [
"http_ratelimit"
]
},
"logging": {
"enabled": false
},
"expression": "http.request.uri.path contains \"/disable-logging/\"",
"description": ""
}'スキップルールに一致したリクエストのログを無効にする方法は、利用できるスキップオプション を参照してください。
この例は、ゾーンルールセットにルールを作成する 操作を使い、ルール式に一致するリクエストに対して Zone Lockdown と User Agent Blocking をスキップするルールを追加します。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"products": [
"zoneLockdown",
"uaBlock"
]
},
"expression": "http.request.uri.path contains \"/skip-products/\"",
"description": ""
}'スキップできるプロダクトの一覧は、利用できるスキップオプション を参照してください。
この例は、ゾーンルールセットにルールを作成する 操作を呼び出し、既存の http_request_firewall_custom フェーズのエントリポイントルールセット(ID は $RULESET_ID)にスキップルールを追加します。ルール式に一致するリクエストでは、http_request_firewall_custom フェーズの残りのルールをすべてスキップします。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID/rules" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"action": "skip",
"action_parameters": {
"phase": "current"
},
"expression": "http.request.uri.path contains \"/skip-current-ruleset/\"",
"description": ""
}'現在、このスキップオプションはゾーンレベルでのみ利用できます。詳細は 利用できるスキップオプション を参照してください。