Skip to content

ADR-0007 已知凭据泄漏与暂不轮换的决定

  • 日期:2026-07-27(记录),2026-07-28(归档进知识库)
  • 状态:已决定 —— 暂不处理
  • 相关:私有化部署总览

背景

私有化改造盘点时发现,各服务的 application-k8s.yaml 把环境相关配置连同密码一起打进了 jar,并随源码进入 22 个 git 仓库。这既是"镜像不通用"的根因(已由 prod profile 解决),也意味着生产凭据以明文散落在源码里

任何拿到过源码的人(含离职员工、外包)都持有这些凭据。

泄漏清单

编号凭据位置风险
aAWS IoT access-key-id + secret-access-key(AKIA… 长期密钥)finance、vem 的 application-k8s.yaml最高。长期有效,可从公网直接调用该 IAM 用户权限范围内的 AWS API
bStripe api-key(sk_test_…)finance测试密钥,风险较低
bStripe client-id / webhook-secretfinancewebhook 签名可被伪造
c生产 MySQL / Redis / RabbitMQ / Nacos 密码各仓库 application-k8s.yaml中间件在内网,需先进内网
dSSH 私钥hiapi-cloud-admin-ts/deploy/keys/已随旧镜像分发给客户,应视为已泄露

优先级判断:a 和 d 高于其余。自建中间件在内网,而 AWS 长期密钥从公网就能用,SSH 私钥已经在客户手里。

决定

业主已知悉风险,决定暂不轮换(2026-07-27)。

理由是这不阻塞私有化改造推进 —— prod profile 已让新部署不再读这些明文值,新客户环境用的是各自随机生成的密码。

后果(需要清楚承担的)

  • 旧密钥本身依然有效。 配置外部化只是让新部署不再使用它们,并没有使它们失效
  • 轮换与否不影响私有化的任何后续阶段
  • 若将来发生 AWS 账单异常、Stripe 异常 webhook、客户环境被非授权访问,先查这里

这条记录为什么存在

原始记录只存在于一份本地未入库的方案文档里(私有化部署与应用市场落地方案.md,2026-07-28 已废弃删除)。若不归档,半年后不会有人记得仓库里那把 AKIA… 是活的。

不再重复建议轮换 —— 决定已经做过了。这里只保留事实,供将来排查时对照。