メインコンテンツへスキップ
タスクに必要以上のケイパビリティを持つエージェントは悪用を待ち望んでいる脆弱性です。 キーを盗み、インジェクションされた指示で騙し、または依存関係をひとつ侵害します — そのキーが行えるすべてが今攻撃者の手にあります。これが過剰な権限問題であり、 混乱した代理人と呼ばれる密接に関連するパターンと複合します:エージェントは 直接侵害されず、攻撃者の代わりに正当な権限を使用するよう_騙されます_。 両方の問題には共通の根本原因があります:侵害されたエージェントが持つキーは、 それが実行するタスクにとって強力すぎます。防御は最小権限です — 各エージェントに タスクが必要とするケイパビリティだけを、それ以上は与えません。
このページは被害範囲を制限するゲートウェイコントロールについてです。アップストリームの 脅威モデルのコンテキスト — なぜエージェントが高価値ターゲットであるか、インジェクションが どのように機能するか — は脅威モデルにあります。 危険な個々のツール呼び出しを統制するマッチングコントロールについては、 危険なツール呼び出しを参照してください。

1. エージェントが過剰に有能になるもの

ワークスペース内のすべてのエージェントがひとつのキーを共有する場合、またはキーが一度 発行されて再度確認されない場合、ケイパビリティは上向きにドリフトします:
  • 制限されていないモデル — エージェントはワークスペース内の任意のモデルを呼び出せます、 決して必要としない高価または高性能なものも含めて。
  • 支出上限なし — 暴走ループ、トリガーされたインジェクション、または課金攻撃が 気づく前にワークスペースの残高を使い果たせます。
  • 有効期限なし — スプリント中に発行されたキーが 1 年後もまだ有効であり、 それが発行されたエージェントはとっくに廃止されています。
  • IP 制約なし — クレデンシャルはどこからでも機能するため、漏洩したキーには 地理的な制限がありません。
  • ツール許可リストなし — エージェントは機能とは無関係なものも含めて任意のツールを 呼び出せます。
これらのいずれか一つだけでも被害範囲が広がります。組み合わさると、ひとつの侵害された エージェントがワークスペース管理者ができることすべてを行えます — 最も強力なモデルを 呼び出し、残高を全部使い、すべてのツールに到達します。

2. 混乱した代理人のパターン

混乱した代理人は過剰な権限の特殊化です。エージェントはハイジャックされません; 説得されます。取得された Web ページ、ドキュメント、またはツール結果のプロンプト インジェクションペイロードがエージェントに対して、それが正当に実行を許可されている アクションを取るよう指示します — 送金、レコードの削除、メッセージの送信 — 攻撃者の 代わりに。 エージェントが行動します。それはまさにそれを行う権限を持っていました。認証チェックが 通過します。被害が発生します。 防御には 2 つのことが一緒に機能することが必要です:
  1. 狭いスコープ — エージェントはタスクが決して意図しないことをするよう騙されること ができません。なぜならそれを行う権限がまったくないからです。
  2. 不可逆なアクションに対する人間の承認 — 承認されたスコープ内でも、高リスクの 呼び出しは実行前に人間が確認する必要があります。

3. 多層防御:4 つのレイヤー

OrcaRouter はひとつの API キーで構成される 4 つの独立したコントロールにわたって 最小権限を強制します。いずれもエージェントのコード変更を必要としません。

レイヤー 1 — スコープキー(アイデンティティ + ハードリミット)

すべてのエージェントには独自の API キーが必要です。キーはゲートウェイがエージェントの リクエストに関わらず強制するハードリミットを持ちます:
フィールド制限するもの
model_limitsこのキーが呼び出せるモデルの正確なセット。他のモデルへのリクエストはゲートウェイを離れる前に拒否されます。
allow_ipsこのリストにないアドレスからのリクエストは認証レイヤーで拒否されます。空は IP 制限なしを意味します。
credit_limit_usdUSD での累積支出上限。0 は無制限を意味します。ゲートウェイはこれをキーの累積支出に対して強制します。
expired_time絶対有効期限タイムスタンプ。-1 はキーが期限切れにならないことを意味します。エージェントのデプロイメントライフサイクルに設定します。
environmentキーを整理して監査ログをフィルタリングするためのラベル(prodstagingdev)。
これらのリミットはキーレベルで強制されます — 任意のポリシーの前に、任意のモデル呼び出しの 前に。これらは最も外側の被害範囲境界です。

レイヤー 2 — ファイアウォールポリシー(ツール許可リスト)

firewall_policy_id を介してキーにファイアウォールポリシーを アタッチします。ポリシーはそのキーが発行するすべてのツール呼び出しを統制します:
  • エージェントが正当に使用するツール名をallowするルールを書きます (ツール名グロブがサポートされています — 例:db.query*)。
  • 明示的にリストされていないものがすべてブロックされるようにポリシーの default_verdictdeny に設定します。
  • 許可されたツールでも制限するための引数述語を追加します — 例:database 引数が 特定のスキーマにマッチする場合のみ db.query を許可します。
ファイアウォールアタッチメントのないキーはワークスペースのデフォルトポリシーに フォールバックします。狭いツールニーズを持つエージェントには、ワークスペースの デフォルトに依存するよりも、明示的なアタッチメントと厳格なポリシーが常に優先されます。 完全なマッチング言語についてはファイアウォールルール を参照してください。

レイヤー 3 — 高リスクアクションに対する人間の承認(pending_approval

決済ディスパッチ、レコード削除、メール送信など、不可逆または高価値のツール呼び出しには、 pending_approval ルールを追加します。フロー:
  1. エージェントがツール呼び出しを発行します。ファイアウォールがそれを保留し、承認 id を 持つ「保留中」のレスポンスを返します。呼び出しはツールに到達しません
  2. レビュアーが帯域外で承認または拒否します — コンソールから(Developer+)または 独自の承認システムへの HMAC 署名付きウェブフック経由で。
  3. エージェントが承認 id をポーリングします。承認されると、単回使用の X-OrcaRouter-Firewall-Approval ヘッダーとともに元の呼び出しを再送信します。 ゲートウェイはちょうど一度だけ通過させます。
混乱した代理人はスコープが有効でも、ここで止まります:アクションが実行される前に 人間がそれが意図的であることを確認します。

レイヤー 4 — 実行ごとのコスト上限(cap_cost

cap_cost ルールはエージェント実行の累積支出がルールごとの上限(セント)を超えたら 任意のツール呼び出しを deny します。これは以下のためのサーキットブレーカーです:
  • インジェクションによってトリガーされた暴走ループ。
  • 誰かが気づく前に支出を増やす課金攻撃。
  • マルチステップ計画での偶発的な再帰。
cap_cost はキーの累積レベルではなく実行レベルで動作します — エージェントの 呼び出しごとにリセットされ、ひとつの誤動作する実行がキーの credit_limit_usd 上限を 使い果たすことはありません。

4. 適切にスコープされたエージェントキーの例

gpt-4o-mini を使用してカスタマーチケットを要約し、読み取り専用レプリカをクエリする エージェントは次のようになります:
  • model_limits: ["openai/gpt-4o-mini"] — より有能または高価なモデルにエスカレート できません。
  • allow_ips: ワーカープールの egress CIDR — キーは他のどこでも無効です。
  • credit_limit_usd: タスクの予想コストに多少の余裕を持たせた週次上限 — 例:5.00
  • expired_time: スプリントまたはデプロイメント期間の終わり — キーは手動クリーンアップ なしに自己期限切れします。
  • environment: "prod" — ログフィルターと異常ビューに表示されます。
  • guardrail_id: このエージェントのデータ感度にスコープされたガードレール (PII マスキング、出力にシークレットなし)。
  • firewall_policy_id: db.query*ticket.read* のみを許可リストに載せ、 デフォルト判定 deny のポリシー。
このエージェントがインジェクションされた指示によってデータを持ち出すよう騙された場合、 被害範囲は:ひとつのモデル、ひとつの IP 範囲、ひとつのツール名前空間、ひとつのコスト 上限。ワークスペースの残りは影響を受けません。
is_firewall_gateway はキーを MCP ディスパッチと evaluate フックルートのための ゲートウェイスコープトークンとしてマークします。これらを駆動するエージェントのみに これらを作成してください — 一般的な推論トラフィックには決して使用しないでください。 推論パス上のゲートウェイキーは、幅広い目的のキーが決して到達すべきでないルートを 公開します。is_firewall_gateway の有効化には Admin+ が必要です。

5. 必要なロール

アクション最低ロール
任意のキー、ポリシー、またはファイアウォールイベントを読み取るメンバー
キー、ファイアウォールポリシー、ルールを作成または編集するDeveloper
コンソールから保留されたツール呼び出しを承認するDeveloper
キーで is_firewall_gateway を有効にするAdmin

6. 他の脅威との関係

過剰な権限はほとんどすべての他のエージェント脅威のイネーブラーです:
  • 危険なツール呼び出し — 厳格な ツール許可リストを持つキーは、インジェクションが成功しても、リストにないツールを 呼び出すよう強制されることはできません。
  • プロンプトインジェクション — スコープ制限はインジェクションが達成できることを 縮小します;承認ゲートはインジェクションが引き起こそうとする不可逆なアクションを ブロックします。
  • 脅威モデル — 完全な攻撃表面マップ、 過剰な権限が他のベクターに対してどこにあるかを示します。
最小権限はインジェクションを防ぎません。インジェクションが達成できることを縮小します。

スコープキーとポリシー

完全なキーフィールドリファレンス、解決順序、ワークスペース境界モデル。

ファイアウォール

ポリシー作成、判定、HITL 承認フロー、完全な API リファレンス。
最小権限 — エージェントごとにひとつの狭いキー、厳格なツール許可リスト、支出上限、 不可逆なアクションに対する人間の承認 — は過剰な権限 LLM 攻撃と混乱した代理人 パターンに対する主要な防御です。