过去十多年,云上应用连接数据库、对象存储和消息队列,几乎都靠一串长期有效的密钥:AK/SK、连接字符串、服务账号文件。它们被写进配置中心、塞进容器镜像、复制到持续集成流水线,一旦泄露就等同于把权限交给了攻击者。近两年,主流云厂商与开源社区围绕「工作负载身份」逐步收敛出一套新做法:用平台签发的短时凭证替代静态密钥,让身份跟随工作负载而不是跟随人。

一、静态密钥的问题不在强度而在生命周期

静态密钥的核心麻烦是活得太久。多数企业仍按年度甚至更久轮换一次,而密钥一旦进入镜像层、部署模板、日志和代码仓库,就几乎无法彻底回收。多份年度云安全报告都指出,凭证泄露长期是云上入侵的主要入口之一;攻击者拿到密钥后往往不会触发登录异常,因为调用看起来完全合法。更棘手的是权限蔓延:为了让服务先跑起来,开发者常授予较宽权限,事后很少回收。密钥越多、存活越久,可被利用的攻击面就越大。

二、短时凭证靠身份联邦而不是复制

新一代方案的基本思路是不再分发密钥,而是让云平台自己去验证工作负载的身份。Kubernetes 中的服务账户令牌可以通过 OIDC 联邦直接换取云上临时凭证,亚马逊 EKS 的 IRSA 与 Pod Identity、谷歌云的工作负载身份联合、微软 Entra 工作负载身份都属于这一类。跨云场景下,SPIFFE 与 SPIRE 提供了另一条路径:每个工作负载获得短期 SVID 证书,既能用于双向 TLS,也能作为换取其他云凭证的凭据。关键设计在于信任边界要写清楚,只有特定集群、特定命名空间、特定服务账户签发的令牌才允许扮演某个角色,同时限制令牌的受众与有效期,通常以小时甚至分钟计。数据库侧也在跟进,IAM 数据库认证、动态密钥引擎与自动轮换证书正逐步替代写死的密码。

三、落地细节决定成败

迁移不是一个开关,而是一个渐进过程,以下三点最容易被低估。

  • 先做盘点:借助云审计日志找出仍在使用的长期密钥,标记调用方与权限范围,再逐个替换,避免一次性切换导致大面积故障。
  • 收紧信任策略:不要使用通配的命名空间或分支条件,把可扮演的角色绑定到具体工作负载,并随服务变更同步更新。
  • 可观测与兜底:把身份信息写入审计日志和监控指标,对异常的凭证换取调用设置告警;对不支持 OIDC 的遗留系统,用统一网关代理换取凭证,而不是继续下发密钥。

同时要留意令牌过期、时钟漂移、缓存复用等常见故障,并在测试环境验证凭证轮换时的重试与降级逻辑。

从管密钥到管身份,改变的不只是技术手段,还有运维习惯。静态密钥不会一夜消失,但会逐步退守到少数遗留系统中;短时凭证加上严格的信任策略,正在成为云上默认的访问方式。对企业而言,越早把身份当成一等公民来治理,越容易在合规审查与真实攻防中少踩坑。