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 用。

这篇指南有帮助吗?

相关指南