メインコンテンツへスキップ
OrcaRouter に到達するすべてのリクエストは API キーを持ちます。そのキーは単なる クレデンシャルではありません — それはスコープ宣言です:発呼者が使用できるモデル、 提示できる IP、使える金額、そして正確にそのトラフィックを統制するガードレールと ファイアウォールポリシー。このページでは 3 レベルの階層と、リクエスト時にポリシーが どのように解決されるかを説明します。

1. 3 つのスコープ

3 つの概念が互いにネストされています:
  • ワークスペース — テナント境界。ワークスペースのすべてのメンバーは同じ ガードレールとファイアウォールポリシーカタログを共有します。ワークスペース境界を 越えるものは何もありません — ワークスペース A で作成されたポリシーはワークスペース B には見えません。
  • ポリシー — 名前付きの、ワークスペーススコープのルールセット(ガードレールまたは ファイアウォールポリシー)。ポリシーを編集すると、再デプロイなしに次のリクエストで アタッチされたすべてのキーに効果があります。
  • キー — アイデンティティ + アタッチメント。キーは独自の制約を持ち、それを 統制するポリシーを指します。
ワークスペースは外側の境界です;ポリシーはその中の共有リソースです;キーは制約と ポリシーを結びつけるエージェントごとのアイデンティティです。

2. キーが持つもの

各 API キーは制限とアタッチメントのバンドルです。これらをキーエディタ (/console/token)で設定します — キーの作成または編集には Developer ロール 以上が必要です。
フィールド制限するもの設定に必要な最低ロール
model_limitsキーを特定のモデルリストに制限します — そのリスト外の呼び出しはゲートウェイを離れる前に拒否されます。Developer
allow_ipsIP 許可リスト。リスト外のアドレスからのリクエストは認証レイヤーで拒否されます。空はすべての IP が許可されることを意味します。Developer
credit_limit_usdUSD での支出上限。0 は無制限を意味します。ゲートウェイはこれをキーの累積支出に対して強制します。Developer
expired_time絶対有効期限タイムスタンプ。-1 はキーが期限切れにならないことを意味します。Developer
environmentキーを整理してデプロイメント環境ごとにフィルタリングするためのフリーフォームラベル(例:prodstagingdev)。Developer
guardrail_idこのキーに特定のガードレールをアタッチします。このキーが行うすべての呼び出しがそのガードレールによってスクリーニングされます。Developer
firewall_policy_idこのキーに特定のファイアウォールポリシーをアタッチします。このキーが発行するすべてのツール呼び出しがそのポリシーによって評価されます。Developer
is_firewall_gatewayキーをゲートウェイスコープトークンとしてマークします — MCP ディスパッチと evaluate フックルートを呼び出すために必要です。通常のキーはそれらのルートで 403 を受け取ります。ゲートウェイキーのプレーンテキストの読み取りには Admin が必要です。Admin(有効化とプレーンテキスト読み取りに)
キーはコンソールでの表示時にマスクされます。プレーンテキストは作成時に一度表示されます; ゲートウェイスコープキーは再取得するために Admin が必要です。

3. ポリシー解決順序

すべてのリクエストについて、OrcaRouter はアクティブなガードレールとファイアウォール ポリシーを独立して解決します:
  1. キーアタッチメント — キーが明示的な guardrail_id(または firewall_policy_id) を持ち、そのポリシーが存在し有効な場合、それが適用されます。
  2. ワークスペースデフォルト — キーにアタッチメントがない場合、ワークスペースの 有効な is_default ガードレール(またはポリシー)が適用されます。
  3. 強制なし — どちらも設定されていない場合、リクエストはコンテンツスクリーニングや ツール呼び出し強制なしに通過します。
アタッチされたポリシーが_無効_のときに 2 つのプレーンが異なります:
  • 無効または削除されたガードレールアタッチメントはそのキーに_ガードレールなし_を 意味します — 無効化することがオフスイッチです;ワークスペースデフォルトに フォールバックしません
  • 無効なファイアウォールアタッチメントはワークスペースのデフォルトファイアウォール ポリシーにフォールバックします — したがって、ファイアウォールアタッチメントを 無効化するとキーがワークスペースデフォルトに戻り、強制がオフになるわけではありません。
欠落(0/未設定)のアタッチメントは常にワークスペースデフォルトにフォールバックします; どちらも設定されていない場合は強制なしです。
ワークスペースごとに最大ひとつのガードレールとひとつのファイアウォールポリシーが 任意の時点でデフォルトになれます。新しいデフォルトをプロモートすると、同じトランザクション 内で古いものが降格されます — 誤って 2 つのデフォルトを持つことは決してありません。

4. 最小権限キー — エージェントごとにひとつのキー

最も安全な設定は、すべての発呼者で単一のワークスペースキーを共有するのではなく、 各エージェントに独自の狭くスコープされたキーを与えることです。 スケジュールされたタスクを実行するひとつのモデルのみを呼び出すエージェントの 適切にスコープされたキーは次のようになります:
  • model_limits: ["openai/gpt-4o-mini"] — エージェントはより高価またはより有能な モデルに切り替えることができません。
  • allow_ips: スケジューラの egress CIDR — 他のソースはこのキーを提示できません。
  • credit_limit_usd: 週次予算上限 — 暴走ループはワークスペースの残高を使い果たすことが できません。
  • expired_time: スプリントまたはデプロイメントライフサイクルの終わり — キーは自動的に 期限切れになり、再利用できません。
  • guardrail_id: このエージェントのデータ感度に特有のガードレール — ワークスペースの デフォルトよりも厳格。
  • firewall_policy_id: このエージェントが正当に必要とするツールのみを許可リストに 載せるポリシー。
このエージェントがプロンプトインジェクションによって侵害された場合、被害範囲は 限定されます:ひとつのモデルのみ呼び出せ、ひとつの IP 範囲からのみ、支出上限まで、 そしてファイアウォールポリシーが許可するツールのみです。ワークスペースの残りは 影響を受けません。
ゲートウェイスコープキー(is_firewall_gateway)は MCP ディスパッチまたは evaluate フックサーフェス専用にのみ作成してください — 一般的な推論トラフィックには 決して使用しないでください。推論パス上のゲートウェイキーは発呼者に /api/v1/firewall/* ルートへのアクセスを与え、それは必要以上に広いケイパビリティです。 ひとつのキー、ひとつの目的。

5. ポリシーが作成される場所

ガードレールとファイアウォールポリシーは両方ともワークスペーススコープで すべてのメンバーに共有されていますが、変更には適切なロールが必要です:
  • 任意のガードレール、ポリシー、またはキーを読み取る — すべてのワークスペースメンバー。
  • ガードレール、ファイアウォールポリシー、MCP サーバー、自律性レベル、承認アクション、 通常の API キーを作成または変更するDeveloper+
  • キーで is_firewall_gateway を有効化する;ゲートウェイキーのプレーンテキストを 読み取る — Admin+
ワークスペースはコラボレーション境界です:誰もがポリシーカタログを見ることができます; Developer 以上のみが変更できます;Admin のみがゲートウェイクレデンシャルを発行できます。

6. 次のステップ

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

推奨される開始姿勢 — ひとつの自律性レベルスイッチ、実際のトラフィックから チューニングする。

API キーを取得する

最初のキーを作成し、コンソールでガードレールまたはファイアウォールポリシーを アタッチします。
スコープはコントロールスタックの基盤です。各キーのスコープが狭ければ狭いほど、 いずれかのエージェントが侵害された場合の被害範囲が小さくなります — そして各エージェントが 何を許可されていたかを示す監査証跡がより明確になります。