发生了什么
10 月 21 日,部署平台 Railway 发布了安全披露:存放客户环境变量的系统出现异常活动,未授权的第三方可能读取了加密的环境变量,其中一部分已被解密。Railway 认为这是近期一系列针对平台公司、目的在于盗用 AI 推理服务商凭证的攻击之一,并表示已经通知上游服务商主动吊销所有 key。官方建议所有用户立即轮换存放在 Railway 的全部环境变量和私有镜像仓库凭证,并检查相关服务日志。
X 上的反馈印证了影响面:@FF_V12 提醒用 OpenAI、Anthropic、OpenRouter、Stripe 的人去读声明;@arthurl311 说他只放在 Railway 上的 OpenAI 和 Claude key 当天就得轮换,还收到了 Anthropic 的邮件;@whodeven 转述 Postiz 创始人的说法,Anthropic 和 Stripe 标记其 key 已泄露后,Postiz 暂停了服务。
先假设旧 key 已经不能用
既然 Railway 已要求上游吊销,你的应用突然报认证错误,大概率就是这个原因,不必先去排查代码。接下来按顺序处理:
- 在 Console 新建 key。 登录时自己输入 Anthropic Console 的网址,不要点邮件里的链接。给这个部署单独建一把 key,最好放在专用的 workspace 里,方便以后单独设置额度、单独吊销。
- 用引用而不是粘贴。 Railway 的后续指南建议:把凭证放在共享变量里,再让各服务引用它;直接粘贴到某个服务的值,下次轮换时很容易漏掉。
- 重新部署。 Railway 说明容器只在启动时读取变量,改完变量后要重新部署,新 key 才会生效。官方还提到事件期间部署曾暂停,要等构建恢复后再上线。
- 删除旧 key。 即使已被吊销,也在 Console 里手动删除,确认列表里没有不认识的 key。
- 查用量。 在 Console 查看事件以来的用量和账单,留意不是你发起的调用。如果开着自动充值,先把阈值调低或暂时关闭,等确认没问题再恢复。
顺便检查一下
- 同一把 key 是否还放在本地
.env、CI 或其他平台?只要在 Railway 出现过,就全部替换。 - 别忘了同时存放在那里的数据库密码、Stripe key 和镜像仓库令牌,它们和 Claude key 一样在建议轮换的范围内。
小结
部署平台出事时,最稳的做法是不等通知、不赌运气:凡是存在那里的密钥,全部换掉。给每个部署单独一把 key,下次出事时只需要换一把。
如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。
