主流云KMS选型:AWS、Azure、GCP到底怎么选?
说实话,每次帮团队选云KMS,我都觉得像在挑工具。没有的好坏,只有适不适合。今天我就把三家主流云服务商的KMS掰开揉碎讲清楚。
我自己在项目里踩过的坑,不算少。最惨的一次,是选错了密钥托管方式,结果合规审查差点没过。嗯,从那以后,我养成了一个习惯:先看管控粒度,再看集成深度。
AWS KMS:生态最成熟,但“权责分离”你得懂
AWS KMS是业界最早推出的云密钥管理服务之一。它最大的特点,我觉得是与AWS生态的深度绑定。S3、RDS、Lambda…几乎你能想到的AWS服务,KMS都原生支持。
核心概念就两个:CMK(客户主密钥)和Data Key(数据密钥)。CMK永远留在KMS里,不出去。你的应用只能拿到加密后的Data Key。
我记得有一次帮客户做加密改造。对方说:“我要用自己的HSM。”我说:“行,那就用CloudHSM + KMS的Custom Key Store。”结果他纠结了三天——因为CloudHSM的管理权限和KMS是分开的。
AWS KMS的自动轮转功能很方便,但注意:它只支持每年一次。如果你的合规策略要求每季度轮转一次……嗯,那就得自己写Lambda了。
| 特性 | AWS KMS | Azure Key Vault | GCP KMS |
|---|---|---|---|
| 管理模型 | 基于CMK+数据密钥 | 基于密钥+密钥版本 | 基于CryptoKey+KeyRing |
| HSM选项 | Custom Key Store(需额外CloudHSM) | 内置HSM池 | Cloud HSM(需单独创建) |
| 自动轮转 | 支持(1年/次) | 手动或通过证书生命周期 | 支持(可配置周期) |
| 集成服务范围 | 极广(200+服务原生集成) | Azure原生服务+微软生态 | GCP服务+开源工具 |
| 定价模型 | 按月+API调用次 | 按密钥数量+操作类型 | 按月+版本数量+API调用 |
Azure Key Vault:对微软生态用户最友好
Azure Key Vault其实不只是管密钥。它还管证书和机密。你想想看,一个服务搞定三件事,省多少事?
我个人习惯在Azure Key Vault里,把机密和密钥放在不同的vault里。为什么?因为vault的防火墙策略是全局的。一旦搞混,你老婆可能连你数据库密码都能读到……
Azure Key Vault有个特点:软删除默认开启。这玩意在初期可能会让你觉得麻烦——删个东西还要等90天?但我在生产环境遇到过三次事故,每次都是靠软删除救回来的。嗯,真香。
它支持RBAC和vault访问策略两套权限体系。我建议你用RBAC,因为和Azure AD一致,好审计。别问为什么,问就是我被审计过——旧vault用的是vault策略,结果审计工具读不出来,得手工对表。
GCP KMS:简单、干净、适合开源玩家
GCP KMS有一个好处:概念少。它这儿的逻辑是:一个KeyRing → 多个CryptoKey → 每个CryptoKey有多个版本。
说白了,KeyRing就是个逻辑分组。你可以按环境、按业务域、按地区分。我个人习惯按地区分——因为GCP的密钥是区域稀缺资源。万一你亚太区的KeyRing挂了,美西的密钥又用不了……嗯,所以最好跨区域多建几个。
GCP KMS在自动轮转上比AWS灵活。你可以配置按天轮转,没错,按天。但说实话,我从来没用过低于90天的周期——轮转太频繁,你对版本的管理成本就高了。
它在开源社区的集成度很高。你想想看,Terraform、Vault、Kubernetes的Secrets Store CSI Driver……GCP KMS都原生对接。如果你的团队用这些工具,GCP会是首选。
选型对比:三个维度帮你下决定
你可能会问:“这么多差异,我到底该选哪个?”
我自己的经验,看三个维度就够了:
- 技术栈锁定度:如果你们全团队都在AWS,或者全是Azure,那就别折腾了。能省的事别自己扛。
- 合规要求:如果你的合规审计要求FIPS 140-2 Level 3……那AWS的Custom Key Store + CloudHSM几乎是唯一选择。Azure和GCP的HSM默认是Level 2。
- 团队运维能力:如果你们是小团队,没专人管密钥,GCP KMS或Azure Key Vault会更省心。因为这两家帮你管了底层的HSM集群。
核心知识结构图
下面这张图,是我基于多年实践总结出来的选型逻辑。你可以把它当作一个快速决策树:
选型实战总结
说到底,这三家没有谁是“最强”的。你想想看,都是大厂,基础能力都过硬。
我个人的实战体验是:
- 要做最复杂、多区域、高合规的加密系统? AWS KMS + CloudHSM 组合拳最稳。
- 团队在微软生态里,或者你需要统一管理密钥+证书+机密? Azure Key Vault 别犹豫。
- 开源工具狂魔,或者预算敏感? GCP KMS 简单、便宜、好集成就够了。