Chuyển đến nội dung chính
Một chính sách firewall là một danh sách có thứ tự các quy tắc, và một quy tắc chỉ là một túi nhỏ các trường: nó khớp những cuộc gọi tool nào, trên bề mặt nào, và làm gì với chúng. Khi bạn cần đọc một quy tắc ai đó viết — hoặc suy luận chính xác về một cái bạn đang xây — bạn muốn danh sách trường ở một nơi. Đó là trang này. Bạn soạn các quy tắc trong trình chỉnh sửa quy tắc của console (ghi yêu cầu Developer+); trình chỉnh sửa viết các trường có cấu trúc bên dưới. Trang này là bản đồ cấp-trường; engine so khớp sâu nằm trong Quy tắc Firewall.

1. Schema quy tắc firewall trong nháy mắt

Mỗi quy tắc mang cùng các trường. Chỉ verdict luôn bắt buộc — mọi thứ khác thu hẹp cái mà quy tắc khớp hoặc cấu hình verdict đã chọn, và một bộ khớp vắng mặt là đúng một cách rỗng.
TrườngMục đích
priorityThứ tự đánh giá — thấp hơn chạy trước.
verdictHành động khi quy tắc khớp (bắt buộc).
stageBề mặt để thu hẹp vào; trống = tất cả.
tool_name_globGlob trên tên tool.
args_match_jsonPredicate argument JSONPath, dưới dạng một chuỗi mã hóa JSON.
egress_jsonDanh sách allow-deny host / CIDR (quy tắc egress), dưới dạng một chuỗi mã hóa JSON.
sanitize_jsonCấu hình che (khi verdict = sanitize), dưới dạng một chuỗi mã hóa JSON.
cap_cost_centsTrần chi-phí-lần-chạy tính bằng cents USD (khi verdict = cap_cost).
sequence_jsonPredicate chuỗi nhiều-bước có thứ tự (quy tắc chuỗi), dưới dạng một chuỗi mã hóa JSON.
label / notesTên con người và lý do — hiển thị trong events, bị engine bỏ qua.
Một quy tắc kích hoạt khi tất cả các bộ khớp được khai báo của nó đúng cùng lúc — stage khớp (hoặc trống), tool glob khớp, các mệnh đề argument khớp (hoặc vắng mặt), và phạm vi egress khớp (chỉ quy tắc egress). Engine duyệt các quy tắc theo thứ tự ưu tiên và match đầu tiên thắng; nếu không gì khớp, default_verdict của chính sách áp dụng.

2. priority — thứ tự đánh giá

Một số nguyên thứ tự. Thấp hơn chạy trước; hai quy tắc cùng priority phân giải hòa theo rule id (thứ tự chèn). Đặt các khoét-ra cụ thể của bạn trên các bắt-tất-cả rộng — một allow cho một tool đáng tin ở priority 10 thắng một deny * ở priority 100.
Để khoảng trống (10, 20, 30) để bạn có thể chèn một quy tắc mới giữa hai cái có sẵn sau này mà không đánh-số-lại cả chính sách. Xem Ưu tiên quy tắc để biết chiến lược sắp thứ tự.

3. verdict — hành động

Trường bắt buộc duy nhất. Khi một quy tắc khớp, verdict của nó quyết định điều gì xảy ra với cuộc gọi:
VerdictHiệu ứng
allowCho cuộc gọi qua, có ghi log.
auditAllow và ghi lại để xem xét — default_verdict thông thường.
denyBlock cuộc gọi.
sanitizeChe các chuỗi con đã khớp khỏi đối số tool, rồi chuyển tiếp.
pending_approvalGiữ cuộc gọi chờ một người duyệt.
cap_costDeny một khi chi tiêu tích lũy của một lần chạy agent vượt một cap.
Một deny trả về HTTP 400 firewall_blocked trên bề mặt inbound, hoặc một lỗi tool trên bề mặt mcp. Một cuộc gọi được giữ trả về HTTP 400 firewall_approval_pending với một id mà agent poll trên đó. Trong shadow mode mọi verdict thực thi bị hạ cấp thành audit và lý do được thêm tiền tố [shadow] would …. Xem Verdict để biết toàn bộ bảng và các hình dạng block.

4. stage — bề mặt thực thi

Ghim quy tắc vào một trong các bề mặt của firewall. Để trống và quy tắc áp dụng cho mọi bề mặt:
Các tool mà một agent quảng bá tới mô hình trên request. Block một tool nguy hiểm trước khi mô hình kịp chọn nó.
Các tool_calls mà mô hình phát ra trong câu trả lời của nó.
Một tools/call được định tuyến qua Firewall MCP gateway.
Một host / IP / CIDR đi ra ngoài mà một tool với tới — bề mặt SSRF và rò-rỉ-dữ-liệu.
Một số cặp verdict + stage bị từ chối khi lưu vì verdict không thể kích hoạt ở đó: cap_cost là một trần chi-phí-lần-chạy tiền-dispatch, trơ trên responseegress; pending_approval chỉ giữ ở inbound, nên một ghim response/egress tường minh bị từ chối. Trình chỉnh sửa ẩn các tổ hợp này; API từ chối chúng. Xem Stage.

5. tool_name_glob — tool nào

Một glob nhỏ, phân biệt hoa-thường trên tên tool — shell.* cho cả một họ, *.delete cho một động từ trên nhiều server, http_fetch cho một tool chính xác. Trống hoặc * khớp mọi tool. Một glob tên skill tùy chọn (cùng ngữ pháp) AND một điều kiện thứ hai trên skill sở hữu, nên bạn có thể tin một tool từ một skill tích-hợp và quản trị nó từ một skill community. Toàn bộ ngữ pháp — tiền tố, hậu tố, trung tố, chính xác, và các biên hay làm người ta vấp — là tham chiếu riêng của nó: Cú pháp mẫu glob.

6. args_match_json — với đối số gì

Glob trả lời tool nào; args_match_json trả lời với đối số gì — sự khác biệt giữa “block shell.exec” và “block shell.exec chỉ khi lệnh là rm -rf.” Giá trị của nó là một chuỗi mã hóa JSON mang một tập mệnh đề JSONPath, tất cả được AND. Khi giải mã, đối tượng mệnh đề trông như:
{
  "clauses": [
    { "path": "$.command",    "op": "regex",      "value": "rm -rf|drop table" },
    { "path": "$.connection", "op": "in",         "value": ["prod", "replica"] },
    { "path": "$.ip",         "op": "cidr_match", "value": "10.0.0.0/8" }
  ]
}
Trong một thân request, trường này mang đối tượng đó dưới dạng một chuỗi escape, vd: "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf\"}]}". Các toán tử là eq, contains, regex, in, cidr_match, gt, và lt. Một args_match_json vắng mặt là đúng một cách rỗng — quy tắc khớp chỉ trên glob. Toàn bộ ngôn ngữ predicate, cú pháp path, và hành vi fail-closed của một mệnh đề hỏng nằm trong Kiểm tra đối sốargument cookbook.

7. egress_json — đích đến nào

Dùng trên bề mặt egress: một chuỗi mã hóa JSON giữ một danh sách allow-and-deny host / CIDR khớp với một đích đến đi ra ngoài mà một tool với tới. Khi giải mã, đối tượng trông như:
{
  "deny":  ["169.254.169.254", "10.0.0.0/8"],
  "allow": ["api.openai.com"]
}
Các mục khớp như một CIDR, một IP literal, hoặc một hostname không-phân-biệt- hoa-thường. Cực tính theo verdict — với một verdict thực thi, danh sách deny định nghĩa cái bị block và allow khoét các ngoại lệ ra khỏi nó.
Template firewall Baseline ship một quy tắc deny egress với một danh sách deny SSRF / cloud-metadata làm-sẵn (IP metadata 169.254.169.254, các dải RFC-1918, loopback, link-local, và metadata.google.internal), nên bạn không phải soạn-tay những cái đó. Thêm các đích đến của riêng bạn lên trên cho bất cứ thứ gì khác bạn muốn quản trị. Xem Kiểm soát egress để biết toàn bộ công thức và Rò rỉ dữ liệu để biết tại sao nó quan trọng.

8. sanitize_json — che đối số

Dùng khi verdict = sanitize: một chuỗi mã hóa JSON nêu tên các preset / regex tùy chỉnh nào che các chuỗi con đã khớp khỏi đối số tool trước khi cuộc gọi đã làm sạch được chuyển tiếp — hữu ích để bóc một secret hoặc một giá trị PII mà một agent thả vào một đối số mà không block cả hành động. Khi giải mã, đối tượng trông như:
{ "presets": ["email", "ssn_us"], "custom": ["foo-\\d+"] }
Sanitize chỉ che đối số — không bao giờ nội dung mà một tool trả về. Một quy tắc sanitize phải nêu tên ít nhất một preset hoặc mẫu custom (một sanitizer trống bị từ chối). Trên bề mặt inbound không có đối số tại thời điểm gọi để che, nên một verdict sanitize ở đó leo thang thành một deny.
Xem Sanitize phản hồi để biết thư viện preset và các hình dạng che.

9. cap_cost_cents — một trần chi tiêu

Dùng khi verdict = cap_cost: một trần chi-phí-lần-chạy theo-từng-quy-tắc, một số nguyên tính bằng cents USD. Khi quy tắc khớp, cuộc gọi bị deny một khi chi tiêu tích lũy của lần chạy agent vượt cap — một cầu dao mạch cho một vòng lặp chạy hoang, phân giải về allow hoặc deny trong events. Cap phải tường minh và không âm, và quy tắc không thể ghim vào response hoặc egress (nơi verdict trơ). Toàn bộ hành vi trong Cap cost.

10. Một quy tắc hoàn chỉnh

Ghép các trường lại — deny shell.exec, nhưng chỉ khi lệnh trông có vẻ phá hủy, thu hẹp vào các cuộc gọi tool được phát ra của mô hình:
{
  "priority": 10,
  "label": "block destructive shell",
  "stage": "response",
  "tool_name_glob": "shell.exec",
  "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf|mkfs|:\\\\(\\\\)\\\\{\"}]}",
  "verdict": "deny",
  "notes": "fork bombs and recursive deletes only — plain shell.exec audits"
}
Stage khớp bề mặt response, glob chọn shell.exec, mệnh đề duy nhất thu hẹp xuống một lệnh phá hủy, và verdict deny. Bất kỳ shell.exec nào mà lệnh không khớp regex rơi xuống quy tắc kế tiếp hoặc mặc định của chính sách. Gắn một key vào chính sách (firewall_policy_id trên key) và nó live trên cuộc gọi kế tiếp — không redeploy.
Xác nhận một quy tắc kích hoạt trên đúng cái bạn mong đợi trước khi bạn phụ thuộc vào nó: Test quy tắc chạy thử một chính sách trên một cuộc gọi tool mẫu và trả về verdict, quy tắc đã khớp, và lý do mà không dispatch gì.

11. Các trường kết hợp ra sao

Một verdict. Mọi thứ khác là tùy chọn: một stage trống khớp mọi bề mặt, một tool_name_glob trống (hoặc *) khớp mọi tool, và một args_match_json vắng mặt khớp bất kỳ đối số. Một { "verdict": "audit" } trần là một bắt-tất-cả hợp lệ.
Chúng AND. Một quy tắc kích hoạt chỉ khi stage, tool glob, skill glob, các mệnh đề argument, và phạm vi egress của nó tất cả đúng. Để biểu đạt OR, viết các quy tắc riêng.
sanitize_json chỉ được đọc cho verdict sanitize; cap_cost_cents chỉ cho cap_cost; egress_json chỉ trên bề mặt egress. Console kiểm tra các cặp này khi lưu, nên một quy tắc hiển thị một hành vi nhưng không bao giờ có thể thực thi nó thì không thể được lưu.
priority thấp hơn thắng (hòa phân giải theo rule id) — match đầu tiên thắng, và việc đánh giá dừng ở đó. Xem Ưu tiên quy tắc.

Liên quan

Tạo một chính sách

Soạn chính sách đầu tiên của bạn và gắn một key.

Cú pháp glob

Toàn bộ ngữ pháp glob tên tool.

Verdict

Mọi verdict và một block trông như thế nào.

Kiểm tra đối số

Các mệnh đề argument JSONPath chuyên sâu.

Quản lý chính sách

Chỉnh sửa, version, và revert chính sách.

Quy tắc Firewall

Tham chiếu engine so khớp đầy đủ.
Mới với mặt phẳng hành động? Bắt đầu ở tổng quan Firewall, hoặc xem cách nó ghép với sàng lọc văn bản trong Guardrails vs Firewall.