fetch、web_search、
webhook ポスター — を提供します。ツール名は許可リストにあるかもしれず、引数は
クリーンに見えるかもしれず、それでも呼び出しはあなたのデータを攻撃者制御のホストに
POST したり、169.254.169.254 メタデータエンドポイントからクレデンシャルを引き出したり
してしまいます。宛先は、あなたのツール名ルールが決して見ない呼び出しの部分です。
mcp egress 制御はそのギャップを閉じます。egress ルールは、ファイアウォール判定を
ツールが到達する先 — ホスト、IP、または CIDR 範囲 — にスコープするため、api.openai.com
への到達が許可された同じ http_fetch が、それ以外のすべてに拒否されます。それは
すべての tools/call がすでに通る呼び出しごとの評価の上に、
ファイアウォールの egress サーフェス上で実行されます。
これはコンソールタスクです。ファイアウォールルールは
/api/workspace/firewall/*
ルート上にあり、リレーの sk-orca-… キーではなく、あなたのセッション/アクセス
トークンで認証します。ルールの作成には Developer+ ロールが必要です。1. egress ルールが制御するもの
通常のルールはツール名とその引数でマッチします。egress ルールは 3 つ目の 次元を追加します:呼び出しが解決される宛先です。ルールのstage を egress に
設定し、許可/拒否エントリの egress_json リストを添付します。エンジンは呼び出しから
宛先ホストを抽出し、そのホストがスコープ内にあるときだけルールを発火させます。
エントリは 3 通りでマッチされます:
ホスト名
大文字小文字を区別しない完全一致、例:
api.openai.com。末尾のドットは両側で
トリミングされます。IP リテラル
解決されたダイヤル IP に対する完全一致、例:
169.254.169.254。CIDR 範囲
宛先 IP — リテラルまたは DNS 解決済み — がブロック内に収まる必要があります、
例:
10.0.0.0/8。2. 具体例 1 つ
すべての fetch 形状のツールがクラウドメタデータエンドポイントと RFC-1918 範囲に 到達するのを拒否します。これは標準的な SSRF 持ち出しレッグの切断です:egress
ステージ上の deny 判定で、egress_json 拒否リストでスコープされます。
tools/call は、ツールエラーとしてモデルに
戻ってきます;拒否リストがカバーしない公開ホストへの呼び出しは通過します。
3. ひとつの宛先だけを許可リスト化する
上の例の逆:fetch ツールをひとつの認可されたホストにピン留めし、ポリシーのdefault_verdict(または後続のキャッチオール)に残りを処理させます。これは allow
判定なので、allow リストがスコープ内の集合です。
4. ファイアウォールの残りとどう組み合わさるか
egress ルールは、ワークスペースファイアウォールポリシー内の 多くのルールのひとつです。エンジンは優先順位順(最も低いものから)にルールを歩き、 最初のマッチが勝つため、厳格な egress deny を広い allow の上に置いてください。| egress ルール上の判定 | 効果 |
|---|---|
deny | スコープ内の宛先への呼び出しをブロックします — egress サーフェスに記録され、ツールにエラーとして返されます。 |
audit | マッチした呼び出しをファイアウォールイベントとしてログに記録します;依然としてディスパッチします。 |
allow | スコープ内の宛先を許可します;デフォルト拒否のフロアとペアになります。 |
pending_approval と cap_cost は egress サーフェス上では強制されません —
egress は宛先チェックであり、保留や支出上限ではありません。それらの判定は代わりに
mcp または inbound サーフェス上で使ってください。
判定リファレンスを参照してください。組み込み SSRF ガード(ルール不要)
組み込み SSRF ガード(ルール不要)
あなたが作成する任意のルールとは独立に、MCP ゲートウェイ
はすべてのサーバーエンドポイントとその解決されたダイヤル IP を SSRF ポリシーに
対して検証します — イントラネット範囲とクラウドメタデータアドレスは拒否され、
IP は DNS リバインディングを打ち破るためにすべてのホップで再チェックされます。
あなたの egress ルールは、そのベースラインの上にワークスペース固有の宛先ポリシーを
重ねます。
持ち出しチェーンのためのシーケンスルール
持ち出しチェーンのためのシーケンスルール
単一の egress deny は、ツールがホストに到達するのを止めます。
シーケンスルールはチェーンを止めます
— 例:「ファイルを読み、それからウィンドウ内で egress する」 — egress レッグを、
それがセンシティブな読み取りに続くときだけフラグすることで。それが
lethal-trifecta ブレーカーです;egress スコープは呼び出しごとの制御です。
5. まずシャドウし、それから強制する
混雑したワークスペースで egress deny をいきなり強制にロールすると、忘れていた正当な 統合を壊すリスクがあります。2 つのセーフティネット:- シャドウモード。 シャドウモードのポリシーは、すべての強制判定を audit に
ダウングレードします — あなたの egress deny は、ブロックする代わりに
[shadow] would deny …をログに記録するため、作用する前に影響範囲が見えます。 - observe モード。 ワークスペースの
firewall_observe_mode設定は、カバーされて いない呼び出しを発見されたツールとしてログに記録し、 エージェントがすでに到達している実際の宛先を表面化するため、推測ではなくデータから 正確な許可リストを書けます。
6. ロールとルート
すべてのコンソールルートはワークスペーススコープで、あなたのセッション/アクセス トークンで認証します。読み取りは任意の Member に開放されています;ルールの作成 または編集には Developer+ が必要です。| メソッドとパス | ロール | 目的 |
|---|---|---|
GET /api/workspace/firewall/policies/:id | Member | ポリシーとそのルールを読みます。 |
POST /api/workspace/firewall/rules | Developer+ | ルールを追加します(stage: egress を設定)。 |
PUT /api/workspace/firewall/rules | Developer+ | ルールを更新します(id はボディ内)。 |
DELETE /api/workspace/firewall/rules/:id | Developer+ | ルールを削除します。 |
POST /api/workspace/firewall/test | Developer+ | サンプル呼び出しをドラフトポリシーに対してリプレイします。 |
関連
ファイアウォールルールリファレンス
完全なルール DSL — ツールグロブ、引数マッチング、egress リスト、シーケンス。
MCP サーバーの接続
サーバーを登録して、そのツール呼び出しがファイアウォールの背後で実行されるように
します。
MCP ツールの許可リスト化
明示的に承認しなかったツールをデフォルト拒否します。
データ持ち出し
egress 制御が止めるために作られた脅威。
