給你的沙盒代理提供它們無法讀取的API密鑰
Superserve 發佈 Secrets 功能,允許開發者將 API 密鑰綁定到沙盒,但密鑰的真實值永遠不會進入沙盒環境,從而防止代理泄露密鑰。
Superserve 今天發佈了 Secrets 功能,這是一項全新的安全機制,旨在解決沙盒化代理中 API 密鑰泄露的問題。當開發者將 API 密鑰作為環境變量設置到沙盒中時,任何在該沙盒中運行的命令都可以讀取它——只需一個 cat 命令,密鑰就會暴露。這與將 .env 文件提交到 Git 倉庫是同樣的錯誤,只不過現在讀取它的是一個指向開放互聯網的代理。
Secrets 的工作原理是:你將憑證附加到沙盒,代碼像使用普通環境變量一樣使用它,但真實值永遠不會進入沙盒。代碼只能看到一個佔位符令牌。當請求離開沙盒時,平台會在出站時將其替換為真實憑證,並且僅針對你允許的主機。這樣,即使代理被提示注入攻擊,泄露的也只是無用的佔位符。
為什麼 API 密鑰會從沙盒中泄露?通過環境變量傳遞 API 密鑰是給代碼提供憑證的常規方式。在你的筆記本電腦上,這沒問題:你擁有密鑰,並且你編寫了代碼。但沙盒不同,它運行你不完全信任的代碼,並且處理你不控制的輸入——例如倉庫、網頁或支持工單。一旦這些代碼能夠運行命令並讀取實時憑證,一次提示注入就可能演變成密鑰泄露。當你在沙盒內運行 Claude Code 或 Codex 等編碼代理時,這個問題尤為嚴重,即使代理停留在你的服務器上,只使用沙盒來執行其工具調用,也是如此。無論如何,模型決定了沙盒內執行的內容。
Secrets 提供了一站式快捷方式,支持模型 API(OpenAI、Anthropic、Google Gemini、xAI、Perplexity、OpenRouter)、開發者工具(GitHub、GitLab、Vercel、Cloudflare、Sentry)、搜索服務(Exa、Firecrawl)以及常用的 SaaS 服務(Slack、Linear、Notion、Asana、Stripe、Resend)。列表持續增長,用户也可以創建自定義密鑰,指定自己的請求頭或認證方案以及允許的主機。
每個沙盒都是一個 Firecracker 微虛擬機,擁有自己的內核和文件系統,硬件隔離,而非與鄰居共享主機內核的容器。真實密鑰位於該邊界之外,因此即使代碼完全控制了沙盒,也無法觸及密鑰。撤銷操作是即時的,並且以失敗安全模式進行:刪除密鑰或沙盒後,佔位符停止工作,依賴它的請求會失敗,而不會回退到過期的密鑰。輪換密鑰值後,所有綁定的沙盒繼續運行,因為它們從未持有真實值。
每個密鑰都有自己的活動日誌,記錄哪些沙盒綁定到它,以及每次請求的詳細信息,包括主機、路徑、狀態和延遲。當出現異常時,可以快速定位問題。
開發者可以通過一行代碼啓用 Secrets:將憑證存儲一次,然後綁定到沙盒即可。目前已在 console.superserve.ai 上線,並提供了詳細的指南。