AWS CloudHSM

专用使用 FIPS 140-2 Level 3 认证的硬件安全模块,在云上执行加密密钥生成、存储和加密处理的服务

概述

AWS CloudHSM 是在云上提供专用硬件安全模块 (HSM) 的服务。将获得 FIPS 140-2 Level 3 认证的 Cavium/Marvell 制 HSM 设备部署在 VPC 内,在硬件内完成加密密钥的生成、存储、签名和加解密。密钥材料无法从 HSM 的防篡改硬件中取出,包括 AWS 在内的任何人都无法访问。支持 PKCS#11、JCE (Java Cryptography Extension)、Microsoft CNG 标准接口,可以最小化代码变更集成现有应用程序。

与 KMS 的根本区别及选型标准

CloudHSM 和 KMS 都可用于加密密钥管理,但控制模型和合规要求根本不同。KMS 在多租户共享 HSM 基础设施上运行,AWS 代为管理密钥生命周期。API 是 AWS 专有的,通过 KMS API 执行加解密和签名操作。月费为每个密钥 1 USD + API 调用计费,大多数工作负载这就足够了。CloudHSM 提供单租户专用 HSM,密钥管理责任完全由用户承担。AWS 仅负责 HSM 硬件运维,完全无法访问密钥材料。使用 PKCS#11 和 JCE 等行业标准接口,便于从本地 HSM 迁移。应选择 CloudHSM 的场景包括:法规明确要求 FIPS 140-2 Level 3、需要对密钥的完全排他控制、迁移使用 PKCS#11 或 JCE 的现有应用、需要用 HSM 进行 SSL/TLS 卸载。其他情况下,从运维负担和成本两方面考虑 KMS 更为合理。

集群配置与高可用性设计

CloudHSM 以集群为单位管理,一个集群最多可部署 28 台 HSM。为确保高可用性,至少需要在 2 个可用区各部署 1 台以上 HSM。集群内的 HSM 自动同步密钥,即使 1 台 HSM 发生故障,其他 HSM 也能继续处理。客户端 SDK 以轮询方式将请求分发到各 HSM,检测到故障时自动故障转移到正常的 HSM。初始设置中,安全保管集群初始化时生成的 Crypto Officer (CO) 认证信息极为重要。丢失此认证信息将无法访问 HSM 内的密钥。AWS 不持有此认证信息,因此无法恢复。备份由 CloudHSM 自动获取,以加密状态保存在 S3 中。可以从备份恢复到同一区域内的新集群,但由于备份加密密钥是集群特有的,无法恢复其他集群的备份。费用为每台 HSM 约 1.60 USD/小时 (约 1,150 USD/月),最小配置 2 台的月费约为 2,300 USD。

SSL/TLS 卸载与数据库加密的实现

CloudHSM 的代表性用例之一是 SSL/TLS 卸载。将 Web 服务器 (Nginx、Apache) 的私钥存储在 CloudHSM 中,在 HSM 内执行 TLS 握手的签名处理。由于私钥不存在于服务器的内存或磁盘中,即使服务器被入侵私钥也不会泄露。通过 OpenSSL 引擎或 PKCS#11 提供程序与 Web 服务器集成。与 Oracle TDE (Transparent Data Encryption) 或 Microsoft SQL Server 的 EKM (Extensible Key Management) 联动,用 CloudHSM 管理数据库加密密钥的模式在实务中也有使用。Oracle TDE 将主加密密钥存储在 CloudHSM 中,表空间加密密钥用主密钥加密后保存在数据库内。这样即使数据库备份泄露,没有 CloudHSM 内的主密钥也无法解密数据。使用 KMS 的自定义密钥存储功能,可以在保持 KMS API 便利性的同时将密钥存储在 CloudHSM 中。调用 KMS API 进行加解密时,后端由 CloudHSM 执行加密处理,兼顾 KMS 的易用性和 CloudHSM 的安全级别。

共有するXB!