例外 を使い、マネージドルールセットの実行、またはその一部のルールの実行をスキップします。
例外の設定には、スキップ条件を定義する 式 と、その条件でスキップするルールまたはマネージドルールセットが含まれます。
Terraform を使う場合は、Terraform ドキュメントの 例外を設定する を参照してください。
Cloudflare ダッシュボードを使う場合は ダッシュボードで例外を追加する を参照してください。
例外には、次のいずれかの動作があります(優先度の高い順)。
例外はゾーンレベルまたはアカウントレベルというコンテキストで定義し、そのコンテキストにだけ適用されます。たとえば、アカウントレベルで残りのルールをすべてスキップする例外を定義しても、ゾーンレベルのエントリポイントルールセットのルールは引き続き評価されます。
複数の例外の式が一致する場合、Cloudflare は優先度が最も高い例外を採用します。
例外は、自分より後に並んでいるマネージドルールセットを実行するルールにだけ適用されます。エントリポイントルールセットのルール一覧の末尾に例外を追加しても、何もスキップされません。
エントリポイントルールセット の残りのルールをすべてスキップするには、skip アクションのルールを作成し、action_parameters オブジェクトに "ruleset": "current" を含めます。
ルール定義の例:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"ruleset": "current"
}
}残りのルールをすべてスキップしても、影響するのは現在のコンテキスト(アカウントまたはゾーン)のルールだけです。たとえば、アカウントレベルのフェーズエントリポイントルールセットに skip アクションのルールを追加しても、ゾーンレベルのフェーズエントリポイントルールセットのルールには影響しません。ゾーンレベルのルールは引き続き評価されます。
完全な例は WAF ドキュメント を参照してください。
1 つ以上のマネージドルールセットをスキップするには、action_parameters オブジェクトに rulesets フィールドを含む skip アクションのルールを作成します。rulesets フィールドには、スキップしたいマネージドルールセット ID のリストを入れます。
ルール定義の例:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"rulesets": ["<MANAGED_RULESET_1_ID>", "<MANAGED_RULESET_2_ID>"]
}
}完全な例は WAF ドキュメント を参照してください。
マネージドルールセットの 1 つ以上のルールをスキップするには、action_parameters オブジェクトに rules オブジェクトを含む skip アクションのルールを作成します。rules オブジェクトのキーは 1 つ以上のマネージドルールセット ID、各キーの値はそのマネージドルールセットでスキップするルールのリストです。
マネージドルールセット 1 のルール A と B、マネージドルールセット 2 のルール X をスキップするルール定義の例:
{
"expression": "<RULE_EXPRESSION>",
"action": "skip",
"action_parameters": {
"rules": {
"<MANAGED_RULESET_1_ID>": ["<RULE_A_ID>", "<RULE_B_ID>"],
"<MANAGED_RULESET_2_ID>": ["<RULE_X_ID>"]
}
}
}rules オブジェクト内のルールは、指定したマネージドルールセットに属している必要があります。そうでない場合はエラーになります。
完全な例は WAF ドキュメント を参照してください。
- 例外は オーバーライド より優先されます。
- 残りのルールをすべてスキップする例外を定義した場合、それらのルールの式は評価されません。
- マネージドルールセットのルールをスキップする例外を定義した場合、マネージドルールセットを実行するルールの式は評価され、その特定のルールだけがバイパスされ、ほかのマネージドルールセットのルールは実行されます。