Chuyển đến nội dung chính
Một MCP server đã đăng ký quảng bá bất cứ tool nào nó muốn — và một agent sẽ vui vẻ gọi bất kỳ cái nào trong số đó. Tư thế an toàn là điều ngược lại: quyết định danh sách ngắn các tool bạn thực sự cần, cho phép chính xác những cái đó, và từ chối phần còn lại. Đó là một allow-list, và trên OrcaRouter bạn xây dựng nó từ các quy tắc tool_name_glob được đánh giá trên bề mặt mcp. Mọi tools/call băng qua MCP gateway được chạy qua chính sách firewall của bạn trước khi nó đến được server thật. Nên allow-list không phải là tư vấn — một cuộc gọi tới một tool bạn không cho phép không bao giờ được dispatch.
Việc chỉnh sửa chính sách là một hành động console. Các route /api/workspace/firewall/* xác thực bằng session / access token của bạn, không phải một relay key sk-orca-…. Việc ghi các quy tắc yêu cầu vai trò Developer+; bất kỳ thành viên workspace nào (xuống tới Viewer) cũng có thể đọc các chính sách và feed các tool đã khám phá.

1. Tại sao một allow-list default-deny cho các tool mcp an toàn

Một deny-list — “block các tool nguy hiểm” — thất bại ngay khoảnh khắc một server thêm một tool mới, đổi tên một cái, hoặc bạn kết nối một server thứ hai. Tập các tool nguy hiểm là vô hạn; tập bạn định dùng thì nhỏ và đã biết. Một allow-list đảo ngược mặc định để cái chưa biết bị từ chối, không được nhận vào:
  • Các tool mới bị từ chối theo mặc định. Một server mọc thêm một tool delete_repo sau khi bạn kết nối nó không thể được gọi cho đến khi bạn thêm nó vào allow-list.
  • Phạm vi theo từng server. Namespace <server>.<tool> cho phép bạn cho phép github.create_issue trong khi từ chối mọi thứ khác dưới github.*.
  • Một điểm nghẽn. Cùng một chính sách kiểm soát server đóng gói sẵn và mọi server BYO phía sau gateway, nên có một nơi để đọc allow-list.
Allow-listing ghép tự nhiên với observe mode: bật nó trước, để lưu lượng thật điền vào feed Discovered Tools, rồi thăng các tool bạn thấy thành các quy tắc allow tường minh và lật mặc định sang deny.

2. Hai mảnh ghép

Một allow-list là một default_verdict cộng với một tập quy tắc có thứ tự.

default_verdict: deny

Phương án dự phòng của chính sách cho bất kỳ tools/call nào không quy tắc nào khớp. Đặt nó là deny và bất cứ thứ gì bạn không cho phép tường minh đều bị block. (Nó cũng chấp nhận allowauditaudit là mặc định.)

các quy tắc allow

Một quy tắc cho mỗi tool (hoặc mỗi glob). Mỗi cái mang một tool_name_glob và một verdict allow. Một tools/call khớp glob giải thành allow và dispatch; mọi thứ khác rơi xuống deny mặc định.
Glob được khớp đối với tên tool có namespace — github.create_issue, shell.exec. * khớp bất kỳ tool nào (dùng nó tiết kiệm; một quy tắc allow với * hoàn tác toàn bộ allow-list). Một <server>. đứng đầu thu hẹp glob về một server.

3. Một ví dụ cụ thể

Bạn đã kết nối một server github và bạn chỉ muốn các agent đọcmở issue — không bao giờ xóa hay quản trị bất cứ thứ gì. Trong console, mở Firewall → Policies, đặt verdict mặc định của chính sách thành deny, và thêm hai quy tắc allow:
Thứ tựtool_name_globVerdict
1github.create_issueallow
2github.list_issuesallow
Đó là toàn bộ allow-list. Với mặc định ở deny:
  • github.create_issue → khớp quy tắc 1 → allow, dispatch.
  • github.delete_repo → không khớp gì → deny theo mặc định.
Một cuộc gọi MCP bị từ chối quay lại mô hình như một lỗi tool (firewall deny: …) — cùng hình dạng mà bất kỳ tool đang thất bại nào trả về — để agent có thể thích nghi thay vì crash. (Trên bề mặt inbound, một deny thay vào đó là một HTTP 400 với mã lỗi firewall_blocked.)
Các quy tắc có thứ tự và được đánh giá từ trên xuống. Đừng đặt một allow tool_name_glob: github.* rộng phía trên các quy tắc deny cụ thể của bạn — khớp đầu tiên thắng và wildcard sẽ nhận chính những tool bạn định loại trừ. Khi nghi ngờ, giữ allow-list hẹp và dựa vào deny mặc định thay vì các wildcard.

4. Siết chặt với các argument

Một tên tool trên allow-list vẫn có thể được gọi với các argument xấu. Thu hẹp thêm bằng cách thêm một mệnh đề args_match (JSONPath + một toán tử như eq, contains, regex, in, hoặc cidr_match) vào quy tắc, hoặc bằng cách xếp một quy tắc deny phía trên allow cho một hình dạng argument cụ thể — ví dụ, cho phép github.create_issue nhưng deny nó khi repo đích không nằm trên một danh sách đã chấp thuận. Xem tham chiếu quy tắc firewall để biết toàn bộ tập toán tử.
sanitize redact các argument của một lời gọi tool trước khi chuyển tiếp — nó không bao giờ chạm cái mà một tool trả về. Để cắt tỉa nội dung trả về, đó là một biện pháp kiểm soát khác; xem sanitize tool output.

5. Triển khai nó một cách an toàn

Lật một default-deny toàn-server trong production và bạn có nguy cơ làm hỏng một agent lặng lẽ phụ thuộc vào một tool bạn quên. Hai cài đặt làm giảm rủi ro:
Một cờ theo từng chính sách hạ cấp các verdict enforcing xuống audit. Deny mặc định và các quy tắc deny của bạn ghi log [shadow] would deny … thay vì block, nên bạn có thể xác nhận allow-list đối với lưu lượng thật trước khi nó cắn. Đọc thêm trong enforcement modes.
Một cài đặt workspace ghi log mọi cuộc gọi chưa được bao trùm như một khoảng trống trong feed Discovered Tools. Chạy nó trước khi bạn viết allow-list để biết chính xác các tool nào mà các agent của bạn gọi, rồi thăng mỗi cái thành một quy tắc allow tường minh.
Một khi shadow log sạch — không một cuộc gọi hợp lệ nào lẽ ra bị từ chối — xóa shadow_mode và allow-list thực thi.

6. Xác minh nó hoạt động

Sau khi thực thi, xác nhận các tool bị từ chối thực sự bị khước từ:
  • Dry-run một tools/call đối với chính sách (Developer+) để thấy verdict và quy tắc nào — hoặc mặc định — đã tạo ra nó, mà không gửi lưu lượng thật. Truyền một tên tool, bề mặt, và sample args; engine đánh giá chúng và trả về vết verdict mà không ghi lại một sự kiện.
  • Theo dõi các sự kiện. Mỗi cuộc gọi bị block ghi lại một sự kiện firewall mà một Developer+ có thể đọc trong console; trang các sự kiện audit đề cập feed và các trường của nó.
Không muốn tự soạn từng quy tắc bằng tay? Preset autonomy tight viết một chính sách default-deny cho bạn (cộng với các quy tắc deny cho các tool shell phá hủy và các tên tool hình dạng fetch), rồi bạn thêm lại các tool cụ thể bạn cần. Xem enforcement modes để biết mỗi autonomy level cài đặt gì.

Liên quan

Kết nối một MCP server

Đăng ký một server trước khi bạn có thể allow-list các tool của nó.

Firewall: các MCP server

Hành vi runtime của gateway và các verdict theo từng cuộc gọi.

Tham chiếu quy tắc Firewall

Toàn bộ rule DSL — globs, args_match, egress, sanitize.

Các lời gọi tool nguy hiểm

Mối đe dọa mà một allow-list được xây dựng để kiềm chế.

Giới hạn egress

Kiểm soát nơi một tool được cho phép có thể vươn tới.

Guardrails vs. firewall

Khi nào với tới chính sách nội dung so với chính sách tool.