1. O schema de regra do firewall num relance
Cada regra carrega os mesmos campos. Apenasverdict é sempre obrigatório —
todo o resto restringe o que a regra corresponde ou configura o veredito
escolhido, e um matcher ausente é vacuamente verdadeiro.
| Campo | Propósito |
|---|---|
priority | Ordem de avaliação — menor roda primeiro. |
verdict | A ação quando a regra corresponde (obrigatório). |
stage | A superfície a que limitar; vazio = todas. |
tool_name_glob | Glob no nome da ferramenta. |
args_match_json | Predicado de argumento JSONPath, como uma string codificada em JSON. |
egress_json | Lista de allow-deny de host / CIDR (regras de egress), como uma string codificada em JSON. |
sanitize_json | Config de redação (quando verdict = sanitize), como uma string codificada em JSON. |
cap_cost_cents | Teto de custo de run em centavos de USD (quando verdict = cap_cost). |
sequence_json | Predicado de cadeia ordenada de múltiplos passos (regras de sequência), como uma string codificada em JSON. |
label / notes | Nome humano e justificativa — mostrados em eventos, ignorados pelo motor. |
default_verdict da política se aplica.
2. priority — ordem de avaliação
Um ordinal inteiro. Menor roda primeiro; duas regras com a mesma prioridade
quebram o empate pelo id da regra (ordem de inserção). Ponha suas exceções
específicas acima dos seus catch-alls amplos — um allow para uma ferramenta
confiável na prioridade 10 vence um deny * na prioridade 100.
3. verdict — a ação
O único campo obrigatório. Quando uma regra corresponde, seu veredito decide o
que acontece com a chamada:
| Veredito | Efeito |
|---|---|
allow | Deixa a chamada passar, registrada. |
audit | Permite e registra para revisão — o default_verdict usual. |
deny | Bloqueia a chamada. |
sanitize | Redige substrings correspondentes dos argumentos da ferramenta, depois encaminha. |
pending_approval | Retém a chamada para um revisor humano. |
cap_cost | Nega assim que o gasto acumulado de uma run de agente cruza um limite. |
deny retorna HTTP 400 firewall_blocked na superfície inbound, ou
um erro de ferramenta na superfície mcp. Uma chamada retida retorna HTTP
400 firewall_approval_pending com um id que o agente consulta. No
shadow mode cada veredito de enforcement é
rebaixado para audit e o motivo recebe o prefixo [shadow] would …. Veja
Vereditos para a tabela completa e os
formatos de block.
4. stage — a superfície de enforcement
Fixa a regra a uma das superfícies do firewall. Deixe-o vazio e a regra se
aplica a todas as superfícies:
inbound — definições de ferramenta anunciadas
inbound — definições de ferramenta anunciadas
As ferramentas que um agente anuncia ao modelo na requisição. Bloqueie uma
ferramenta perigosa antes que o modelo sequer possa escolhê-la.
response — tool_calls emitidos pelo modelo
response — tool_calls emitidos pelo modelo
Os
tool_calls que o modelo emite em sua resposta.mcp — dispatch de tools/call
mcp — dispatch de tools/call
Um
tools/call roteado através do
gateway MCP do Firewall.egress — destino outbound
egress — destino outbound
Um host / IP / CIDR outbound que uma ferramenta alcança — a superfície de
SSRF e exfiltração de dados.
Algumas combinações de veredito + stage são rejeitadas ao salvar porque o
veredito não pode disparar ali:
cap_cost é um teto de custo de run
pré-dispatch, inerte em response e egress; pending_approval só retém em
inbound, então um pin explícito de response/egress é recusado. O editor
oculta essas combinações; a API as rejeita. Veja
Stages.5. tool_name_glob — qual ferramenta
Um glob pequeno e sensível a maiúsculas no nome da ferramenta — shell.* para
uma família inteira, *.delete para um verbo entre servidores, http_fetch
para uma ferramenta exata. Vazio ou * corresponde a cada ferramenta. Um glob
de nome de skill opcional (mesma gramática) faz AND de uma segunda condição na
skill proprietária, de modo que você pode confiar em uma ferramenta de uma
skill embutida e limitá-la a partir de uma da comunidade.
A gramática completa — prefixo, sufixo, infixo, exato, e os extremos que
confundem as pessoas — é sua própria referência:
Sintaxe de padrão glob.
6. args_match_json — com quais argumentos
O glob responde qual ferramenta; args_match_json responde com quais
argumentos — a diferença entre “bloquear shell.exec” e “bloquear
shell.exec só quando o comando for rm -rf”. Seu valor é uma string
codificada em JSON carregando um conjunto de cláusulas JSONPath, todas
AND-adas. Decodificado, o objeto de cláusula se parece com:
"args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf\"}]}".
Os operadores são eq, contains, regex, in, cidr_match, gt e lt.
Um args_match_json ausente é vacuamente verdadeiro — a regra corresponde no
glob sozinho. A linguagem de predicado completa, a sintaxe de path, e o
comportamento fail-closed de uma cláusula quebrada estão em
Validar argumentos e no
cookbook de argumentos.
7. egress_json — quais destinos
Usado na superfície egress: uma string codificada em JSON contendo uma
lista de allow-and-deny de host / CIDR correspondida contra um destino outbound
que uma ferramenta alcança. Decodificado, o objeto se parece com:
deny define o que é bloqueado e allow carva exceções
dela.
O template de firewall Baseline entrega uma regra de deny de egress com uma
denylist de SSRF / cloud-metadata pronta (o IP de metadata
169.254.169.254, faixas RFC-1918, loopback, link-local, e
metadata.google.internal), de modo que você não precisa criá-las à mão.
Adicione seus próprios destinos por cima para qualquer outra coisa que queira
limitar. Veja
Controle de egress para a receita
completa e
Exfiltração de dados para por que
importa.8. sanitize_json — redigir argumentos
Usado quando verdict = sanitize: uma string codificada em JSON nomeando
quais presets / regexes custom redigem substrings correspondentes dos
argumentos da ferramenta antes de a chamada limpa ser encaminhada — útil
para remover um segredo ou um valor de PII que um agente colocou em um argumento
sem bloquear a ação inteira. Decodificado, o objeto se parece com:
9. cap_cost_cents — um teto de gasto
Usado quando verdict = cap_cost: um teto de custo de run por regra, um inteiro
em centavos de USD. Quando a regra corresponde, a chamada é negada assim que
o gasto acumulado da run de agente cruza o limite — um disjuntor para um loop
descontrolado, resolvendo para allow ou deny em eventos. O limite deve ser
explícito e não-negativo, e a regra não pode ser fixada a response ou egress
(onde o veredito é inerte). Comportamento completo em
Limitar custo.
10. Uma regra completa
Juntando os campos — negarshell.exec, mas só quando o comando parecer
destrutivo, com escopo às chamadas de ferramenta emitidas pelo modelo:
shell.exec, a
cláusula única restringe a um comando destrutivo, e o veredito nega. Qualquer
shell.exec cujo comando não corresponda ao regex cai para a próxima regra ou
o padrão da política. Vincule uma chave à política (firewall_policy_id na
chave) e ela está ao vivo na próxima chamada — sem redeploy.
11. Como os campos se combinam
Qual é o mínimo que uma regra válida precisa?
Qual é o mínimo que uma regra válida precisa?
Um
verdict. Todo o resto é opcional: um stage vazio corresponde a todas
as superfícies, um tool_name_glob vazio (ou *) corresponde a cada
ferramenta, e um args_match_json ausente corresponde a quaisquer
argumentos. Um { "verdict": "audit" } puro é um catch-all válido.Os matchers fazem AND ou OR?
Os matchers fazem AND ou OR?
Eles fazem AND. Uma regra dispara apenas quando seu stage, glob de
ferramenta, glob de skill, cláusulas de argumento, e escopo de egress
todos se sustentam. Para expressar OR, escreva regras separadas.
Quais campos se pareiam com qual veredito?
Quais campos se pareiam com qual veredito?
sanitize_json é lido apenas para o veredito sanitize; cap_cost_cents
apenas para cap_cost; egress_json apenas na superfície egress. O
console valida esses pareamentos ao salvar, de modo que uma regra que exibe
um comportamento mas nunca pode aplicá-lo não pode ser persistida.E se duas regras correspondem?
E se duas regras correspondem?
A
priority menor vence (empates quebrados pelo id da regra) — primeira
correspondência vence, e a avaliação para ali. Veja
Prioridade de regra.Relacionado
Crie uma política
Crie sua primeira política e vincule uma chave.
Sintaxe de glob
A gramática completa de glob de nome de ferramenta.
Vereditos
Cada veredito e como é um block.
Validar argumentos
Cláusulas de argumento JSONPath em profundidade.
Gerenciar políticas
Edite, versione e reverta políticas.
Regras de Firewall
A referência completa do motor de correspondência.
