Joomlaルールのみを有効にする
Rulesets APIを使用して、管理されたルールセットの実行を構成し、その動作をオーバーライドします。デフォルトでは、有効なルールは管理されたルールセットの発行者によって定義されたアクションを実行します。この例では、特定のタグを持つルールのみが有効になるようにオーバーライドを使用します。
以下の手順に従って、joomlaタグが付けられたルールのみを有効にするための管理されたルールセットの実行を構成します。
- ルールを追加して、管理されたルールセットを実行するフェーズエントリポイントルールセットに追加します。
- ルールセットオーバーライドを構成して、管理されたルールセット内のすべてのルールを無効にします。
- 特定のタグを持つルールのみを有効にするタグオーバーライドを構成します。
タグオーバーライドはルールセットオーバーライドよりも優先されます。指定されたタグを持つルールのみが有効になり、他のすべてのルールは無効になります。
この例では、Update ruleset操作を使用して、Joomlaルールのみが有効なフェーズにCloudflare管理ルールセットをデプロイします。name、kind、およびphaseフィールドは不変であるため、リクエストから省略されています。
例: ゾーンレベルでカテゴリオーバーライドを使用してJoomlaルールのみを有効にする
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 '{ "rules": [ { "action": "execute", "expression": "true", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "enabled": false, "categories": [ { "category": "joomla", "action": "block", "enabled": true } ] } } } ]}'"id": "<MANAGED_RULESET_ID>"は、指定されたゾーン({zone_id})へのリクエストにCloudflare管理ルールセットを適用するフェーズのルールセットにルールを追加します。"enabled": falseは、管理されたルールセット内のすべてのルールを無効にするルールセットレベルのオーバーライドを定義します。"categories": [{"category": "joomla", "action": "block", "enabled": true}]は、Joomlaルールを有効にし、そのアクションをblockに設定するタグレベルのオーバーライドを定義します。
例: アカウントレベルでカテゴリオーバーライドを使用してJoomlaルールのみを有効にする
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 '{ "rules": [ { "action": "execute", "expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "enabled": false, "categories": [ { "category": "joomla", "action": "block", "enabled": true } ] } } } ]}'"id": "<MANAGED_RULESET_ID>"は、example.comへのリクエストにCloudflare管理ルールセットを適用するフェーズのルールセットにルールを追加します。"enabled": falseは、管理されたルールセット内のすべてのルールを無効にするルールセットレベルのオーバーライドを定義します。"categories": [{"category": "joomla", "action": "block", "enabled": true}]は、Joomlaルールを有効にし、そのアクションをblockに設定するタグレベルのオーバーライドを定義します。
ルールに複数のカテゴリオーバーライドを追加することができます。
この例では、PUTリクエストを使用して、http_request_firewall_managedフェーズで管理されたルールセット(<MANAGED_RULESET_ID>)を実行するルールに2つのオーバーライドを追加します。name、kind、およびphaseフィールドは不変であるため、リクエストから省略されています。
例: ゾーンレベルで複数のカテゴリオーバーライドを追加する
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 '{ "rules": [ { "action": "execute", "expression": "true", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "enabled": false, "categories": [ { "category": "joomla", "action": "log", "enabled": true }, { "category": "wordpress", "enabled": false } ] } } } ]}'例: アカウントレベルで複数のカテゴリオーバーライドを追加する
curl --request PUT \https://api.cloudflare.com/client/v4/account/{account_id}/rulesets/phases/http_request_firewall_managed/entrypoint \--header "Authorization: Bearer <API_TOKEN>" \--header "Content-Type: application/json" \--data '{ "rules": [ { "action": "execute", "expression": "cf.zone.name eq \"example.com\" and cf.zone.plan eq \"ENT\"", "action_parameters": { "id": "<MANAGED_RULESET_ID>", "overrides": { "enabled": false, "categories": [ { "category": "joomla", "action": "log", "enabled": true }, { "category": "wordpress", "enabled": false } ] } } } ]}'オーバーライドの順序は、デプロイされた管理ルールセット内のルールが有効または無効になるかに影響します。リスト内で後に配置されたオーバーライドは、前のオーバーライドよりも優先されます。上記のコードにある管理ルールセットからの4つのルールは、異なるcategoryタグの組み合わせを持っています。
以下の表は、オーバーライド後のルールの状態を示しています。
| 管理ルールセット内のルール | タグ | オーバーライド後のルールの状態 |
|---|---|---|
| ManagedRule1 | drupal, dos | 無効 |
| ManagedRule2 | drupal, dos, joomla | 有効 |
| ManagedRule3 | dos, joomla, wordpress | 無効 |
| ManagedRule4 | drupal, wordpress | 無効 |
| ManagedRule5 | (タグなし) | 無効 |