1. El esquema de regla del firewall de un vistazo
Cada regla lleva los mismos campos. Soloverdict es siempre requerido —
todo lo demás estrecha qué coincide la regla o configura el veredicto
elegido, y un coincidente ausente es vacuamente verdadero.
| Campo | Propósito |
|---|---|
priority | Orden de evaluación — el más bajo se ejecuta primero. |
verdict | La acción cuando la regla coincide (requerido). |
stage | La superficie a la que acotar; vacío = todas. |
tool_name_glob | Glob sobre el nombre de la herramienta. |
args_match_json | Predicado de argumentos JSONPath, como string codificado en JSON. |
egress_json | Lista de permitidos-denegados de host / CIDR (reglas de egress), como string codificado en JSON. |
sanitize_json | Configuración de redacción (cuando verdict = sanitize), como string codificado en JSON. |
cap_cost_cents | Techo de coste de ejecución en centavos de USD (cuando verdict = cap_cost). |
sequence_json | Predicado de cadena de varios pasos ordenada (reglas de secuencia), como string codificado en JSON. |
label / notes | Nombre humano y justificación — mostrados en eventos, ignorados por el motor. |
default_verdict de la política.
2. priority — orden de evaluación
Un ordinal entero. El más bajo se ejecuta primero; dos reglas con la misma
prioridad rompen el empate por id de regla (orden de inserción). Pon tus
excepciones específicas por encima de tus capturadores amplios — un allow
para una herramienta confiable en priority 10 supera un deny * en priority
100.
3. verdict — la acción
El único campo requerido. Cuando una regla coincide, su veredicto decide qué le
pasa a la llamada:
| Veredicto | Efecto |
|---|---|
allow | Deja pasar la llamada, registrada. |
audit | Permite y registra para revisión — el default_verdict habitual. |
deny | Bloquea la llamada. |
sanitize | Redacta las subcadenas coincidentes de los argumentos de la herramienta, luego reenvía. |
pending_approval | Retiene la llamada para un revisor humano. |
cap_cost | Deniega una vez que el gasto acumulado de una ejecución de agente cruza un tope. |
deny devuelve HTTP 400 firewall_blocked en la superficie inbound,
o un error de herramienta en la superficie mcp. Una llamada retenida devuelve
HTTP 400 firewall_approval_pending con un id sobre el que el agente hace
polling. En modo shadow cada veredicto de
aplicación se degrada a audit y la razón se prefija con [shadow] would ….
Ver Veredictos para la tabla completa y las
formas de bloqueo.
4. stage — la superficie de aplicación
Fija la regla a una de las superficies del firewall. Déjala vacía y la regla
aplica a todas las superficies:
inbound — definiciones de herramienta anunciadas
inbound — definiciones de herramienta anunciadas
Las herramientas que un agente anuncia al modelo en la solicitud. Bloquea
una herramienta peligrosa antes de que el modelo pueda siquiera elegirla.
response — tool_calls emitidos por el modelo
response — tool_calls emitidos por el modelo
Los
tool_calls que el modelo emite en su respuesta.mcp — despacho tools/call
mcp — despacho tools/call
Un
tools/call enrutado a través del
gateway MCP del Firewall.egress — destino saliente
egress — destino saliente
Un host / IP / CIDR saliente que una herramienta alcanza — la superficie
de SSRF y exfiltración de datos.
Algunas combinaciones de veredicto + etapa se rechazan al guardar porque el
veredicto no puede dispararse ahí:
cap_cost es un techo de coste de
ejecución previo al despacho, inerte en response y egress;
pending_approval solo retiene en inbound, así que una fijación explícita a
response/egress se rechaza. El editor oculta estas combinaciones; la API
las rechaza. Ver Etapas.5. tool_name_glob — qué herramienta
Un glob pequeño y sensible a mayúsculas sobre el nombre de la herramienta —
shell.* para toda una familia, *.delete para un verbo a través de
servidores, http_fetch para una herramienta exacta. Vacío o * coincide con
cada herramienta. Un glob de nombre de skill opcional (misma gramática)
conjuga una segunda condición sobre la skill propietaria, así que puedes
confiar en una herramienta de una skill integrada y gobernarla desde una de la
comunidad.
La gramática completa — prefijo, sufijo, infijo, exacto, y los bordes que hacen
tropezar a la gente — es su propia referencia:
Sintaxis de patrones glob.
6. args_match_json — con qué argumentos
El glob responde qué herramienta; args_match_json responde con qué
argumentos — la diferencia entre “bloquear shell.exec” y “bloquear
shell.exec solo cuando el comando es rm -rf”. Su valor es un string
codificado en JSON que lleva un conjunto de cláusulas JSONPath, todas
conjugadas con AND. Decodificado, el objeto de cláusulas se ve así:
"args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf\"}]}".
Los operadores son eq, contains, regex, in, cidr_match, gt y lt.
Un args_match_json ausente es vacuamente verdadero — la regla coincide solo
sobre el glob. El lenguaje de predicado completo, la sintaxis de path, y el
comportamiento de fallo cerrado de una cláusula rota están en
Validar argumentos y el
recetario de argumentos.
7. egress_json — qué destinos
Usado en la superficie egress: un string codificado en JSON que contiene
una lista de permitidos-y-denegados de host / CIDR coincidida contra un destino
saliente que una herramienta alcanza. Decodificado, el objeto se ve así:
deny define qué se bloquea y allow talla excepciones de
ella.
La plantilla de firewall Baseline incluye una regla de denegación de egress
con una lista de denegados de SSRF / metadatos de nube lista para usar (la IP
de metadatos
169.254.169.254, rangos RFC-1918, loopback, link-local, y
metadata.google.internal), así que no tienes que autorar esos a mano. Añade
tus propios destinos encima para cualquier otra cosa que quieras gobernar. Ver
Control de egress para la receta
completa y Exfiltración de datos para
por qué importa.8. sanitize_json — redactar argumentos
Usado cuando verdict = sanitize: un string codificado en JSON que nombra
qué presets / regex personalizados redactan las subcadenas coincidentes de los
argumentos de la herramienta antes de que la llamada limpia se reenvíe —
útil para quitar un secreto o un valor PII que un agente soltó en un argumento
sin bloquear toda la acción. Decodificado, el objeto se ve así:
9. cap_cost_cents — un techo de gasto
Usado cuando verdict = cap_cost: un techo de coste de ejecución por regla, un
entero en centavos de USD. Cuando la regla coincide, la llamada se deniega
una vez que el gasto acumulado de la ejecución del agente cruza el tope — un
interruptor de circuito para un bucle descontrolado, resolviendo a allow o
deny en los eventos. El tope debe ser explícito y no negativo, y la regla no
se puede fijar a response o egress (donde el veredicto es inerte).
Comportamiento completo en Limitar coste.
10. Una regla completa
Juntando los campos — denegarshell.exec, pero solo cuando el comando se ve
destructivo, acotado a las llamadas a herramienta emitidas por el modelo:
shell.exec, la
única cláusula estrecha a un comando destructivo, y el veredicto deniega.
Cualquier shell.exec cuyo comando no coincida con el regex cae a la
siguiente regla o al valor por defecto de la política. Adjunta una clave a la
política (firewall_policy_id en la clave) y está en vivo en la siguiente
llamada — sin redespliegue.
11. Cómo se combinan los campos
¿Qué es lo mínimo que necesita una regla válida?
¿Qué es lo mínimo que necesita una regla válida?
Un
verdict. Todo lo demás es opcional: una stage vacía coincide con
todas las superficies, un tool_name_glob vacío (o *) coincide con cada
herramienta, y un args_match_json ausente coincide con cualquier
argumento. Un { "verdict": "audit" } pelado es un capturador válido.¿Los coincidentes conjugan con AND u OR?
¿Los coincidentes conjugan con AND u OR?
Conjugan con AND. Una regla se dispara solo cuando su etapa, glob de
herramienta, glob de skill, cláusulas de argumentos y alcance de egress
todos se cumplen. Para expresar OR, escribe reglas separadas.
¿Qué campos se emparejan con qué veredicto?
¿Qué campos se emparejan con qué veredicto?
sanitize_json se lee solo para el veredicto sanitize; cap_cost_cents
solo para cap_cost; egress_json solo en la superficie egress. La
consola valida estas combinaciones al guardar, así que una regla que
muestra un comportamiento pero nunca puede aplicarlo no se puede persistir.¿Qué pasa si dos reglas coinciden?
¿Qué pasa si dos reglas coinciden?
La
priority más baja gana (empates rotos por id de regla) — gana la
primera coincidencia, y la evaluación se detiene ahí. Ver
Prioridad de reglas.Relacionado
Crear una política
Autora tu primera política y adjunta una clave.
Sintaxis glob
La gramática de glob de nombre de herramienta completa.
Veredictos
Cada veredicto y cómo se ve un bloqueo.
Validar argumentos
Cláusulas de argumentos JSONPath en profundidad.
Gestionar políticas
Edita, versiona y revierte políticas.
Reglas del Firewall
La referencia completa del motor de coincidencia.
