API でマネージドルールセットの動作をカスタマイズするには、デプロイ時にルールセットを上書きします。ルールセットを上書きすると、デフォルト構成の上に実行する変更を指定します。これらの変更は、ルールセットのデフォルト動作より優先されます。
たとえば、強制する前にマネージドルールセットを試すときは、各ルールのデフォルトアクションではなく、すべてを log にして実行することを検討します。そのためには、ルールセットレベルでマネージドルールセットの構成済み動作を上書きし、各ルールが log アクションを使うようにします。
Terraform を使う場合は、次のページを参照してください。
Cloudflare ダッシュボードでオーバーライドを定義するには、次のリソースを参照してください。
- ダッシュボードで WAF マネージドルールセットを設定する
- ダッシュボードで HTTP DDoS Attack Protection を設定する
- ダッシュボードで Network-layer DDoS Attack Protection を設定する
ルールセットの上書きは、次の 3 レベルでできます。
- ルールセットのオーバーライド は、実行するルールセット内のすべてのルールに適用されます。
- タグのオーバーライド は、特定のタグを持つすべてのルールに適用されます。たとえば、Cloudflare Managed Ruleset をカスタマイズし、
wordpressタグを持つすべてのルールを Block にするときに使います。複数のタグにオーバーライドがあり、あるルールがそれらのタグを複数持つ場合、タグオーバーライドの順序が動作を決めます。上書き対象のタグを複数持つルールには、最後のタグのオーバーライドが適用されます。 - ルールのオーバーライド は、ルール ID で参照する、マネージドルールセット内の特定のルールに適用されます。
具体的なオーバーライドは、より一般的なものより優先されます。ルールのオーバーライドはタグのオーバーライドより優先され、タグのオーバーライドはルールセットのオーバーライドより優先されます。
マネージドルールセットにオーバーライドを適用する手順は次のとおりです。
- ルールセットの更新操作 のいずれかを使い、フェーズのエントリポイントルールセットを更新します。
- マネージドルールセットを実行するルールの
action_parametersにoverridesを指定します。
"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 WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
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 WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteTransform Rules WriteSelect Configuration WriteAccount WAF WriteAccount Rulesets WriteLogs Write
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 でオーバーライドを設定する追加の例は オーバーライドの例 を参照してください。