APIを介しての設定
Rulesets APIを使用して、オーバーライドを定義することで、HTTP DDoS攻撃保護の管理ルールセットを構成します。
各ゾーンには、デフォルトでHTTP DDoS攻撃保護の管理ルールセットが有効になっています。これは、ddos_l7フェーズのルールセットに管理ルールセットを明示的にデプロイする必要がないことを意味します。オーバーライドを構成する必要がある場合は、フェーズルールセットにルールを作成するだけで済みます。
オーバーライドを使用して、HTTP DDoS攻撃保護の管理ルールセットを構成します。オーバーライドを使用すると、デフォルト値とは異なるアクションや感度レベルを定義できます。利用可能なアクションおよび感度レベルの値についての詳細は、ルールセットパラメータを参照してください。
オーバーライドには、ルールセット、タグ、またはルールスコープがあります。タグおよびルールの構成は、ルールセットの構成よりも優先されます。
ゾーンレベルおよびアカウントレベルでオーバーライドを作成できます。アカウントレベルのオーバーライドを使用すると、単一のルールでアカウント内の複数のゾーンに同じオーバーライドを適用できます。たとえば、アカウントレベルのオーバーライドを使用して、特定の管理ルールセットルールの感度を下げたり、複数のゾーンに対してIPリストを除外したりできます。ただし、特定のゾーンにHTTP DDoS攻撃保護の管理ルールセットのオーバーライドがある場合、そのゾーンに対してアカウントレベルのオーバーライドは評価されません。
ddos_l7フェーズエントリポイントルールセットに複数のルールを作成して、異なるセットの受信リクエストに対して異なるオーバーライドを定義します。HTTP DDoS保護をカスタマイズしたいトラフィックに応じて、各ルール式を設定します。
オーバーライドを作成するフェーズエントリポイントルールセット内のルールは、ルール式と感度レベルに一致するまで順番に評価され、Cloudflareはリクエストに一致する最初のルールを適用します。したがって、エントリポイントルールセット内のルールの順序は非常に重要です。
以下のPUT例は、ゾーンレベルでddos_l7フェーズの新しいルールセットを作成(または既存のものを更新)します。このリクエストには、HTTP DDoS攻撃保護の管理ルールセットのデフォルトの動作を調整するためのいくつかのオーバーライドが含まれています。これらのオーバーライドは次のとおりです:
- 管理ルールセットのすべてのルールは、
managed_challengeアクションを使用し、感度レベルはmediumです。 <TAG_NAME>でタグ付けされたすべてのルールは、感度レベルがlowです。- IDが
<MANAGED_RULESET_RULE_ID>のルールは、blockアクションを使用します。
curl --request PUT \https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/ddos_l7/entrypoint \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "description": "ゾーンレベルのフェーズエントリポイントルールセットでHTTP DDoS攻撃保護の管理ルールセットを実行する", "rules": [ { "action": "execute", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "sensitivity_level": "medium", "action": "managed_challenge", "categories": [ { "category": "<TAG_NAME>", "sensitivity_level": "low" } ], "rules": [ { "id": "<MANAGED_RULESET_RULE_ID>", "action": "block" } ] } }, "expression": "true" } ]}'レスポンスは、作成された(または更新された)フェーズエントリポイントルールセットを返します。
レスポンス
{ "result": { "id": "<PHASE_ENTRY_POINT_RULESET_ID>", "name": "default", "description": "ゾーンレベルのフェーズエントリポイントルールセットでHTTP DDoS攻撃保護の管理ルールセットを実行する", "kind": "zone", "version": "1", "rules": [ { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "version": "latest", "overrides": { "action": "managed_challenge", "categories": [ { "category": "<TAG_NAME>", "sensitivity_level": "low" } ], "rules": [ { "id": "<MANAGED_RULESET_RULE_ID>", "action": "block" } ], "sensitivity_level": "medium" } }, "expression": "true", "last_updated": "2021-06-16T04:14:47.977741Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2021-06-16T04:14:47.977741Z", "phase": "ddos_l7" }}管理ルールセットのオーバーライドをRulesets APIを使用して定義する方法の詳細については、管理ルールセットのオーバーライドをRuleset Engineのドキュメントで参照してください。
以下のPUT例は、アカウントレベルでddos_l7フェーズの新しいルールセットを作成(または既存のものを更新)します。この例では、allowlisted_ips IPリストからのIPアドレスからのリクエストに対して単一のルールオーバーライドを定義しています。設定は次のとおりです:
- IDが
<MANAGED_RULESET_RULE_ID>のルールは、HTTP DDoS攻撃保護の管理ルールセットに属し(IDは<MANAGED_RULESET_ID>)、eoff(Essentially Off)感度レベルを持ち、logアクションを実行します。
curl --request PUT \https://api.cloudflare.com/client/v4/accounts/{account_id}/rulesets/phases/ddos_l7/entrypoint \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "description": "許可されたIPアドレスのために管理ルールセットルールを無効にする", "rules": [ { "expression": "ip.src in $allowlisted_ips", "action": "execute", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "rules": [ { "id": "<MANAGED_RULESET_RULE_ID>", "action": "log", "sensitivity_level": "eoff" } ] } } } ]}'レスポンスは、作成された(または更新された)フェーズエントリポイントルールセットを返します。
レスポンス
{ "result": { "id": "<PHASE_ENTRY_POINT_RULESET_ID>", "name": "default", "description": "許可されたIPアドレスのために管理ルールセットルールを無効にする", "kind": "root", "version": "1", "rules": [ { "id": "<RULE_ID>", "version": "1", "action": "execute", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "version": "latest", "overrides": { "rules": [ { "id": "<MANAGED_RULESET_RULE_ID>", "action": "log", "sensitivity_level": "eoff" } ] } }, "expression": "ip.src in $allowlisted_ips", "last_updated": "2022-10-16T04:14:47.977741Z", "ref": "<RULE_REF>", "enabled": true } ], "last_updated": "2022-10-16T04:14:47.977741Z", "phase": "ddos_l7" }}管理ルールセットのオーバーライドをRulesets APIを使用して定義する方法の詳細については、管理ルールセットのオーバーライドをRuleset Engineのドキュメントで参照してください。