コンテンツにスキップ

管理されたルールセットのオーバーライド

管理されたルールセットの動作をカスタマイズするには、デプロイ時にルールセットをオーバーライドします。ルールセットをオーバーライドすると、デフォルトの構成の上に実行される変更を指定します。これらの変更は、ルールセットのデフォルトの動作に優先します。

たとえば、管理されたルールセットを強制する前にテストするには、デフォルトのアクションの代わりにすべてのルールを log に設定してルールセットを実行することを検討してください。これを行うには、ルールセットレベルで管理されたルールセットの構成された動作をオーバーライドし、各ルールが log アクションを使用するようにします。

Cloudflare ダッシュボードでオーバーライドを定義するには、以前にゾーンまたはアカウントにデプロイした管理されたルールセットの構成を編集します。

オーバーライドの操作

ルールセットは、3つのレベルでオーバーライドできます。

  • ルールセットオーバーライドは、実行されるルールセット内のすべてのルールに適用されます。
  • タグオーバーライドは、特定のタグを持つすべてのルールに適用されます。たとえば、Cloudflare Managed Rulesetをカスタマイズして、wordpress タグを持つすべてのルールを Block に設定するためにタグオーバーライドを使用します。複数のタグにオーバーライドがあり、特定のルールがこれらのタグのいずれかを持つ場合、タグオーバーライドの順序が動作を決定します。複数のオーバーライドされたタグでタグ付けされたルールの場合、最後のタグのオーバーライドが適用されます。
  • ルールオーバーライドは、管理されたルールセット内の特定のルールに適用され、ルール ID で参照されます。

特定のオーバーライドは、より一般的なものに優先し、ルールオーバーライドはタグオーバーライドに優先し、タグオーバーライドはルールセットオーバーライドに優先します。

管理されたルールセットのオーバーライドを適用するには:

  • アカウントレベルのフェーズエントリポイントで Update ruleset 操作を呼び出します。
  • 管理されたルールセットを実行するルールの action_parametersoverrides を指定します。
"action_parameters": {
"id": "<RULESET_ID>",
"overrides": {
// ルールセットオーバーライド
"property-to-modify": "value",
"property-to-modify": "value",
// タグオーバーライド
"categories": [
{
"category": "<TAG_NAME>",
"property-to-modify": "value",
"property-to-modify": "value"
}
],
// ルールオーバーライド
"rules": [
{
"id": "<RULE_ID>",
"property-to-modify": "value",
"property-to-modify": "value"
}
]
}
}

次のルールプロパティをオーバーライドできます:

  • "action"
  • "enabled"

一部の管理されたルールセットには追加のオーバーライド要件がある場合があり、他のルールプロパティをオーバーライドできる場合もあります。詳細については、各Cloudflare製品のドキュメントを確認してください。

次のリクエストは、http_request_firewall_managed フェーズで管理されたルールセットを実行するルールを追加し、ルールオーバーライドを定義してルール <RULE_ID> を有効にし、そのアクションを log に設定します。

例: フェーズでオーバーライドを使用して管理されたルールセットを実行する

Terminal window
curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"description": "管理されたルールセットをデプロイし、特定のルールをログアクションで有効にする",
"rules": [
{
"action": "execute",
"expression": "true",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"rules": [
{
"id": "<RULE_ID>",
"enabled": true,
"action": "log"
}
]
}
}
}
]
}'

次のリクエストは、http_request_firewall_managed フェーズで管理されたルールセットを実行するルールを追加し、すべての(有効な)ルールのアクションを log に設定するルールセットオーバーライドを定義します。

例: アカウントレベルでオーバーライドを使用して管理されたルールセットを実行する

Terminal window
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/phases/http_request_firewall_managed/entrypoint \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"description": "example.comのために管理されたルールセットをデプロイし、ルールアクションをログにオーバーライドする",
"rules": [
{
"action": "execute",
"expression": "(cf.zone.name eq \"example.com\") and cf.zone.plan eq \"ENT\"",
"action_parameters": {
"id": "<MANAGED_RULESET_ID>",
"overrides": {
"action": "log"
}
}
}
]
}'

オーバーライドの設定に関する追加の例については、Managed ruleset override examplesを参照してください。