管理されたルールセットのオーバーライド
管理されたルールセットの動作をカスタマイズするには、デプロイ時にルールセットをオーバーライドします。ルールセットをオーバーライドすると、デフォルトの構成の上に実行される変更を指定します。これらの変更は、ルールセットのデフォルトの動作に優先します。
たとえば、管理されたルールセットを強制する前にテストするには、デフォルトのアクションの代わりにすべてのルールを log に設定してルールセットを実行することを検討してください。これを行うには、ルールセットレベルで管理されたルールセットの構成された動作をオーバーライドし、各ルールが log アクションを使用するようにします。
Cloudflare ダッシュボードでオーバーライドを定義するには、以前にゾーンまたはアカウントにデプロイした管理されたルールセットの構成を編集します。
ルールセットは、3つのレベルでオーバーライドできます。
- ルールセットオーバーライドは、実行されるルールセット内のすべてのルールに適用されます。
- タグオーバーライドは、特定のタグを持つすべてのルールに適用されます。たとえば、Cloudflare Managed Rulesetをカスタマイズして、
wordpressタグを持つすべてのルールを Block に設定するためにタグオーバーライドを使用します。複数のタグにオーバーライドがあり、特定のルールがこれらのタグのいずれかを持つ場合、タグオーバーライドの順序が動作を決定します。複数のオーバーライドされたタグでタグ付けされたルールの場合、最後のタグのオーバーライドが適用されます。 - ルールオーバーライドは、管理されたルールセット内の特定のルールに適用され、ルール ID で参照されます。
特定のオーバーライドは、より一般的なものに優先し、ルールオーバーライドはタグオーバーライドに優先し、タグオーバーライドはルールセットオーバーライドに優先します。
管理されたルールセットのオーバーライドを適用するには:
- アカウントレベルのフェーズエントリポイントで Update ruleset 操作を呼び出します。
- 管理されたルールセットを実行するルールの
action_parametersにoverridesを指定します。
"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 に設定します。
例: フェーズでオーバーライドを使用して管理されたルールセットを実行する
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 に設定するルールセットオーバーライドを定義します。
例: アカウントレベルでオーバーライドを使用して管理されたルールセットを実行する
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を参照してください。