コンテンツにスキップ

Joomlaルールのみを有効にする

Rulesets APIを使用して、管理されたルールセットの実行を構成し、その動作をオーバーライドします。デフォルトでは、有効なルールは管理されたルールセットの発行者によって定義されたアクションを実行します。この例では、特定のタグを持つルールのみが有効になるようにオーバーライドを使用します。

以下の手順に従って、joomlaタグが付けられたルールのみを有効にするための管理されたルールセットの実行を構成します。

  1. ルールを追加して、管理されたルールセットを実行するフェーズエントリポイントルールセットに追加します。
  2. ルールセットオーバーライドを構成して、管理されたルールセット内のすべてのルールを無効にします。
  3. 特定のタグを持つルールのみを有効にするタグオーバーライドを構成します。

タグオーバーライドはルールセットオーバーライドよりも優先されます。指定されたタグを持つルールのみが有効になり、他のすべてのルールは無効になります。

例 1

この例では、Update ruleset操作を使用して、Joomlaルールのみが有効なフェーズにCloudflare管理ルールセットをデプロイします。namekind、およびphaseフィールドは不変であるため、リクエストから省略されています。

例: ゾーンレベルでカテゴリオーバーライドを使用してJoomlaルールのみを有効にする

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 '{
"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ルールのみを有効にする

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 '{
"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に設定するタグレベルのオーバーライドを定義します。

ルールに複数のカテゴリオーバーライドを追加することができます。

例 2

この例では、PUTリクエストを使用して、http_request_firewall_managedフェーズで管理されたルールセット(<MANAGED_RULESET_ID>)を実行するルールに2つのオーバーライドを追加します。namekind、およびphaseフィールドは不変であるため、リクエストから省略されています。

例: ゾーンレベルで複数のカテゴリオーバーライドを追加する

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 '{
"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
}
]
}
}
}
]
}'

例: アカウントレベルで複数のカテゴリオーバーライドを追加する

Terminal window
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タグの組み合わせを持っています。

以下の表は、オーバーライド後のルールの状態を示しています。

管理ルールセット内のルールタグオーバーライド後のルールの状態
ManagedRule1drupal, dos無効
ManagedRule2drupal, dos, joomla有効
ManagedRule3dos, joomla, wordpress無効
ManagedRule4drupal, wordpress無効
ManagedRule5(タグなし)無効