メインコンテンツへスキップ
ガードレールはモデルを流れるテキストをスクリーニングします。ファイアウォール はエージェントが取るアクションを統制します — 呼び出すツール、到達する MCP サーバー、ロードするスキル、通信するホストです。これは ガードレールのアクション層のカウンターパートです:同じ ワークスペーススコープ、同じアタッチワンスモデル、そして同じ「ポリシーは アプリではなくゲートウェイに存在する」という約束です。 このページは概念的な概要と運用リファレンスです。3 つのコンパニオンページが 可動部分を詳しく扱います:

ルール

マッチング言語 — ツールグロブ、引数句、egress リスト、サニタイザ、 シーケンス。

MCP サーバー

Model Context Protocol サーバーを単一の監査済みゲートウェイの背後で登録し 統制します。

スキル

エージェントがインストールするケイパビリティを、実行できるようになる前に スキャンしリスクスコアリングします。

1. ファイアウォールとは

AI エージェントは単にテキストを生成するだけではありません — アクションを取るの です。shell.exec を呼び出し、db.query をクエリし、URL を取得し、コミュニティ スキルをロードし、あるいはサードパーティの MCP サーバー経由でツール呼び出しを ルーティングします。これらのそれぞれが現実世界に影響を及ぼすアクションであり、 プロンプトレベルのガードレールはそれらを見ることができません。 ファイアウォールは、ゲートウェイがすべてのツール呼び出しで評価する ワークスペーススコープの名前付きポリシーです。ポリシーを一度作成し、API キーを それにアタッチするか(あるいはワークスペースデフォルトに設定し)、それ以降は そのキーが発行するすべてのツール呼び出しが — ツールに到達する前に — ポリシーに対してチェックされます。 各ポリシーは順序付けられたルールのリストです。ルールはひとつのことを決定します — どのツール呼び出しに適用されるか(ツール名グロブ。オプションでスキルや強制 サーフェスにスコープされます)とそれにどう対処するか判定:allow、audit、 deny、sanitize、承認のための保留、またはコスト上限)。エンジンは優先度順に ルールを辿り、最初にマッチしたものが勝ち、何もマッチしなければポリシーの デフォルト判定にフォールバックします。 ポリシーを編集すると、それにアタッチされたすべてのキーが次の呼び出しで 反映されます。再デプロイ不要。エージェントのコード変更不要。ポリシーは ゲートウェイで強制されます — エージェントは以前と全く同様にツール呼び出しを 発行し続けます。
検出はゲートウェイで、初回使用時に行われます。 ファイアウォールは LLM リレーパス上に位置し、エージェントのパッケージマネージャやファイルシステムの 内部にはありません。エージェントが自己インストールしたツール、MCP サーバー、 スキルは、その呼び出しが初めてゲートウェイを横切ったときに捕捉されます — インストール 時ではありません。これは意図的なものです:ケイパビリティがどのようにそこへ 到達したかに関わらず、すべてのプロバイダ、すべてのエージェント、すべての ツール呼び出しを見る唯一のチョークポイントなのです。

2. 4 つの強制サーフェス

すべてのツール呼び出しは、ちょうどひとつのサーフェス — ファイアウォールが それを見るリクエストライフサイクル上のポイント — に対して評価されます:
サーフェス何を見るか
inboundエージェントがリクエストでモデルにアドバタイズするツール(ツール定義)。モデルがそれを選択する前に、危険なツールをブロックできます。
responseモデルがその返信で発行する tool_calls
mcpファイアウォール MCP ゲートウェイ経由でディスパッチされるか、SDK フック経由で評価される tools/call
egressツールが報告するアウトバウンドのネットワーク宛先(host / IP / CIDR) — SSRF とデータ持ち出しのサーフェス。
ステージのないルールはすべてのサーフェスに適用されます;判定がそこでのみ 意味を持つ場合(例:egress 許可リスト)は、ルールをひとつのサーフェスに固定します。

3. コアコンセプト

概念定義
ポリシー名前付きの、ワークスペーススコープのルールセット。enabledis_defaultdefault_verdict、そして shadow_mode フラグを持ちます。
ルールポリシー内のひとつのチェック:優先度、ツール/スキルマッチ、オプションのサーフェス、オプションの引数述語、そして判定。ルールを参照。
判定ルール(またはデフォルト)が生成するアクション — §4 を参照。
デフォルト判定どのルールもマッチしないときに適用されます。allowaudit(デフォルト)、deny のいずれか。
シャドウモードポリシーは評価しログを取りますが、決してブロックしません — すべての強制判定が audit に格下げされ、理由には [shadow] would … が前置されます。安全なロールアウトのスイッチです。
観察モードワークスペースレベルの設定。リクエストがどのポリシーにも解決されず観察モードがオンの場合、呼び出しは許可されますがカバレッジのギャップとしてログされます — これが Discovered-tools ビューを満たすものです。

スコープと解決

ポリシーはガードレールや API キーと全く同様に解決されます:アクティブな ワークスペースがある場合はワークスペース共有です。任意のツール呼び出しについて、 ゲートウェイはこの順序でポリシーを解決します:
  1. キーアタッチメント — 呼び出し元のキーに firewall_policy_id がある場合、 そのポリシーが適用されます(存在し有効である場合)。
  2. ワークスペースデフォルト — それ以外の場合、ワークスペースの有効な is_default ポリシーが適用されます。
  3. どちらもなし — 強制なし。観察モードがオンの場合、呼び出しは許可され ギャップとしてログされます;オフの場合、呼び出しはサイレントに許可されます (この機能を一度も有効化していないワークスペースとバイト単位で同一です)。
ワークスペースごとに最大ひとつのポリシーがデフォルトになれます;新しい デフォルトをプロモートすると、同じトランザクション内で古いものが降格されます。
未知のものにはフェイルオープン、曖昧なものにはフェイルクローズ。 ポリシー 解決が一時的なエラーに遭遇した場合、ゲートウェイはトラフィックを止めるのではなく observe/allow に劣化します。しかし強制しないことがルールを無効にしてしまう 場合 — 使用可能な宛先のない egress レポート、到達不能な承認ストア、所有権を 解決できないスキル — エンジンはフェイルクローズします(deny または hold)。 可用性は維持されます;重要なケースで安全性がサイレントにスキップされることは ありません。

4. 判定

ルール(またはデフォルト判定)は次のいずれかを生成します:
判定何をするか
allow呼び出しを通します。ログされます。
audit許可しますが、レビュー用に記録します。デフォルトの default_verdict です — 準備ができるまで、すべてを観察し、何もブロックしません。
deny呼び出しをブロックします。エージェントはツールエラー(または inbound サーフェスでは HTTP 400)を見ます。
sanitizeマッチした部分文字列をツールの引数からリダクトし(シークレット、PII)、クリーニングされた呼び出しを転送します。サニタイザを参照。inbound サーフェスでは — まだ呼び出し時の引数がないため — sanitize はブロックにエスカレートします。
pending_approval人間のために呼び出しを保留します。エージェントは「保留中」のレスポンスを受け取ります;レビュアーが帯域外で承認または拒否します;エージェントは単回使用の承認トークンで再送信します。§7 を参照。
cap_costエージェント実行の累積支出がルールごとのセント上限を超えたら deny します。暴走ループのためのサーキットブレーカーです。
シャドウモードでは、deny / sanitize / pending_approval はすべて audit に 格下げされるため、ポリシーがトラフィックを変える前にその影響を測定できます。

5. ツール呼び出しがどう評価されるか

  1. ツール呼び出しがゲートウェイに到達します(inbound でアドバタイズされる、 レスポンスで発行される、MCP ゲートウェイ経由でディスパッチされる、または egress として報告される)。
  2. エンジンはアクティブなポリシーを解決します(§3)。
  3. 優先度順にポリシーのルールを辿ります(低い優先度が先;同点はルール id で 解決)。ルールは、そのサーフェス、ツール名グロブ、オプションのスキル名グロブ、 オプションの引数句、そしてオプションの egress スコープがすべてマッチした ときにマッチします。
  4. 最初にマッチしたものが勝ち → そのルールの判定が適用されます。どのルールも マッチしなければ → ポリシーの default_verdict
  5. 呼び出しが統制されたスキルによって所有されている 場合、スキルの強制モードがその上に適用されます — block モードのスキルは deny を 強制し、quarantine モードのスキルは deny 未満のものを pending_approval に エスカレートします。
  6. 決定はファイアウォールイベントとしてログされ(ドライランでない限り)、エージェント 実行とセッションに相関付けられます。

6. ブロックがどう見えるか

inbound サーフェスで拒否された呼び出しは、OpenAI 形式のエラーボディ、 エラーコード firewall_blocked、そしてツールと理由を示すメッセージとともに HTTP 400 を返します — 例:tool "shell.exec" blocked by firewall: destructive shell command。エラーは構造化された metadata(理由コード、リスク要因、スコア)を 持ち、skip-retry とマークされます(同じ呼び出しを再実行してもまたブロックされる だけです)。 MCP ゲートウェイ経由でディスパッチされた呼び出しは、トランスポート障害では なくツールエラーfirewall deny: <reason>)としてブロックされるため、モデルは 拒否を見て反応できます — 別のツールを選ぶ、ユーザーに尋ねる、あるいは停止する — クラッシュする代わりに。 保留された呼び出し(pending_approval)は、コード firewall_approval_pending と、 クライアントがポーリングする承認 id とともに HTTP 400 を返します。

7. 人間による承認(HITL)

pending_approval 判定は、ツール呼び出しを帯域外のレビューに変えます:
  1. エンジンは承認レコードをエンキューし、その id を持つ「保留中」のレスポンスを 返します;呼び出しはツールに到達しません
  2. レビュアーがそれを解決します — コンソールから(Developer+)、あるいは独自の 承認システムへの HMAC 署名付き webhook コールバック経由で。
  3. エージェント(または MCP SDK)が承認 id をポーリングします;承認されると、 単回使用の X-OrcaRouter-Firewall-Approval ヘッダーとともに元の呼び出しを 再送信し、ゲートウェイはその一度限り通します。
決定はファーストライタウィンかつ冪等です。基礎となるルールが保留の後に編集された 場合、エンリッチメントは rule_changed を記録するため、レビュアーはコンテキストが 変わったことを知ることができます。

8. 自律性レベル — 姿勢全体のためのひとつのスイッチ

ポリシーをルールごとにチューニングするのは精密な道です;自律性レベルは 高速な道です。単一のコントロールが、ワークスペースのファイアウォールおよび ガードレールの姿勢を、ワンクリックの取り消しとともに、ひとつのトランザクションで アトミックに置き換えます:
レベル姿勢
tight破壊的シェル、引数内のシークレット、SSRF egress をブロック(デフォルト deny);PII Shield + Secrets Blocker ガードレールをオン;観察モードオフ。
balanced破壊的シェルを audit、PII を flag;観察モードオフ。推奨される開始姿勢です。
permissive強制ポリシーなし、ガードレールなし;観察モードはオンなので、依然としてすべてを見られます。
取り消しは、監査スナップショットから直前の正確な状態を復元します。

9. 異常検出

静的なルールを超えて、ファイアウォールは各ワークスペースの通常のツール使用の形状を 学習し、逸脱をビューア可読のフィードでフラグします:
  • レート / コストのスパイク — ツールごとのアクティビティが学習された 曜日内時間ベースライン(14 日間の移動平均)に対してスコアリングされるため、 「日曜午前 3 時の 100 回の db.query 呼び出し」は、各呼び出しが個別には許可される 場合でも際立ちます。
  • retry_loop — エージェントが同じ失敗するツールを叩き続けている。
  • novel_path — このワークスペースがこれまで一度も行ったことのない ツール間遷移。
フィードはツール名、リダクトされたトークン id、そしてカウントのみを報告します。 調査中の異常を最大 7 日間スヌーズできます。

10. 可観測性

ファイアウォールは、対処可能なトレイルを残します。すべてワークスペーススコープです:
サーフェス何を提供するか
Eventsすべての評価。判定、サーフェス、ツール、実行、セッションでフィルタ可能。他のすべての背後にある生のレコード。
Runs & sessionsエージェント実行または会話ごとにロールアップされたイベント — 判定の内訳、個別のツールとモデル、初回/最終の観測。「このエージェントが実際に何をしたか」のビュー。
Discovered toolsワークスペースが見たすべてのツール。covered(ルールが適用される)または gap(何も適用されない)とフラグされます。実トラフィックからのポリシー作成を駆動します。
Simulate自律性レベルを適用する前に、それが何を変えるかをプレビューします。
Testサンプルのツール呼び出しに対してポリシーをドライランし、判定、マッチしたルール、理由を確認します — 何も永続化されず、何もディスパッチされません。
Auditすべてのポリシー、ルール、設定の変更は、変更がコミットされた後に監査行を書き込みます(ワークスペース + セントラル)。シークレットとルールブロブは決してログされません。

11. ゲートウェイの他部分との関係

ファイアウォールとどう組み合わさるか?
ガードレール補完的なプレーンです。ガードレールはプロンプト/レスポンスのテキストをスクリーニングし、ファイアウォールはツールのアクションを統制します。両方を 1 つのリクエストに適用できます。自律性レベルは両方を一度に設定します。
ルーティング独立しています。ルーティングはモデル/チャネルを選びますが、ファイアウォールはどのモデルが処理したかに関わらずツール呼び出しを判断します。
API キーキーは firewall_policy_id を介してポリシーにアタッチされます;バインディングはゲートウェイのキー上にあります。アタッチメントがなければワークスペースデフォルトにフォールバックします。
MCP ゲートウェイファイアウォールが MCP ゲートウェイそのものです — 登録したすべてのサーバーは、その tools/call をエンジン経由でディスパッチします。
スキル統制されたスキルの強制モードはルール判定の上に乗るため、隔離されたスキルは、どのルールもそのツールを名指ししなくても保留されます。

12. エージェントをファイアウォールゲートウェイに接続する

ツール呼び出しがエンジンに到達する方法は 2 つあります:
  • MCP ゲートウェイ — MCP クライアント(Claude Desktop、Cursor、エージェント フレームワーク)を https://api.orcarouter.ai/api/v1/firewall/mcp に向けます。 ゲートウェイは到達可能なすべての登録済みサーバーのツールを <server>.<tool> で 名前空間化して公開し、各 tools/call をインラインで評価します。 MCP サーバーを参照。
  • Evaluate フック — ツール呼び出しをディスパッチする前に、独自のエージェント ループから POST /api/v1/firewall/evaluate を呼び出し、判定に応じて動作します。
どちらもファイアウォールゲートウェイスコープのトークン — この目的のために 発行された専用の API キー — を必要とします。通常のキーはこれらのルートで 403 を 受け取ります。

13. API リファレンス

すべてのコンソールルートはワークスペースコンテキストを介してワークスペース スコープされ、RBAC を一貫して強制します:読み取りと test/simulate サンドボックスは すべてのメンバーに開放、書き込みは Developer+ が必要です。

ポリシーと設定

メソッドとパスロール目的
GET /api/workspace/firewall/settingsMemberワークスペースのファイアウォール設定を読み取り(観察モード、デフォルト)。
PUT /api/workspace/firewall/settingsDeveloper+設定を更新。
GET /api/workspace/firewall/policiesMemberポリシー一覧(ルール数 + アタッチ済みキー数つき)。
GET /api/workspace/firewall/policies/:idMember単一ポリシー詳細。
POST /api/workspace/firewall/policiesDeveloper+ポリシーを作成。
PUT /api/workspace/firewall/policiesDeveloper+ポリシーを更新。
DELETE /api/workspace/firewall/policies/:idDeveloper+ポリシーを削除(キーがまだアタッチされている場合は 409)。

姿勢、プリセット、サンドボックス

メソッドとパスロール目的
GET /api/workspace/firewall/presetsMember組み込みルールプリセット。
POST /api/workspace/firewall/autonomyDeveloper+自律性レベルを適用。
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+自律性の変更を取り消し。
GET /api/workspace/firewall/simulateMember自律性レベルをプレビュー(?level=)。
POST /api/workspace/firewall/testDeveloper+サンプルのツール呼び出しに対してポリシーをドライラン。

可観測性

メソッドとパスロール目的
GET /api/workspace/firewall/discovered-toolsMember見たツール、covered / gap とフラグ。
GET /api/workspace/firewall/eventsDeveloper+ファイアウォールイベント一覧(フィルタ可能)。
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+1 つのリクエストのイベント。
GET /api/workspace/firewall/events/aggregateDeveloper+Runs / sessions ロールアップ。
GET /api/workspace/firewall/trace/by-runDeveloper+実行のトレースノード(?run_id=)。
GET /api/workspace/firewall/anomaliesMember異常フィード(?window=)。
POST /api/workspace/firewall/anomalies/snoozeDeveloper+異常フィードをスヌーズ。
ルール、MCP サーバー、スキルはそれぞれ独自のエンドポイントを持ちます — ルールMCP サーバースキルを参照。

ゲートウェイ(マシン間)

これらはコンソールセッションではなく、ファイアウォールゲートウェイスコープの トークン上で動作します:
メソッドとパス目的
POST /api/v1/firewall/evaluate1 つのツール呼び出しに対するディスパッチ前の判定。
POST /api/v1/firewall/evaluate_planマルチステッププランの実行前チェック。
ANY /api/v1/firewall/mcp統合された MCP ゲートウェイエンドポイント。
GET /api/v1/firewall/approvals/:id保留された呼び出しの承認状態をポーリング。
POST /api/v1/firewall/approvals/:id/callbackHMAC 署名付き承認コールバック。

14. FAQ

観察モードオフの場合、挙動は機能を一度も有効化していないワークスペースと バイト単位で同一です — 何もブロックもログもされません。観察モードオンの 場合、呼び出しは許可されますがカバレッジギャップとして記録されるため、 Discovered tools に表示されます。
シャドウモードをオンにします。ポリシーは本番と全く同様に評価しログを 取りますが、すべての強制判定が audit に格下げされ、理由には [shadow] would … が前置されます。events と runs ビューを監視し、期待どおりの ものに発火し、そうでないものには発火しないことを確認してから、シャドウモードを オフにして強制を開始します。
inbound ブロックはアップストリームのモデル呼び出しの前に発火するため、モデル トークンを消費しません。audit / allow 判定は課金を変えません。cap_cost ルール はそれ自体が課金コントロールです — 実行の支出がセント上限を超えたら deny します。
両方を、異なる層に対して。ガードレールはプロンプトとレスポンス内のテキストを スクリーニングします(PII、シークレット、jailbreak)。ファイアウォールは エージェントが取るアクションを統制します(どのツール、どの MCP サーバー、どの ホスト)。リクエストは両方を通過できます。tight 自律性レベルはそれらを一緒に 構成します。
ファイアウォールはゲートウェイを横切るツール呼び出しに対して強制します — リレーパス、MCP ゲートウェイ、そして evaluate フックです。エージェントが 完全に自身のプロセス内で実行し、ゲートウェイに一度も触れないツールは、 ファイアウォールの視界の外です。設計目標は、重要な呼び出し(モデル媒介の ツール、MCP ディスパッチ、ネットワーク egress)にとってゲートウェイを単一の 監査済みパスにすることです;それらをそこ経由でルーティングすれば、統制されます。

関連項目

エージェントセキュリティをさらに深く知りたいですか? エージェントを保護する(ゼロトラスト) のガイドが、この機能をゼロトラストワークフローの中に位置づけます。

エージェントを保護する(ゼロトラスト)

ゼロトラストのエージェントファイアウォールプレイブック — ツール許可リスト、引数チェック、egress 制御。

セキュアエージェント ベースライン

ファイアウォールとガードレールの姿勢を一緒に設定するひとつのスイッチ。