inbound サーフェス上の egress 許可リストにはチェックする宛先がなく、
inbound 上の引数句にはまだ呼び出し時の引数がありません。
このページは 4 つのエージェントファイアウォールステージへの焦点を絞ったガイドです:
各サーフェスが何を観察するか、いつルールがそれをターゲットにすべきか、そして同じ意図が
異なるステージでどう表現されるかという 1 つの具体的な方法です。完全なルール語彙に
ついてはファイアウォールルールを、その周りのポリシー
モデルについてはファイアウォールを参照してください。
1. 4 つのステージ概観
すべての評価は、ちょうどひとつのステージでスタンプされます。ステージのないルール ("")はすべてに適用されます;ひとつのステージに固定されたルールはそこでのみ
発火します。
| ステージ | サーフェスが見るもの |
|---|---|
inbound | エージェントがリクエストでアドバタイズするツール |
response | モデルがその返信で発行する tool_calls |
mcp | MCP ゲートウェイ経由でディスパッチされる tools/call |
egress | ツールが到達するアウトバウンドの host / IP / CIDR |
stage プロパティとして設定します。
ステージはどのデータがスコープに入るかを統制し、判定がどれだけ厳格かではありません。
deny はどのステージでも deny です;変わるのは、ルールがマッチに必要な引数、ツール名、
または宛先を持っているかどうかです。2. inbound — エージェントがアドバタイズするツール
最も早いサーフェスです。モデルが実行される前に、エージェントはモデルに呼び出させても
よいツール定義のリストを送ります。inbound ステージはそのアドバタイズされた
ツールセットを見て、モデルがそれを選択する前に危険なツールをブロックできます。
このステージには呼び出し時の引数がありません — モデルはまだどう呼び出すかを決めて
いません — したがって inbound ルールはツール名(とオプションで所有スキル)に
マッチし、args_match_json ではありません。
ここで deny された呼び出しは、ツールと理由にちなんで名付けられたコード
firewall_blocked の HTTP 400 を返し、skip-retry とマークされます。
3. response — モデルが発行するツール呼び出し
モデルが返信すると、1 つ以上の tool_calls を発行する可能性があります — 実引数を
持つ具体的な呼び出しです。response ステージはそれらを見るため、ここが引数レベルの
ルールが属する場所です:「shell.exec をブロック」ではなく「コマンドが rm -rf の
ときのみ shell.exec をブロック」です。
sanitize はここで機能します — 呼び出しの
引数からマッチした部分文字列をリダクトし、クリーニングされた呼び出しを転送します。
(サニタイズはツール呼び出しの引数のみをリダクトします;ツールが返すコンテンツ
には決して触れません。)
4. mcp — ゲートウェイ経由でディスパッチされる呼び出し
エージェントが OrcaRouter のMCP ゲートウェイ経由で
ツールに到達するとき、すべての tools/call が、登録されたサーバーにディスパッチ
される前に mcp ステージで評価されます。これは Model Context Protocol
トラフィックを統制するサーフェスです — response と同じ
グロブ / 引数 / 判定の語彙を、MCP ディスパッチに適用したものです。
ここでのブロックはトランスポート障害ではなくツールエラー
(firewall deny: <reason>)として表面化するため、モデルは拒否を見て反応できます —
別のツールを選ぶ、ユーザーに尋ねる、あるいは停止します。
5. egress — ツールが到達するアウトバウンド宛先
最後のサーフェスです。ツールがアウトバウンドのネットワーク宛先を報告すると、
egress ステージがそれにマッチします — SSRF とデータ持ち出しのサーフェスです。
egress ルールはツール名パターン単独にはマッチしません;host / IP / CIDR リストに
マッチします:
169.254.169.254)と RFC-1918 範囲が deny すべき典型的なものです。
allow/deny の極性については
ファイアウォールルール §6を
参照してください。
CIDR ルールを出荷するプリセットはありません。
tight
自律性レベルの
SSRF 姿勢はフェッチ形のツール名(例:http_fetch、web_search、fetch_url)を
deny します;宛先ベースの egress deny は、エージェントが決して到達してはならない
ホストと範囲のためにあなたが作成するものです。6. 正しいステージを選ぶ
同じセキュリティ目標には、しばしば最適なステージがあります。意図を、必要なデータを 実際に運ぶサーフェスにマッチさせます:ツールが提供されること自体を止める → inbound
ツールが提供されること自体を止める → inbound
モデルがツールを見ることさえあってはならない場合、
inbound でそれを deny
します。ブロックはモデル呼び出しの前に着地するため、モデルトークンを消費しません。ツールを許可しつつ引数を制約する → response(または mcp)
ツールを許可しつつ引数を制約する → response(または mcp)
引数句はモデルが選択した引数を必要とし、それらは
response と mcp にのみ
存在します。危険な引数で deny するか、エージェントが引数に入れたシークレットや
PII 値を剥がすために sanitize します。Model Context Protocol トラフィックを統制する → mcp
Model Context Protocol トラフィックを統制する → mcp
MCP ゲートウェイ経由でルーティングされた呼び出しは、ディスパッチ前に
mcp で
評価されます — 登録されたすべてのサーバーのツールのチョークポイントです。エージェントが接続できる場所をブロックする → egress
エージェントが接続できる場所をブロックする → egress
宛先ベースのルール — クラウドメタデータ IP をブロック、CIDR を deny、承認済み
ホストを許可リスト — は
egress でのみ意味を持ちます。すべてのサーフェスに適用する → ステージを空のままにする
すべてのサーフェスに適用する → ステージを空のままにする
ステージのないルールは 4 つすべてで実行されます。全体的な
default_verdict スタイルのルールや、出現するすべての場所で deny するツールに
使います。7. ステージとシャドウモード
ポリシーのshadow_mode フラグはステージから独立しています。それをオンにすると、
どのステージでもすべての強制判定が audit に格下げされ、理由には
[shadow] would … が前置されるため、ルールが正しいサーフェスで発火することを、それが
ライブトラフィックを変える前に確認できます。
シャドウモードと
強制モードを参照。
8. ステージが全体像のどこに収まるか
4 つのステージは強制のどこです;モデルの残りは何と誰です。判定
各ステージがマッチした後に何ができるか — allow、audit、deny、sanitize、
承認のための保留、コスト上限。
ツール許可リスト
inbound を使って、エージェントがアドバタイズするツールセットを制約します。引数の検証
ツールがどう呼び出されるかでツールをゲートする
response / mcp 引数句を
作成します。Egress 制御
egress サーフェスでアウトバウンド宛先をブロック — 持ち出し境界です。