1. 最小権限チェックリスト
すべてのキー — 新規または既存 — を、キーエディタ(/console/token)でこれら 6 つのゲートに
通します。それらのいずれかを設定するには Developer ロール以上が必要です;2 つのポリシー
プレーン(§5–6)は別途作成され、ここでバインドされます。
model_limits — モデルを固定
model_limits — モデルを固定
model_limits をこのエージェントが必要とする正確なリストに設定します(そして
model_limits_enabled を有効化します)。リスト外の任意のモデルへの呼び出しは、ゲートウェイを
離れる前に拒否されるため、乗っ取られたエージェントはより高価あるいはより高性能なモデルに
エスカレートできません。
チェック: リストは仕事が許す限り短いか — 理想的には 1 つのモデルか?
詳細:モデル制限。allow_ips — ソースを固定
allow_ips — ソースを固定
allow_ips を、エージェントが実際に呼び出すソースアドレスまたは CIDR に設定します。それ以外の
どこからか提示された漏洩キーは認証層で拒否されます。空はすべてのIP が許可を意味します。
チェック: 固定ホストまたはスケジュールエージェントについて、リストは空でなく、その
egress にスコープされているか? 詳細:IP 許可リスト。credit_limit_usd — 支出を上限設定
credit_limit_usd — 支出を上限設定
credit_limit_usd を、エージェントが生涯で決して超えるべきでない上限に設定します。
ゲートウェイはそれをキーの支出に対して強制します。0 は無制限を意味します — 暴走ループが
あなたの残高全体を枯渇させ得ます。
チェック: 上限は 0 ではなく、実際の予算か? 詳細:
クォータ、上限、失効。expired_time — 締め切りを与える
expired_time — 締め切りを与える
expired_time を絶対的な失効 — スプリント、デプロイ、あるいは CI 実行の終了 — に設定します。
-1 は決して失効しないを意味します。短命キーは忘れられた攻撃面として居座れません。
チェック: 一時的または委託先のキーは、-1 ではなく実際の失効を持つか? 詳細:
失効するキー。guardrail_id — コンテンツポリシーをバインド
guardrail_id — コンテンツポリシーをバインド
ガードレールを
guardrail_id 経由でアタッチして、リクエスト
(そして、サポートされる場合はレスポンス)テキストが、モデルに到達する前に PII、シークレット、
インジェクション意図についてスクリーニングされるようにします。
チェック: 機密プロンプトを扱うキーは、ガードレールがバインドされているか、あるいは
ワークスペースデフォルトを継承するか? §5 を参照。firewall_policy_id — ツールポリシーをバインド
firewall_policy_id — ツールポリシーをバインド
ファイアウォールポリシーを
firewall_policy_id 経由でアタッチして、
このキーが発行するすべてのツール呼び出し、MCP ディスパッチ、egress が、エージェントが正当に
必要とするものの許可リストに対して評価されるようにします。
チェック: ツールを呼ぶエージェントは、ファイアウォールポリシーがバインドされているか、
あるいはワークスペースデフォルトを継承するか? §6 を参照。2. 何を / どのくらいの頻度で / どこで
3 つの問いが、チェックリストを一度きりの雑用から姿勢へと変えます。何を
上の 6 つのゲート、順番に:
model_limits → allow_ips → credit_limit_usd →
expired_time → guardrail_id → firewall_policy_id。どのくらいの頻度で
作成時のすべてのキーで、そして定期的なレビューで — エージェントのスコープが変わる
とき、キーをローテーションするとき、そして長命キーについては
固定のペースで。
どこで
コンソールのキーエディタ(
/console/token)で、Developer+ として。2 つのポリシーは
それぞれ独自のコンソールで作成され、それからキー上でバインドされます。3. ひとつの具体的な最小権限キー
1 つの安価なモデルで、1 つのホストからサポートチケットを要約するスケジュールエージェントは、 ほとんど権限を必要としません。完全に強化されたキー:| フィールド | 値 | 理由 |
|---|---|---|
model_limits | 1 つの要約モデル | フロンティアモデルにエスカレートできない |
allow_ips | スケジューラの egress CIDR | 漏洩キーは他の場所では役に立たない |
credit_limit_usd | 週次の上限 | 暴走ループが残高を枯渇させられない |
expired_time | デプロイの終了 | 自動失効、居座れない |
guardrail_id | PII マスキングガードレール | リクエストテキストがスクリーニングされる |
firewall_policy_id | そのツールのみ許可リスト化 | 想定外のツール呼び出しがない |
4. /v1 リレー呼び出し vs コンソール
チェックリストは、あなたのセッション(Developer+ ユーザー)でコンソール内で設定されます。 あなたのエージェントはそれらの設定ルートに決して触れません —/v1/* 推論呼び出しでその
スコープ付きリレーキー(sk-orca-…)を提示し、上の制限とバインドされたポリシーがそれぞれで
強制されます。
model_limits に openai/gpt-4o-mini が含まれない場合、この呼び出しはゲートウェイを
離れる前に拒否されます。呼び出し元の IP が allow_ips にない場合、認証層で拒否されます。
エージェントコードは同じまま;キーが被害範囲を決定します。
5. ゲート 5 — バインドされたガードレール
guardrail_id は、ワークスペーススコープの順序付きコンテンツポリシーをキーにバインドします。
解決は、キーの明示的なガードレール(存在し有効な場合)、それ以外はワークスペースデフォルト、
それ以外はなし、です。
ガードレールは、無効化されたときの厳格なオフスイッチです:無効化または削除された
guardrail_id は、キーがいかなるガードレールも得ないことを意味します — ワークスペース
デフォルトにフォールバックしません。これはファイアウォールプレーン(§6)の正反対なので、
バインドされたガードレールが単にアタッチされているだけでなく、有効であることを検証してください。block、mask、flag で実行されます。例えば PII Shield
プリセットは、リクエストがモデルに到達する前に PII をマスクします。ガードレールを Developer+
として作成しアタッチしてください — ガードレールと
ポリシーをバインドを参照。
6. ゲート 6 — バインドされたファイアウォールポリシー + ゲートウェイスコープ
firewall_policy_id は、ワークスペーススコープのツール呼び出しポリシーをバインドします。
それはエージェントが取るアクション — アドバタイズされるツール、モデルが発行する tool_calls、
MCP ディスパッチ、そしてアウトバウンド egress — を、判定が allow、audit、deny、
sanitize、pending_approval、cap_cost である順序付きルールリストに対して統制します。
ファイアウォールプレーンはガードレールと異なる解決をします:無効化されたアタッチ済み
ファイアウォールポリシーはワークスペースデフォルトにフォールバックし、強制をオフにはしません。
なのでポリシーをバインドして無効化すると、キーはワークスペースデフォルトに戻ります — 決して
サイレントに無防備にはなりません。
tight / balanced / permissive)をアトミックに設定する単一の
スイッチで、ワンクリックの取り消しを伴います。
ファイアウォール §8を
参照。
7. チェックリストの後
セキュアエージェント ベースライン
推奨される開始姿勢 — 1 つの自律性スイッチ、それから実トラフィックからチューニング。
ポリシーをバインド
guardrail_id と firewall_policy_id がどうアタッチされ解決するか。過剰な権限
このチェックリストが封じ込めるために作られた脅威。
漏洩キー
スコープ付きキーが露出した瞬間に何をすべきか。
