跳转到主要内容

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.

  1. Add a rule to a phase entry point ruleset that executes a managed ruleset.
  2. Configure a ruleset override that disables all rules in the managed ruleset.
  3. 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": false defines 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 to example.com.
  • "enabled": false defines 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, }, ], }, }, }, ], }} />