1. キーごとのセキュリティポリシー:キー上の 2 つのフィールド
ガードレールはモデルを流れるテキスト(PII、シークレット、jailbreak)をスクリーニング します。ファイアウォールポリシーはエージェントが発行するツール呼び出し(どのツール、どの MCP サーバー、どのホスト)を統制します。どちらもワークスペーススコープの名前付き ポリシーであり — 一度作成され、ワークスペース全体で共有されます — キーは 2 つのフィールド を通じて特定のものにオプトインします:| フィールド | バインドするもの | コンソールでの設定 |
|---|---|---|
guardrail_id | このキーのプロンプトとレスポンスをスクリーニングするガードレール。 | Developer+ |
firewall_policy_id | このキーのツール呼び出しを評価するファイアウォールポリシー。 | Developer+ |
/console/token のキーエディタで設定します。いずれかを設定するのは
Developer+ のアクションです — ポリシー自体も Developer+ で作成されます
(スコープとキーを参照)。
この 2 つのフィールドは独立しています。キーはガードレールをアタッチしてファイアウォール
ポリシーをアタッチしない、その逆、両方、あるいはどちらもなし — 各プレーンは独立して
解決します。フィールドを未設定(
0)のままにすることは、強制をオフにすることと同じでは
ありません;§3を参照してください。2. ひとつの具体例
あなたのワークスペースデフォルトのガードレールが PII をフラグするが通過させ、デフォルトの ファイアウォールポリシーがすべてのツール呼び出しを audit するとしましょう。それはほとんどの エージェントには問題ありません — しかしあなたの財務エージェントは顧客の SSN を扱い、決して シェルツールを呼ぶべきではありません。より厳格なfinance-guardrail(PII を完全にブロック)と
finance-firewall(必要な 3 つのツールのみ許可リスト化)を作成し、その両方をそのエージェントの
キーにバインドします:
12 によってスクリーニングされ、
そのツール呼び出しはポリシー 8 によって評価されます — 一方、ワークスペース内の他のすべての
キーはワークスペースデフォルトを実行し続けます。エージェント自身のコードは決して変わりません;
以前と全く同様に sk-orca-… キーで https://api.orcarouter.ai/v1/... を呼び続けます。
3. 解決:人々がつまずくルール
すべてのリクエストについて、ゲートウェイはアクティブなガードレールとアクティブな ファイアウォールポリシーを独立して解決します。順序は両方とも同じに見えます — アタッチメントが先、ワークスペースデフォルトが次 — が、1 つのケースで分岐します。ガードレール解決
アタッチされ有効 → それを使う
アタッチされ有効 → それを使う
キーの
guardrail_id が、存在し有効なガードレールを指しています。その
ガードレールがリクエストをスクリーニングします。アタッチされているが無効化または削除 → ガードレールなし
アタッチされているが無効化または削除 → ガードレールなし
アタッチされたガードレールを無効化することはオフスイッチです。キーは
いかなるコンテンツスクリーニングも受けません — ワークスペースデフォルトに
フォールバックしません。これは意図的です:ガードレールをアタッチして無効化する
のが、そのキーのスクリーニングをオフにする方法です。
未設定(0)→ ワークスペースデフォルト
未設定(0)→ ワークスペースデフォルト
キーに
guardrail_id がありません。ワークスペースの有効なデフォルトガードレールが、
設定されていれば適用されます。どちらもなし → 強制なし
どちらもなし → 強制なし
アタッチメントもワークスペースデフォルトもない → リクエストはコンテンツ
スクリーニングなしで通過します。
ファイアウォール解決
アタッチされ有効 → それを使う
アタッチされ有効 → それを使う
キーの
firewall_policy_id が、存在し有効なポリシーを指しています。その
ポリシーがキーのツール呼び出しを評価します。アタッチされているが無効化 → ワークスペースデフォルト
アタッチされているが無効化 → ワークスペースデフォルト
ここが違いです。無効化されたファイアウォールアタッチメントはワークスペース
デフォルトのファイアウォールポリシーにフォールバックします — 強制をオフには
しません。ファイアウォールアタッチメントを無効化すると、キーはワークスペース
デフォルトに戻ります;キーを無防備のまま残しはしません。
未設定(0)→ ワークスペースデフォルト
未設定(0)→ ワークスペースデフォルト
キーに
firewall_policy_id がない → ワークスペースの有効なデフォルト
ファイアウォールポリシーが適用されます。4. ブロックがどう見えるか
バインドされたポリシーがリクエストを拒否すると、呼び出し元は構造化されたエラーを見ます — エージェントはクラッシュする代わりに反応できます:| プレーン | エラーコード | HTTP | コスト |
|---|---|---|---|
| ガードレール | guardrail_blocked | 400 | なし — 入力ブロックは課金前に発火し、出力ブロックは返金します。skip-retry とマーク。 |
| ファイアウォール(inbound) | firewall_blocked | 400 | inbound ブロックはモデル呼び出しの前に発火するため、モデルトークンなし。skip-retry。 |
| ファイアウォール(保留) | firewall_approval_pending | 400 | 人間による承認のために保留;エージェントはポーリングし、承認されると再送信します。 |
5. 次に進む先
スコープとキー
完全な 3 レベルモデル — ワークスペース、ポリシー、キー — と、キーが運ぶすべての
フィールド。
トークンオブジェクト
キー上のすべてのフィールド:
model_limits、allow_ips、credit_limit_usd、
expired_time、そして 2 つのポリシーアタッチメント。ガードレール
guardrail_id でバインドするコンテンツポリシーを作成 — ルール、PII エンティティ、
アクション、プリセット。ファイアウォール
firewall_policy_id でバインドするツール呼び出しポリシーを作成 — 判定、サーフェス、
自律性レベル。キーを 1 つずつバインドする代わりに、ワークスペース全体の姿勢を一手で設定したいですか?
自律性レベルは両方のプレーン — ガードレールとファイアウォール — を一度に書き込みます。
それから、ワークスペースデフォルトよりさらに踏み込む必要のある少数のキーに、より厳格な
ポリシーをアタッチしてください。
ガードレール vs ファイアウォールを参照。
