Kubernetes Secret 使用:减少暴露面,而不是只换一种编码
背景 把密码放进 Secret 比写进镜像更容易管理,但 base64 编码本身没有保密能力。真正的安全边界是访问控制与生命周期。 核心判断 限制读取 Secret 的 RBAC 与可访问的命名空间。 按需注入指定键,避免 envFrom 暴露无关凭据。 设计轮换流程,并确认应用如何重新加载新值。 最小示例 下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。 envFrom: - secretRef: { name: api-credentials } # 生产环境应结合外部密钥系统和最小 RBAC 边界与误区 环境变量不会随 Secret 轮换自动更新。卷投射的刷新也不是实时保证,subPath 挂载行为要单独确认;备份与 etcd 静态加密同样需要考虑。 验证方式 轮换一次测试密钥,检查应用何时生效、旧密钥何时撤销以及日志是否泄露值。权限演练要验证无关 ServiceAccount 不能读取它。 小结 Secret 的 base64 不是加密,权限、轮换、挂载方式和审计才是完整控制。