事前把爆炸半徑縮小






昨天那篇裡提到一個朋友,Zeabur 上有 30 幾個專案,出事之後只能一個一個查。
那篇講的是事發之後怎麼止血。我們都知道預防勝於治療,所以有了這次的慘痛經驗後,我們可以思考一下使用什麼技巧來降低未來的損失。
這篇分享四個設定:一個用途一把 key、把 key 的權限縮小、每把 key 先設花費上限,還有信用卡那道防線。四個加起來大概半小時,而且今天就能做完。
一把 key 走天下,這種方便最貴
很多人的習慣是這樣:申請一把 OpenAI key,本機開發用它、side project 用它、丟到雲端平台上的服務也用它、給朋友試玩的 demo 還是它。
這樣做的問題不是它比較容易外洩,而是外洩的時候你分不出來是哪裡漏的,也不敢撤掉——那把 key 一撤,四個地方一起掛。
換成一個用途一把 key,事情變成這樣:
- 本機開發一把
- 每個線上服務各一把
- demo/給別人試用一把
- 自動化流程(CI)一把
外洩的時候,你看用量頁面就知道是哪一把在燒錢,撤掉那一把,其他幾把照常跑。
Anthropic 這邊還多一層:建 key 的時候就要選 workspace,選單一 workspace 的那種 key,建立之後就固定在那裡(也有跨 workspace 的 key,但要在每次請求裡指定 workspace)。這聽起來像限制,但它正好逼你在開 key 的當下就先想清楚這把是給誰用的。
key 的權限可以只給讀,不用全開
OpenAI 的 API key 有三種權限等級:
| 等級 | 意思 |
|---|---|
| All | 全開,而且是預設值 |
| Read Only | 所有 endpoint 只能讀 |
| Restricted | 逐個 endpoint 指定 None/Read/Write |
重點在「預設是 All」。如果你開 key 的時候一路按下一步,你拿到的是一把什麼都能做的鑰匙。
一個只是要讓模型回話的服務,不需要能刪你送去微調模型的任務,也不需要能讀你上傳的檔案。(組織層級的管理功能本來就要另一種 Admin API key,一般的 key 碰不到。)花 30 秒選 Restricted,外洩之後對方能做的事就少一大截。
OpenRouter 可以直接幫每一把 key 設上限
這段是我覺得最實際的部分。
OpenRouter 做得最直接:建 key 的時候就能設 credit limit,還可以選每天/每週/每月重置。超過上限的請求會在送到模型供應商之前就被擋掉,被擋掉的那些請求本身不會產生費用。
有件事要先知道:這個檢查是逐筆做的,所以同一瞬間湧進來一批請求時,實際金額會稍微超過你設的數字。它擋得住失控,但擋不掉多出來的那一塊錢。
這也是「一個用途一把 key」真正的價值——key 分開之後,那把在燒錢的才有辦法被單獨壓住。它不只是讓你敢撤掉,還讓損失有一個你自己訂的數字。
最後一道防線是那張卡
前面都是平台層的設定。萬一全部失守,還有一層:卡本身。
打開你的銀行 app,找卡片管理。每家銀行開放的選項差很多,先看你這張卡有哪幾項可以動:
- 消費額度上限——有的銀行只能調「當期消費額度」,有的可以另外設單筆上限
- 「國外交易」或「網路交易」的開關——不是每家都能單獨關,有的只給其中一項。AI API 的扣款幾乎都算國外交易
- 能關的就關,需要的時候再開,用完關回去
這招最土法煉鋼,能做到哪一步要看你的發卡行,但它是唯一一個不需要相信任何平台的做法。
這些要花多久
- 把現有的 key 改成一個用途一把:看你有幾個服務,一個大概 5 分鐘
- 開新 key 的時候選 Restricted:30 秒
- OpenRouter 設 credit limit:建 key 的同一個畫面,10 秒
- 銀行 app 設額度:3 分鐘
真正花時間的只有第一項,而且只要做一次。之後每開一把新 key,多花的就是那 30 秒。
一句話總結:你沒辦法保證 key 不外洩,但你可以決定它外洩的那一刻值多少錢。
- 昨天的 Day 242:zeabur-refugee skill https://github.com/dawson54068/zeabur-refugee
- OpenAI API key 權限等級:https://help.openai.com/en/articles/8867743-assign-api-key-permissions
- Anthropic Workspaces:https://platform.claude.com/docs/en/manage-claude/workspaces
- OpenRouter 每把 key 的 credit limit:https://openrouter.ai/docs/api_reference/limits