Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

マネージドルールセットを上書きする

最終更新 Markdown で表示Agent セットアップ

API でマネージドルールセットの動作をカスタマイズするには、デプロイ時にルールセットを上書きします。ルールセットを上書きすると、デフォルト構成の上に実行する変更を指定します。これらの変更は、ルールセットのデフォルト動作より優先されます。

たとえば、強制する前にマネージドルールセットを試すときは、各ルールのデフォルトアクションではなく、すべてを log にして実行することを検討します。そのためには、ルールセットレベルでマネージドルールセットの構成済み動作を上書きし、各ルールが log アクションを使うようにします。

Terraform を使う場合は、次のページを参照してください。

Cloudflare ダッシュボードでオーバーライドを定義するには、次のリソースを参照してください。

オーバーライドの扱い

ルールセットの上書きは、次の 3 レベルでできます。

  • ルールセットのオーバーライド は、実行するルールセット内のすべてのルールに適用されます。
  • タグのオーバーライド は、特定のタグを持つすべてのルールに適用されます。たとえば、Cloudflare Managed Ruleset をカスタマイズし、wordpress タグを持つすべてのルールを Block にするときに使います。複数のタグにオーバーライドがあり、あるルールがそれらのタグを複数持つ場合、タグオーバーライドの順序が動作を決めます。上書き対象のタグを複数持つルールには、最後のタグのオーバーライドが適用されます。
  • ルールのオーバーライド は、ルール ID で参照する、マネージドルールセット内の特定のルールに適用されます。

具体的なオーバーライドは、より一般的なものより優先されます。ルールのオーバーライドはタグのオーバーライドより優先され、タグのオーバーライドはルールセットのオーバーライドより優先されます。

マネージドルールセットにオーバーライドを適用する手順は次のとおりです。

  1. ルールセットの更新操作 のいずれかを使い、フェーズのエントリポイントルールセットを更新します。
  2. マネージドルールセットを実行するルールの action_parametersoverrides を指定します。
"action_parameters": {
  "id": "<RULESET_ID>",
  "overrides": {
    // ruleset overrides
    "property-to-modify": "value",
    "property-to-modify": "value",
    // tag overrides
    "categories": [
      {
        "category": "<TAG_NAME>",
        "property-to-modify": "value",
        "property-to-modify": "value"
      }
    ],
    // rule overrides
    "rules": [
      {
        "id": "<RULE_ID>",
        "property-to-modify": "value",
        "property-to-modify": "value"
      }
    ]
  }
}

上書きできるルールプロパティは次のとおりです。

  • "action"
  • "enabled"

一部のマネージドルールセットには追加のオーバーライド要件があるか、他のルールプロパティの上書きを許可することがあります。詳細は各 Cloudflare 製品のドキュメントを確認してください。

ルールオーバーライドの例

次の PUT リクエストは、ゾーンレベルで http_request_firewall_managed フェーズにマネージドルールセットを実行するルールを追加し、ルール <RULE_ID> を有効にしてアクションを log にするルールオーバーライドを定義します。

Required API token permissions

At least one of the following token permissions is required:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"description": "Deploy managed ruleset, enabling a specific rule with log action",
		"rules": [
				{
						"action": "execute",
						"expression": "true",
						"action_parameters": {
								"id": "<MANAGED_RULESET_ID>",
								"overrides": {
										"rules": [
												{
														"id": "<RULE_ID>",
														"enabled": true,
														"action": "log"
												}
										]
								}
						}
				}
		]
	}'

ルールセットオーバーライドの例

次の PUT リクエストは、アカウントレベルで http_request_firewall_managed フェーズにマネージドルールセットを実行するルールを追加し、(有効な)すべてのルールのアクションを log にするルールセットオーバーライドを定義します。

Required API token permissions

At least one of the following token permissions is required:
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • Transform Rules Write
  • Select Configuration Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
Update an account entry point rulesetbash
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"description": "Deploy managed ruleset for example.com, overriding the rules action to log",
		"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"
								}
						}
				}
		]
	}'

関連リソース

API でオーバーライドを設定する追加の例は オーバーライドの例 を参照してください。

役に立ちましたか?