create-deny-rule
Create a deny rule in an existing ruleset to block specified traffic between providers and consumers. Use override deny for emergency isolation or compliance blocks that take priority over allow rules.
Instructions
Create a deny rule in an existing ruleset. Deny rules block specific traffic (processed after allow rules). Override deny rules (override_deny=true) are the HIGHEST priority — they block traffic even when allow rules exist, meaning 'this must not happen under any circumstances.' Use override deny for emergency isolation, hard compliance blocks, or active attack response — NOT for normal segmentation or ringfencing. Rule processing order: 1) Essential rules, 2) Override Deny (blocks above all), 3) Allow rules, 4) Deny rules, 5) Default action. WRITE OPERATION: changes PCE state. In clients that gate tool calls (Claude Desktop, Claude Code), this pauses for the user to approve it -- the call has not failed and must not be retried while waiting.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| consumers | Yes | Array of consumer (source) references: 'ams' for all workloads, label hrefs, key=value pairs, or 'iplist:<name>' | |
| providers | Yes | Array of provider (destination) references: 'ams' for all workloads, label hrefs, key=value pairs, or 'iplist:<name>' | |
| ruleset_href | No | Href of the ruleset to add the deny rule to (e.g., /orgs/1/sec_policy/draft/rule_sets/123) | |
| ruleset_name | No | Name of the ruleset to add the deny rule to (alternative to ruleset_href) | |
| override_deny | No | If true, creates an override deny rule — the highest priority deny that blocks traffic even if allow rules exist. Means 'this must not happen under any circumstances.' Use for emergency isolation, hard compliance blocks (e.g., PCI zones), or active attack response. If false (default), creates a regular deny rule (processed after allow rules). | |
| ingress_services | Yes | Services this rule covers. Each entry is EITHER an inline port ({'port': 443, 'proto': 'tcp'}), OR a service object by href ({'href': '/orgs/1/sec_policy/draft/services/42'}), OR a service by exact name ({'service': 'All Services'}). Mixing those keys in one entry is an error. For 'any service' use {'service': 'All Services'} — an empty list is rejected by the PCE and {'port': 0} does not mean all ports. Deny rules cannot use services carrying Windows process qualifiers; write those as an allow above a broad deny. | |
| unscoped_consumers | No | Whether to allow unscoped consumers (extra-scope rule) |