3. Secrets工具对比概览:AWS、Azure、GCP与HashiCorp的定位与特点

说实话,市场上Secrets管理工具不少,但真正在生产环境里经过大规模验证的,就那么几个。我最早在项目里用的是自己写的加密文件加环境变量,后来发现惹的祸比省的事还多……于是开始认真研究这些专业工具。

这一章咱们快速过一遍四个主流选手:AWS Secrets Manager、Azure Key Vault、GCP Secret Manager、HashiCorp Vault。我会从定位、特点、适用场景几个角度讲,帮你心里先有个全貌。后面几章再深挖每个工具的细节。

为什么需要专门的Secrets工具?

很多人觉得把密钥放在配置文件里就行,反正代码仓库是私有的。你想想看,一旦代码泄露、实习生误操作、或者CI/CD日志把变量打出来……密码就裸奔了。我之前遇到一个团队,把数据库密码写在GitHub公开仓库的README里——不是故意的,是忘了改。

专业的Secrets工具至少干三件事:

  • 安全存储 — 加密存放,不暴露明文。
  • 访问控制 — 谁、什么服务、在什么条件下能读。
  • 自动轮换 — 定期换密码,减少泄露影响。

有些工具还管证书签发、动态凭据、审计日志等。下面就看各家怎么实现的。

AWS Secrets Manager — 云原生全家桶里的自动轮换高手

AWS Secrets Manager(简称ASM)是AWS自家服务,跟IAM、Lambda、RDS等深度集成。我第一次用它是在一个微服务迁移项目里,数据库密码每30天自动轮换一次,应用居然完全没感知,这种体验确实好。

  • 定位:AWS生态内的中心化密钥托管服务,面向云原生应用。
  • 核心特点:一键轮换(支持RDS、Redshift等)、跨区域复制、细粒度IAM策略、自动过期。
  • 收费:按密钥数量和API调用次数计费,单价不低。
  • 注意点:离开AWS基本用不了;轮换依赖Lambda函数,你得会写那个函数。

我的经验:在混合云场景里硬把ASM暴露给本地服务,网络延迟和跨账号授权让你想哭。老老实实只在单一AWS账号内用。

Azure Key Vault — 微软生态下的全栈密钥管家

Azure Key Vault(AKV)不仅管密码,还能管证书和加密密钥。我有一阵子负责把一套应用从Azure迁移到别的云,结果发现Key Vault的访问策略绑定Azure AD太紧,迁移时不得不重建所有密钥……算是交了一笔学费。

  • 定位:Azure云上统一管理密钥、证书、机密的安全容器。
  • 核心特点:支持硬件安全模块(HSM)托管密钥、与Azure DevOps/Pipeline集成、软删除保护、高级访问策略(RBAC + 传统策略)。
  • 收费:标准层按操作计费,很便宜;高级层用HSM贵不少。
  • 注意点:AKV没有内置的轮换功能(需要自己写逻辑或用Azure Automation);跨区域灾难恢复需要提前规划。

避坑指南:我曾经把生产密钥直接存在AKV的标准层,结果审计要求FIPS 140-2 Level 3……只能花钱升级高级层,并重新导入密钥。确认合规需求再选层。

GCP Secret Manager — 简单直接,专精一件事

GCP Secret Manager(GSM)起步晚一些,设计理念很纯粹:只管密码,不碰证书和密钥(那些有Cloud KMS管)。我最喜欢它的版本管理和IAM条件,比如只允许某台GCE实例读某个版本的密码。

  • 定位:Google Cloud上的机密存储服务,极简、专一。
  • 核心特点:不可变版本、自动复制到多个区域、IAM条件访问、与Cloud Build/Cloud Run无缝集成。
  • 收费:按激活的版本和访问次数收费,价格实惠。
  • 注意点:没有内置轮换,需要配合Cloud Scheduler和Cloud Functions自己写。

重要! GCP Secret Manager没有“自动过期”能力。如果你的合规要求密钥90天必须轮换,就得自己搭定时任务。我开始以为有,结果差点出合规事故。

HashiCorp Vault — 跨云跨平台的老牌王者

HashiCorp Vault是唯一一个不受云厂商绑定的选项。我在一个多机房+K8s+多云的项目里全靠它统一签发动态数据库凭据,简直不要太爽。当然,运维复杂度也上去了——你得自己管理Vault集群的高可用。

  • 定位:企业级Secrets管理平台,支持任何基础设施,中心化策略引擎。
  • 核心特点:动态凭据(数据库、云厂商临时访问密钥)、加密即服务、丰富的后端(K8s、Alicloud、Consul等)、Active Directory集成、审计日志。
  • 收费:开源版免费(功能强大),企业版额外有HSM支持、命名空间、性能复制等。
  • 注意点:学习曲线陡,运维成本高。小团队慎选。

我建议:如果团队已经有DevOps能力,并且需要跨云或混合云,可以直接上Vault。如果只是单一云平台的几个App,用云厂商自带工具省心很多。

快速对比:一张表看清差异

下面这个表总结四个工具的关键区别。记住,没有银弹,选合适的。

维度 AWS Secrets Manager Azure Key Vault GCP Secret Manager HashiCorp Vault
托管方式 全托管 全托管 全托管 自管 / 企业版托管
内置轮换 是(需Lambda) 否(需自定义) 否(需自定义) 是(动态凭据)
密钥类型 密码、 密码、证书、加密密钥 密码 密码、证书、密钥、动态凭据
跨云支持 仅AWS 仅Azure 仅GCP 任意平台
运维复杂度 低 低 低 高
典型场景 AWS微服务 Azure + AD环境 GCP云原生 多云、混合云、K8s

你可能注意到,HashiCorp Vault的功能明显更全,但代价是你要自己扛运维。云厂商的工具都很省心,但锁在自家生态里。我个人习惯:如果团队规模大、基础设施复杂,选Vault;如果是单一云账号,直接云厂商的Secrets服务就行——别为了装X而造轮子。

一张图看懂四者定位

下面这张SVG图用两个维度(场景范围 vs 功能深度)把四个工具摆开了,方便你理解各自的侧重。

Secrets工具定位象限图 场景范围 → 单一云 多平台 功能深度 丰富 基础 AWS Secrets Manager Azure Key Vault GCP Secret Manager HashiCorp Vault 象限说明 左上:单一云 + 中等深度 右下:多平台 + 丰富功能 左下:单一云 + 基础功能

你看,AWS、Azure、GCP三家云厂商的工具都落在单一云区域,功能深度上AKV和ASM比GSM丰富一些(毕竟多管了证书和密钥)。HashiCorp Vault直接跳到了多平台+深度功能的角落,代价就是你要自己扛运维。这张图是我在选型时喜欢用的思维框架,供你参考。

小结

这一章咱们从定位和特点角度把四个工具看了个大概。没有的好坏,关键看你的场景:单云省心选厂商工具,多云复杂上Vault。接下来几章,咱们会逐个深入,看看每个工具怎么配置、怎么用,以及我踩过的坑。