Use rulesets and rule overrides to only enable selected rules
Use a ruleset override and a rule override in a phase entry point ruleset to execute only selected rules in a Managed Ruleset.
- Add a rule to a phase entry point ruleset that executes a Managed Ruleset.
- Configure a ruleset override that disables all rules in the Managed Ruleset.
- Configure a rule override to set an action for the rules you want to execute.
Example: Configure ruleset and rule overrides at the zone level
The following PUT request uses the Update ruleset operation at the zone level to execute only two rules from a Managed Ruleset in the http_request_firewall_managed phase.
In this example:
"id": "{managed-ruleset-id}"adds a rule to the phase entry point ruleset to execute a Managed Ruleset for requests in the specified zone ({zone-id})."enabled": falsedefines an override at the ruleset level to disable all rules in the Managed Ruleset."rules": [{"id": "{rule-id-1}", "action": "block", "enabled": true}, {"id": "{rule-id-2}", "action": "log", "enabled": true}]defines a list of overrides at the rule level to enable two individual rules.
curl -X PUT \-H "X-Auth-Email: user@cloudflare.com" \-H "X-Auth-Key: REDACTED" \
"https://api.cloudflare.com/client/v4/zones/{zone-id}/rulesets/phases/http_request_firewall_managed/entrypoint" \-d '{ "rules": [ { "action": "execute", "expression": "true", "action_parameters": { "id": "{managed-ruleset-id}", "overrides": { "enabled": false, "rules": [ { "id": "{rule-id-1}", "action": "block", "enabled": true }, { "id": "{rule-id-2}", "action": "log", "enabled": true } ] } } } ]}'
Example: Configure ruleset and rule overrides at the account level
The following PUT request uses the Update ruleset operation at the account level to execute only two rules from a Managed Ruleset in the http_request_firewall_managed phase.
In this example:
"id": "{managed-ruleset-id}"adds a rule to the phase entry point ruleset to execute a Managed Ruleset for requests addressed toexample.com."enabled": falsedefines an override at the ruleset level to disable all rules in the Managed Ruleset."rules": [{"id": "{rule-id-1}", "action": "block", "enabled": true}, {"id": "{rule-id-2}", "action": "log", "enabled": true}]defines a list of overrides at the rule level to enable two individual rules.
curl -X PUT \-H "X-Auth-Email: user@cloudflare.com" \-H "X-Auth-Key: REDACTED" \
"https://api.cloudflare.com/client/v4/accounts/{account-id}/rulesets/phases/http_request_firewall_managed/entrypoint" \-d '{ "rules": [ { "action": "execute", "expression": "cf.zone.name eq \"example.com\"", "action_parameters": { "id": "{managed-ruleset-id}", "overrides": { "enabled": false, "rules": [ { "id": "{rule-id-1}", "action": "block", "enabled": true }, { "id": "{rule-id-2}", "action": "log", "enabled": true } ] } } } ]}'