ARTICLE / 2 MIN READ
SPIFFE 工作负载身份:替代长期密钥的服务间认证方案
用可轮换的工作负载身份和短期 SVID 建立服务间 mTLS,逐步迁移硬编码密钥和共享账号。
服务间认证如果依赖长期 API key,密钥泄露后很难判断影响范围,也难以轮换。工作负载身份的目标是让“运行在哪里、由谁发布、属于哪个服务”成为可验证身份,而不是把秘密散落在配置文件里。
身份由工作负载证明
SPIFFE 用 SPIFFE ID 表示工作负载,SPIRE 等实现根据节点、容器、服务账号或云厂商证明签发 SVID。SVID 通常是短期 X.509 证书或 JWT,服务启动后自动获取和轮换,不需要应用读取长期私钥。
mTLS 只解决一半
mTLS 验证通信双方身份,但授权仍要按方法、资源、租户和环境判断。网关或服务端根据 SPIFFE ID 映射到策略,拒绝开发环境身份访问生产数据。策略变更要有版本、审批和审计记录。
迁移路线
先在非关键链路启用旁路代理,记录现有调用关系;再为一类服务签发身份并做双栈认证;最后删除旧密钥和共享账号。期间保留紧急回滚开关,但要设置过期时间,避免临时兼容变成永久后门。
运维验收
监控证书剩余 TTL、签发失败、信任域变更、mTLS 握手错误和策略拒绝。演练 CA 不可用、节点被替换和身份撤销,确认业务能快速降级且审计仍完整。
参考资料:SPIFFE Concepts。
GITHUB DISCUSSION
评论与回复
评论保存在 GitHub Discussions,登录 GitHub 后即可参与,发布和回复都在本页完成。
评论区进入视口后自动加载。