Enable only selected rules
import { Details, APIRequest, Render } from "~/components";
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.
Zone-level example
The following PUT request uses the Update a zone entry point ruleset operation to define a configuration that executes only two rules from a managed ruleset in the http_request_firewall_managed phase.
In this example:
"id": "<MANAGED_RULESET_ID>"defines the managed ruleset to execute 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.
<APIRequest path="/zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint" method="PUT" parameters={{ ruleset_phase: "http_request_firewall_managed", }} json={{ 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, }, ], }, }, }, ], }} />
Account-level example
The following PUT request uses the Update an account entry point ruleset operation to define a configuration that executes only two rules from a managed ruleset in the http_request_firewall_managed phase.
In this example:
"id": "<MANAGED_RULESET_ID>"defines the managed ruleset to execute 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.
<APIRequest path="/accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint" method="PUT" parameters={{ ruleset_phase: "http_request_firewall_managed", }} json={{ 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, rules: [ { id: "<RULE_ID_1>", action: "block", enabled: true, }, { id: "<RULE_ID_2>", action: "log", enabled: true, }, ], }, }, }, ], }} />
谢谢你的反馈!