這裡的一切都綁定到你的工作區,並從
主控台設定。你的應用持續以每個租戶的
sk-orca-... 金鑰呼叫
https://api.orcarouter.ai/v1/chat/completions——只有閘道中的政策改變。設定
動作需要每個步驟標明的角色;只有 /v1/* 中繼呼叫使用
一把租戶金鑰。1. 多租戶 AI 安全模型
一個多租戶閘道有著與一個單一應用不同的威脅形狀。 重要的風險隨租戶數量擴大:金鑰外洩 = 一個租戶的爆炸半徑
一把外洩的租戶金鑰不該能夠耗盡你的帳號、呼叫
你從未曝露的模型,或觸及該租戶預算之外的地方。
跨租戶資料滲漏
一個租戶的 PII 落入共享日誌,或落入一個路由到
另一個租戶的回應,破壞了你的資料隔離承諾。
一個吵雜的租戶代理
一個租戶的代理在一個工具上迴圈或擷取任意主機,
不該為其他所有人劣化閘道。
逐租戶合規
一個受監管的租戶可能需要你其餘租戶不需要的 PII 遮罩與資料駐留地。
2. 基準:每個租戶繼承的一條工作區政策
在工作區層級一次撰寫你的安全姿態,這樣每個 租戶金鑰都預設繼承它——無需逐租戶複製。一條預設防護欄
在 Guardrails → New guardrail 中,撰寫一條命名的政策(例如
任何沒有明確防護欄附加的租戶金鑰都會回退到
這個預設值。撰寫一條防護欄需要 Developer 角色。
tenant-baseline)並把它標記為工作區預設值(is_default)。
加入一條 PII 規則,stage input,動作 mask,這樣沒有任何租戶的
請求會把原始 PII 帶往上游:一條預設防火牆政策
如果你的租戶運行代理,在動作平面上做同樣的事:在
Firewall → Policies 中,撰寫一條預設政策,或——更快——開啟
Firewall → Posture 並套用
balanced
自主等級。那會稽核
每個租戶的工具呼叫並在工作區範圍標記 PII,同時拒絕
最具破壞性的動作,所以你在廣泛強制執行之前觀察真實的租戶行為。Developer 角色。3. 每租戶一把範圍限定金鑰
這是租戶隔離的核心:絕不跨租戶共享一把金鑰, 也絕不把你帳號層級的金鑰交給一個租戶。 每租戶鑄造一把金鑰, 範圍限定到那個租戶恰好可以做的事。在 API Keys → New key 中,設定:為支出設上限(denial-of-wallet 邊界)
為支出設上限(denial-of-wallet 邊界)
把
credit_limit_usd 設為那個租戶的上限(0 = 無限制)。這
是單一最重要的多租戶控制:一把外洩或被濫用的
租戶金鑰只能燒掉那個租戶的預算,絕不能燒你的帳號。
參見 denial-of-wallet。固定模型
固定模型
開啟
model_limits(model_limits_enabled)並只列出那個租戶的
方案所包含的模型——這樣一把外洩的金鑰就無法運行一個
租戶從未付費的昂貴模型。標註環境/租戶
標註環境/租戶
設定
environment(一個自由格式的部署標籤,例如 prod /
staging),這樣一個租戶的流量在你的日誌中就可歸因,且你
可以一眼分辨生產金鑰與測試金鑰。鎖死來源與壽命
鎖死來源與壽命
如果一個租戶從固定伺服器呼叫,把
allow_ips 設為那個租戶的後端外送 IP,並為試用或限時的租戶設 expired_time
(-1 = 永不過期)。tenant-baseline 防護欄與
預設防火牆政策——你鑄造了一把範圍限定金鑰,而它
已經受治理。金鑰在建立後顯示時會被遮罩,所以在你佈建租戶時複製
它一次。
4. 逐租戶覆寫——收緊一個而不觸及其餘
大多數租戶搭乘基準。當某個需要更多時——一個受監管的租戶、 一個企業層級、一個在察看名單上的租戶——把一條更嚴格的命名 政策僅附加到那把金鑰:| 設定在金鑰上 | 對那一個租戶的效果 |
|---|---|
guardrail_id | 換入一條更嚴格的命名防護欄(例如 PII 一律 block)。 |
firewall_policy_id | 換入一條更緊的防火牆政策(例如預設拒絕工具)。 |
防護欄:明確的附加就是關閉開關
防護欄:明確的附加就是關閉開關
一個明確的
guardrail_id(當它存在且啟用時)總是
套用且永不靜默回退。如果那個附加的防護欄被
停用,金鑰就會得到沒有防護欄——它不會掉到
工作區預設值。讓 guardrail_id 保持未設定(0/null)以繼承
tenant-baseline 預設值。防火牆:一個被停用的附加會回退
防火牆:一個被停用的附加會回退
一個附加的
firewall_policy_id 在它存在且啟用時套用;
如果那個政策被停用,金鑰就會回退到工作區
預設防火牆政策。(這與防護欄
關閉開關行為相反——刻意設計。)5. 一個具體的雙層級範例
假設你在一個工作區上運行一個免費層級與一個受監管的企業層級:- 工作區基準——
tenant-baseline防護欄(輸入 PII 遮罩, 卡號/SSN 一律 block)作為is_default,加上balanced防火牆 自主等級。每個租戶都繼承這個。 - 免費層級租戶金鑰——沒有
guardrail_id(繼承基準)、model_limits固定到openai/gpt-4o-mini、一個低的credit_limit_usd。 - 企業租戶金鑰——
guardrail_id設為一條更嚴格的enterprise-pii防護欄(輸入 PII block,而非 mask;output階段 secrets block)、一個帶更緊工具允許清單的firewall_policy_id、一個更高的額度上限,以及allow_ips固定到他們的 後端。
/v1/chat/completions 端點。
閘道為每把金鑰解析正確的政策——你的應用程式碼
對每個租戶都是相同的。
6. 逐租戶合規與駐留地
一個受監管的租戶常常需要其餘租戶不需要的一份證明。合規 作為防護欄與防火牆的工作區同儕運行:- 瀏覽框架目錄與就緒度對任何 Member 開放
且免費——為一個租戶詢問的框架確認涵蓋範圍
(
soc2、hipaa、gdpr、iso_27001、pci_dss等等)。 - 安裝一個包(
POST /api/compliance/packs/:key/install) 會把匹配的防護欄與防火牆政策具現化進你的 工作區;它需要工作區 Admin 與一個付費方案。 - 資料駐留地透過
PUT /api/compliance/residency(Admin)固定你合規報告產物的區域 (us/eu/uk/ap/cn/global)。跨區讀取會被 扣留。
這裡的駐留地治理合規報告產物,而非
推論資料的地理固定。關於 request-log 的部分:日誌保留
預設為 30 天(硬性上限 180),而一次使用者自我刪除會運行一個
30 天寬限然後一次 PII 洗刷,級聯到那個使用者的 guardrail
matches 與 request log。
7. 從一個工作區觀察每個租戶
所有可觀測性都是工作區範圍的,所以一組動態涵蓋你所有的 租戶——可以篩選到單一一個:- Guardrails → Matches(任何 Member)——跨所有租戶觸發的 每條規則:型別、動作、階段、細節。匹配到的子字串只有在那條 防護欄的 Log raw content 開啟時才會被記錄(預設 關閉——隱私保守的姿態,這在多租戶中最重要)。標記一個誤判以調校(Admin)。
- Firewall → Events / Runs(Developer+)——每個工具呼叫,按每個 代理 run 彙整,這樣一個吵雜租戶的迴圈或一個新穎的 egress 就會突出。
- Anomaly feed(Member)——對照一個習得的週小時基準評分的 速率/成本飆升,即使每個呼叫個別都被允許,也能捕捉一個租戶燒出常態。
guardrail_blocked /
firewall_blocked),消耗那個租戶零配額,並被標記為
skip-retry——邊界守住了,卻沒有為那次拒絕向租戶
收費。
8. 往哪裡深入
範圍金鑰、政策、工作區
金鑰附加與工作區預設值的完整解析順序。
防護欄參考
完整的每種規則型別、PII 實體與逐實體覆寫。
防火牆參考
裁決、介面、自主等級,以及政策平面。
停止資料外洩
鎖定一個租戶代理的外送 egress。
