凭据管理解决什么问题
凭据管理服务(常见英文名 Secrets Manager)用于托管数据库口令、API Key、证书私钥等敏感配置:应用不把明文写在配置文件里,而是按需从服务读取,并按策略定期轮转。它把凭据的生命周期(创建、读取、轮转、吊销、审计)集中到一处,解决明文散落在代码仓库、镜像、流水线变量与值班文档里的问题。三家云厂商都有对应产品,只是名称不同。
术语对照
| 概念 | 阿里云 | 腾讯云 | 华为云 |
|---|---|---|---|
| 产品名 | KMS 凭据管家 | 凭据管理系统 SSM | 凭据管理服务 CSMS |
| 凭据类型 | 通用凭据、RDS 凭据等 | 通用凭据 | 通用凭据 |
| 轮转 | 支持自动轮转 | 支持轮转 | 支持轮转 |
| 访问方式 | SDK/API 获取 | SDK/API 获取 | SDK/API 获取 |
| 权限模型 | 按账号与策略授权读取 | 按凭据与子账号授权 | 按委托与策略授权 |
| 审计 | 读取与轮转操作可查 | 操作记录可查 | 操作记录可查 |
典型使用场景
- 数据库口令集中托管,应用启动时动态获取而不是本地存明文
- 定期自动轮转高权限口令,缩小泄露后的有效窗口
- 为不同环境(开发/测试/生产)在同一套代码下注入不同凭据
- 把 CI/CD 里的明文变量改为运行时拉取,减少流水线泄露面
- 证书私钥统一托管,便于到期前统一更换
使用要点(伪代码示意)
使用要点(伪代码示意)
# 启动时按需拉取,不落盘到配置文件
secret = GetSecretValue(id="db-prod-app") # 具体接口名以各厂商 SDK 文档为准
# 建立连接后不长期缓存明文,按 TTL 到期重新获取
# 轮转后旧连接会认证失败:应用需支持重连并重新取新凭据
# 权限最小化:只允许该应用的身份读取自己那一条凭据凭据轮转要配合应用侧的缓存刷新策略:轮转之后旧连接仍在使用的进程会报认证失败,通常需要应用支持重连并重新获取凭据,或把缓存 TTL 设得短于轮转周期。
轮转必须有告警:轮转失败的凭据会在应用某次重启时集中爆发为登录失败,属于典型的静默故障。