希曼日记

msdnmm 密码家族清理

起点是审查清单上的「五处明文」(MinIO root、Loki S3 key、streaming-pipeline 的 ES/DB 密码)。逐仓审计后发现真问题比清单大:同一个密码家族在公开仓(kubernetes + cloud-native-deploy)出现约 700 处,横跨 casdoor、dragonfly、harbor、juicefs、redis、postgres 的示例与脚本,而 VPS 上活着的 minio 用的正是这个家族。

处置(2026-08-17)

  • VPS minio:轮换为强随机值 → 写入 Vault secret/vps/minio;git 侧 compose 改占位符
  • 集群 minio:新随机值 → secret/k8s/minio,经 ESO 物化(见 ESO 接线)
  • 批量置换:730 处 / 124 文件 → <REDACTED-20260817>,覆盖 kubernetes(含 archive——「原样保留」原则为安全让路并记录在案)、cloud-native-deploy 全仓、pipeline 仓、docker-deploy 的 minio 目录;终核 grep 为 0
  • 老集群消费者(Loki S3 四组 key、旧默认密码)已随集群重建死亡,置换属于卫生动作

刻意未动与待办

  • ecommerce 仓 20 份 configs/{dev,pre}.yml 也在家族里:挂靠其 Config Center(现 control-tower)迁移轨道轮换,混改会破坏契约
  • docker-deploy(已转私有)中 casdoor/postgres/redis/gorse 等 compose 仍是字面量真值:VPS 活口令与公开仓历史同源,逐个轮换列为待办
  • cloud-native-deploy 与 pipeline 仓的 git 历史仍含明文(HEAD 已清):是否重写待决策
  • kubernetes 仓历史已用 git filter-repo 重写:用上下文串替换而非裸端口号(裸数字会误伤 CSV 数据);重写后 HEAD 树哈希与原 HEAD 逐字节一致。教训:从 filter-repo 产物仓直接 push 会因缺旧对象在协商阶段挂死,fetch 回工作仓再推即秒过

相关:L3 密钥管理 · 已做未做遗漏台账