4. 云端KMS服务介绍:主流云厂商KMS功能对比、计费模型、SLA
说实话,自建HSM迁移到云端,最核心的一步就是选对KMS。我做过不少迁移项目,每次到选型阶段都要把三大厂商翻来覆去比一遍。为什么呢?因为坑藏在细节里。下面我带你逐个看看AWS KMS、Azure Key Vault和GCP Cloud KMS,咱们从功能、计费、SLA三个维度掰开揉碎聊。
4.1 AWS KMS – 老牌选手,生态最全
AWS KMS用起来最顺手,原因很简单:跟CloudTrail、Lambda、S3深度集成。我自己刚接触时就被它“一条龙”的审计能力惊到了——每次密钥操作都自动写入CloudTrail,根本不需要额外配置。
- 核心功能:支持CMK(客户主密钥)、自动轮换(每年一次,可配置)、FIPS 140-2 Level 2/3(CloudHSM做卫士)。
- HSM支持:CloudHSM集成,但注意——CloudHSM是独立的,不是KMS默认后端。KMS本身使用的是经过FIPS 140-2 Level 2认证的HSM集群,如果你需要Level 3,得额外买CloudHSM。
- 权限模型:基于IAM + 密钥策略,可以精细到“谁能在什么条件下用哪个密钥”。
4.2 Azure Key Vault – 企业级安全,软删除是救命稻草
Azure Key Vault的设计思路跟AWS不太一样,它特意加强了“误操作防护”。比如软删除功能,你删掉一个密钥后,默认保留90天,期间可以恢复。我记得有一次我在测试环境不小心误删了产品密钥,差点背锅,还好软删除救了场。
- 核心功能:支持密钥、机密、证书统一管理;硬件的Key Vault(Managed HSM)基于FIPS 140-2 Level 3的HSM;支持BYOK(Bring Your Own Key)。
- 集成生态:与Azure AD、RBAC深度绑定,权限控制走Azure的角色分配。
- 软删除与清除保护:默认开启,可配置保留天数(7–90天)。
4.3 GCP Cloud KMS – 简约但不简单,全球统一管理
GCP Cloud KMS给人的第一印象是“清爽”。你想想看,它的密钥层次特别清晰:Key Ring -> CryptoKey -> Key Version。我个人习惯用GCP做多地域密钥分发,因为它支持全局密钥环,跨region复制不费劲。
- 核心功能:自动轮换(可设置周期,比如30天或1年);支持Cloud HSM(FIPS 140-2 Level 3);支持CSEK(客户提供加密密钥)——适合合规要求很高的场景。
- CSEK特别说明:你可以自己生成密钥,然后通过Cloud KMS API提交,GCP只用它加密你的数据,但密钥本身不被GCP持久化。这招在金融场景里很常见。
我的经验:GCP的计费颗粒度特别细——你每创建一个密钥版本都会产生费用,哪怕不用也收钱。所以别忘了清理废弃的版本,不然月底账单吓人。
4.4 功能对比表
我把三大KMS的核心功能直接怼到一张表里,方便你一眼扫完。
| 特性 | AWS KMS | Azure Key Vault | GCP Cloud KMS |
|---|---|---|---|
| HSM等级 | 默认 Level 2,CloudHSM(Level 3)需额外购买 | 标准版无HSM,高级版 Level 3 | 默认 Level 2,Cloud HSM(Level 3)按需开通 |
| 自动轮换 | 强制每年一次,可自定义策略 | 手动轮换,需用生命周期策略自动触发 | 按周期自动轮换(最小30天) |
| BYOK支持 | 支持(导入外部密钥材料) | 支持(Bring Your Own Key) | 支持(External Key Material) |
| 软删除 | 需手动启用“密钥删除保护”,否则直接删 | 默认开启,可恢复90天 | 不直接提供软删除,需通过版本控制处理 |
| 审计日志 | CloudTrail自动记录 | Azure Monitor + Log Analytics | Cloud Audit Logs |
| 区域分布 | 多区域副本,需手动复制密钥(多区域CMK) | 按区域独立Key Vault,不支持全局 | 全局Key Ring,密钥自动跨区域复制(可选) |
4.5 计费模型对比
计费这件事,说白了就是“用多少付多少”,但每家的计费项差别挺大。我建议你迁移前先估算一下每月密钥操作量,不然容易超预算。
| 计费维度 | AWS KMS | Azure Key Vault | GCP Cloud KMS |
|---|---|---|---|
| 月费(每密钥/密钥版本) | $1/月/CMK(区域密钥) | 标准版:免费(仅前10000次操作) 高级版:$0.03/月/密钥 |
$0.06/月/密钥版本(注意:每个版本单独收) |
| API操作费 | $0.03/万次调用(Encrypt/Decrypt) | 标准版:$0.06/万次操作 高级版:$0.10/万次操作 |
$0.03/万次操作(对称加密) |
| HSM附加费 | CloudHSM按实例收费(≈$1.6/小时) | 高级版已含HSM费用 | Cloud HSM按集群计费(≈$3/小时) |
| 免费层 | 无免费层,但每月CMK前1次操作免费 | 标准版每月10000次免费操作 | 每月前1万次操作免费 |
4.6 SLA对比
SLA不是简单比数字,还得看适用场景。比如单区域和跨区域SLA差很多。我整理了一个简单表格,但记住:最终SLA以官网为准。
| 维度 | AWS KMS | Azure Key Vault | GCP Cloud KMS |
|---|---|---|---|
| 单区域SLA | 99.99% | 99.99%(高级版标准版相同) | 99.99% |
| 跨区域/多可用区 | 99.999%(将密钥副本复制到多个区域) | 不支持跨区域单一Key Vault,需手动同步 | 99.999%(全局密钥自动跨区域副本) |
| 常见补偿条件 | 月度可用性低于99.99%可申请10%–30%折扣 | 同一标准,信用额度按服务级别调整 | 低于99.99%可申请服务积分 |
4.7 核心逻辑框架图
下面这幅SVG图把三个KMS的关键维度画在一起,方便你脑子里建立对比图谱。
选型没有银弹。我个人习惯先看合规要求(需要Level 3吗?),再看操作频率(计费敏感吗?),最后看区域痛点(要跨云同步吗?)。把这三点理清,答案自然就出来了。