IOSOR 知識庫

不會消耗 Live 扣款的沙箱憑證

簽發永不凍結或扣減預付錢包的沙箱 API 金鑰。把 Live 金鑰擋在 CI 之外,並在 Developers 證明切換。

沙箱憑證的存在,是為了讓工程發送測試流量卻不觸碰預付帳本。從沙箱金鑰發起 Live 扣款必須不可能——不能只是 README 裡的軟警告,事故時沒人會去讀。

IOSOR 把沙箱當作獨立的信用姿態:測試 OTP 與告警可在沙箱通道成功,同時錢包保持持平。若標為 sandbox 的金鑰出現 hold 或 debit,代表作用域錯誤,必須在下一次 CI 前吊銷。

把沙箱金鑰與 Live 凍結分開

在 Developers 建立無法打開預付 hold 的沙箱金鑰。證明:沙箱通道上的測試 OTP 發送成功,同一分鐘內錢包 debit 為零、MRC 為零。匯出該視窗帳本,把證據放在金鑰 id 旁。

若出現 hold 列,立即吊銷該金鑰,當作憑證缺陷而非「不穩定測試」。重新簽發作用域正確的沙箱金鑰,重複證明直到帳本保持持平。把匯出附在發布閘門,口頭確認不算數。

僅把 CI 與預發綁定到沙箱作用域

持續整合與預發環境變數只能指向沙箱憑證。切勿把 Live 金鑰貼進 GitHub secret、Docker compose、示範用筆電 .env,或標記為「test」的共用密碼管理資料夾。

輪換任何曾出現在測試支架中的 Live 金鑰。記錄輪換時間,以便財務把異常 debit 對到洩漏視窗。輪換後仍持有 Live 密鑰的預發主機,應使下一次部署閘門失敗。

在首個試點前證明扣款隔離

邀請試點主機前,匯出沙箱發送視窗的帳本。確認無 hold、無 debit、無來自沙箱金鑰的 Live 路徑。把證明放在金鑰 id 旁,供財務稽核測試流量未產生支出。

CI 首週後再匯出一次,防止遺忘的 workflow 變數悄然帶回 Live 金鑰。每次匯出與金鑰 id、發送分鐘對齊,形成可複查證據鏈。

切換習慣留在 Developers

提升建置時,遵循 Developers 下的 Live 切換清單——簽發新 Live 金鑰、從生產主機吊銷沙箱、在 runway 變綠前完成 vault 新鮮度冒煙。切勿把沙箱密鑰當作「僅限試點」的臨時 Live 金鑰。

切換是憑證變更加帳本核對,不是設定開關翻轉。保持 webhook 目標與金鑰 id 與 runway 板上聲明的環境一致。

相關維運路徑

把切換與覆蓋誠實放在相鄰位置,避免團隊發明第三套金鑰敘事:

從 IOSOR 開始

在 Developers 簽發沙箱金鑰,向經同意的測試 E.164 發送一次 OTP,並匯出該分鐘帳本。確認零 hold、零 debit。把 CI 鎖定到該金鑰 id。然後再為試點主機申請 Live 金鑰,並從任何將承載 Live 流量的主機吊銷沙箱。

部署閘失敗後,在事故單標題寫明「sandbox 憑證缺陷」,避免財務與工程各說各話。切勿用第二次沙箱發送掩蓋第一次 hold。把掃描負責人寫進週檢清單,防止同一 Live 前綴隔週再進 staging 環境。

IOSOR 要點

關於「不會消耗 Live 扣款的沙箱憑證」:隔離本身就是產品。能打開 hold 的沙箱金鑰是缺陷,不是便利。CI 只綁定沙箱作用域;試點前證明帳本持平;切換必須在 Developers 完成憑證更換與帳本核對——永遠不要把沙箱密鑰臨時當 Live 用。

這篇指南有幫助嗎?

相關指南