问:什么是 AWS CloudHSM?

AWS CloudHSM 服务通过在 AWS 云中使用专用的“硬件安全模块”(HSM) 设备,帮助您满足数据安全方面的企业、合同和监管合规性要求。AWS 和 AWS Marketplace 合作伙伴为保护 AWS 平台中的敏感数据提供了多种解决方案,但对于某些需符合管理加密密钥方面的合同或监管要求的应用程序和数据,可能有必要提供额外的保护。CloudHSM 可补充现有的数据保护解决方案,让您能在按安全密钥管理的政府标准设计和验证的 HSM 中保护您的加密密钥。CloudHSM 可通过只能由您访问密钥的方式让您安全地生成、存储和管理用于数据加密的加密密钥。

问:什么是硬件安全模块 (HSM)?

硬件安全模块 (HSM) 是一种硬件设备,在防篡改的硬件设备中提供安全的密钥存储和加密操作。HSM 设计为安全地存储加密密钥材料,并对密钥材料进行使用,而不会使其暴露于设备的加密边界之外。

问:CloudHSM 可以用来做什么?

您可以使用 CloudHSM 服务支持多种使用案例和应用程序,如数据库加密、数字版权管理 (DRM)、公钥基础设施 (PKI)、身份验证和授权、文档签名和事务处理。

问:CloudHSM 如何工作?

使用 AWS CloudHSM 服务时,您需要创建 CloudHSM 群集。群集可以包含高达 32 个 HSM,这些 HSM 可位于多个可用区,并可自动实现同步和负载均衡。您可获得对群集中每个 HSM 的专用单租户访问权限。每个 HSM 在 Virtual Private Cloud (VPC) 中都显示为网络资源。作为预配置的一个环节,您可获得群集的管理员凭证,并根据需要创建其他用户和管理员。向群集中添加 HSM 或将其从中删除只需调用 AWS CloudHSM API (或在命令行上使用 AWS CLI) 即可完成。创建和初始化 CloudHSM 群集后,您可以在 EC2 实例上配置一个客户端,以允许您的应用程序通过经过身份验证的安全网络连接使用该群集。

Amazon 管理员可监控 HSM 的运行状况,但无权配置、管理和使用它们。应用程序将标准的加密 API 和应用程序实例上安装的 HSM 客户端软件配合使用,以向 HSM 发送加密请求。客户端软件可维护通向群集中所有 HSM 的安全通道,并在此通道上发送请求,而 HSM 执行相关操作并通过该安全通道返回结果。然后,客户端通过加密 API 将结果返回到应用程序。

问:目前,我没有 VPC。我还可以使用 AWS CloudHSM 吗?

不可以。要保护并隔离您的 CloudHSM,避免其他 Amazon 客户使用,必须在 VPC 内部配置 CloudHSM。创建 VPC 很容易。有关更多信息,请参阅 VPC 入门指南

问:我的应用程序是否需要驻留在 CloudHSM 群集所在的 VPC 中?

不需要,但您的应用程序和 HSM 客户端运行所在的服务器或实例必须能够通过网络 (IP) 访问群集中的所有 HSM。您可以采用多种方式建立应用程序到 HSM 的网络连接,其中包括使用相同的 VPC、使用 VPC 对等、使用 VPN 连接或使用 Direct Connect。有关更多信息,请参阅 VPC 对等指南VPC 用户指南

问:CloudHSM 是否能够与内部部署 HSM 配合使用?

可以。虽然 CloudHSM 无法与本地 HSM 直接交互操作,但它可根据使用案例、密钥类型和本地 HSM 的类型移动或同步它们之间的密钥。请打开 AWS 控制台中的 AWS 技术支持案例,帮助您执行这一操作。

问:我的应用程序该如何使用 CloudHSM?

我们将 CloudHSM 与很多第三方软件解决方案 (如 Oracle Database 11g 和 12c、 及适用于 SSL 卸载的 Apache 和 Nginx 等 Web 服务器) 进行了集成和测试。请参阅 CloudHSM 用户指南,了解更多信息。

如果您要开发自己的自定义应用程序,您的应用程序可以使用 CloudHSM 支持的标准 API,包括 PKCS#11、 和 Java JCA/JCE (Java Cryptography Architecture/Java Cryptography Extensions)。即将支持 Microsoft CAPI/CNG。请参阅 CloudHSM 用户指南,获取代码示例和入门帮助。

问:能否使用 CloudHSM 存储其他 AWS 服务使用的密钥或加密数据?

能。您可以在与 CloudHSM 集成的应用程序中执行所有加密操作。在这种情况下,S3 或 EBS 等 AWS 产品将只能看到您的数据已加密。

问:其他 AWS 产品是否可以使用 CloudHSM 存储和管理密钥?

AWS 产品现在无法直接与 CloudHSM 集成。如果您想使用很多 AWS 产品 (如 EBS、S3 或 RDS) 提供的服务器端密码术,您应该考虑使用 AWS Key Management Service。我们在未来计划将 CloudHSM 与其他 AWS 服务集成。如果您对此感兴趣,请告知我们

问:CloudHSM 能否用于执行个人标识号 (PIN) 数据块转换或其他在借记卡支付交易中使用的加密操作?

目前,CloudHSM 提供通用 HSM。有朝一日,我们可以提供支付功能。如果您对此感兴趣,请告知我们

问:与 AWS CloudHSM 相比,AWS Key Management Service (KMS) 如何?

AWS Key Management Service (KMS) 是一种多租户托管服务,让您能够使用和管理加密密钥。两种服务都可为加密密钥提供高级别安全保障。AWS CloudHSM 直接在 Amazon Virtual Private Cloud (VPC) 中提供可由您单独控制的专用 FIPS 140-2 级别 3 HSM。

问:何时应该使用 AWS CloudHSM 而不是 AWS KMS?

如果您有以下需要,则应该考虑使用 AWS CloudHSM:

  • 密钥存储在由您单独控制且经过验证的专用第三方硬件安全模块中。
  • FIPS 140-2 合规性。
  • 使用 PKCS#11、Java JCE 或 Microsoft CNG 接口与应用程序集成。
  • 高性能 VPC 内部加密加速 (批量加密)。

问:我现在使用的基于 Safenet 的 HSM 是否会被淘汰?

不会。虽然我们认为新 CloudHSM 服务的功能集和成本提供了更具吸引力的选择,但我们仍会为现有客户保留 AWS CloudHSM Classic。我们将在不久后提供资源,帮助客户从 CloudHSM Classic 迁移到新服务。

问:如何开始使用 CloudHSM?

您可以在 CloudHSM 控制台中预配置 CloudHSM 群集,也可以通过 AWS 开发工具包或 API 进行几次 API 调用来完成预配置。要了解更多信息,请参阅 CloudHSM 用户指南获得入门信息,参阅 CloudHSM 文档了解关于 CloudHSM API 的信息,或访问“Amazon Web Services 工具”页面了解有关开发工具包的更多信息。

问:如何终止 CloudHSM 服务?

您可以使用 CloudHSM API 或开发工具包删除 HSM,以停止使用该服务。有关更多说明,请参阅 CloudHSM 用户指南

问:使用 AWS CloudHSM 服务时如何收费和计费?

您需要为 HSM 预配置到 CloudHSM 群集的小时数 (或不到 1 小时) 按小时支付费用。无 HSM 的群集不会产生费用,加密备份的自动存储也不会产生费用。Amazon 有权对每月超出 5000GB 的 AWS CloudHSM 网络数据传入和传出进行收费。有关更多信息,请访问 CloudHSM 定价页面

问:CloudHSM 服务是否提供免费套餐?

不,CloudHSM 不提供免费套餐。

问:注册 CloudHSM 有前提条件吗?

有。要开始使用 CloudHSM,需要满足几个前提条件,其中包括在您需要 CloudHSM 服务的区域提供虚拟私有云 (VPC)。有关更多信息,请参阅 CloudHSM 用户指南

问:我是否需要在自己的 HSM 上管理固件?

不需要。AWS 在硬件上管理固件。固件由第三方维护,并且每个固件都必须由 NIST 进行 FIPS 140-2 级别 3 合规性评估。只有由 FIPS 密钥加密签署的固件 (AWS 对其无访问权限) 才能安装。

问:我的 CloudHSM 群集中应该拥有多少个 HSM?

无论哪种生产工作负载,AWS 都强烈建议您使用位于两个不同可用区中的至少两个 HSM。对于任务关键型工作负载,我们建议您使用位于至少两个不同可用区中的至少三个 HSM。CloudHSM 客户端将自动处理所有 HSM 故障,并以透明方式实现两个或两个以上的 HSM 到应用程序的负载均衡。

问:密钥的持久性由谁负责?

AWS 每天会对 CloudHSM 群集自动执行加密的备份,并在群集生命周期事件 (如添加或删除 HSM) 发生时进行额外备份。在备份间隔的 24 小时时段内,您需全权负责创建或导入群集中的密钥材料的持久性。我们强烈建议您将创建的所有密钥同步至位于两个不同可用区中的至少两个 HSM 中,以确保密钥的持久性。请参阅 CloudHSM 用户指南,了解有关密钥同步验证的更多详细信息。

问:如何设置高可用性 (HA) 配置?

当您的 CloudHSM 群集中拥有至少两个 HSM 时,系统会自动提供高可用性。无需其他配置。如果群集中的一个 HSM 出现故障,系统会自动将其替换,并更新所有客户端以反映新配置,而无需中断任何处理过程。其他 HSM 可通过 AWS API 或开发工具包添加到群集中,从而在不中断应用程序的情况下提高可用性。

问:CloudHSM 群集中可以连接多少个 HSM?

单个 CloudHSM 群集最多可包含 32 个 HSM。

问:是否可以备份 CloudHSM 中的内容?

AWS 每天对 CloudHSM 群集进行备份。只要密钥的生成格式并非“不可导出”,便也可将其 (“打包”) 导出群集并存储在本地。目前还没有其他备份选项,但我们希望能尽快提供一个更全面的本地备份功能。

问:有适用于 CloudHSM 的 SLA 吗?

目前,没有适用于 CloudHSM 的 SLA。

问:我是否与其他 AWS 客户共享我的 CloudHSM?

不是。作为服务的一部分,您获得对 HSM 的单租户访问权限。您可以将底层硬件与其他客户共享,但 HSM 仅限您自己访问。

问:在没有加密密钥访问权限的情况下,AWS 如何管理 HSM?

CloudHSM 在设计之初就考虑到了责任分离和基于角色的访问控制。AWS 拥有对 HSM 的有限凭证,让我们能够监控和维护 HSM 的运行状况和可用性,获取加密的备份,提取审核日志并将其发布到您的 CloudWatch Logs 中。AWS 无法查看、访问或使用您的密钥,也无法通过您的密钥触发您的 HSM 执行任何加密操作。

请参阅 CloudHSM 用户指南,了解有关责任分离及各类用户拥有的 HSM 功能的更多信息。

问:我可以监控 HSM 设备吗?

可以。CloudHSM 针对 CloudHSM 群集和各个 HSM 发布了多个 CloudWatch 指标。您可以使用 AWS CloudWatch 控制台、API 或开发工具包获取这些指标或针对其发布警报。

问:CloudHSM 的“熵源” (随机源) 是什么?

每个 HSM 都拥有一个经 FIPS 验证的 确定性随机数生成器 (DRBG),该生成器在由符合 SP800-90B 的 HSM 硬件模块中的真随机数生成器 (TRNG) 的基础上形成。这是一种高质量熵源,每秒可为每个 HSM 生成 20Mb 熵。

问:如果有人擅自改动 HSM 设备会怎样?

CloudHSM 具有物理和逻辑的篡改检测和响应机制,可触发设备删除密钥 (清零)。HSM 经过精心设计,可在 HSM 的物理屏障被突破时检测到篡改行为。另外,五次尝试使用 Crypto Officer (CO) 凭证访问 HSM 失败后,HSM 设备即会自我清除。五次尝试使用 Crypto User (CU) 凭证访问 HSM 失败后,用户即会被锁定,并且必须由 CO 解锁。

问:发生故障时会怎样?

Amazon 会监控和维护 HSM 和网络的可用性和错误状况。如果 HSM 发生故障或网络连接中断,系统即会自动替换该 HSM。您可以使用 CloudHSM API、SDK 或 CLI 工具检查单个 HSM 的运行状况,还可以使用 AWS 服务运行状况仪表板随时检查整体服务运行状况。

问:如果单个 HSM 设备出现故障,我的密钥会丢失吗?

会。如果您正在使用的 CloudHSM 群集发生故障,而且您未使用两个或两个以上的 HSM,则自最近的每日备份以来创建的密钥可能会丢失。Amazon 强烈建议您在所有生产 CloudHSM 群集中使用位于不同可用区中的两个或两个以上的 HSM,以避免加密密钥丢失。

问:如果我的设备证书丢失,Amazon 是否可以恢复我的密钥?

不可以。Amazon 不能访问您的密钥或证书,因此在您丢失证书时无法恢复您的密钥。

问:我如何确定自己可以信任 CloudHSM 设备呢?

CloudHSM 经过精心设计,符合美国联邦信息处理标准 (FIPS) 140-2 级别 3 标准。您可以通过以下网址找到适用于 CloudHSM 使用的底层硬件的 FIPS 140-2 安全配置文件:http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp2850.pdf

您可以按照 CloudHSM 用户指南“验证 HSM 的真实性”部分的步骤,确认自己是否在上述“NIST Security Policy”链接中指定的相同型号的硬件上拥有真实的 HSM。

问:如何在 FIPS 140-2 模式下运行 CloudHSM?

CloudHSM 始终处于 FIPS 140-2 模式中。这一点可以使用 CloudHSM 用户指南中提及的 CLI 工具并运行 getHsmInfo 命令进行验证,这一操作将指明 FIPS 模式状态。

问:CloudHSM 服务是否支持 FIPS 140-2 级别 3?

支持,CloudHSM 始终处于 FIPS 140-2 级别 3 模式中。

问:如何将 HSM 分区证书安全地分配到我的实例?

请参考下方的 AWS 安全博客文章,其中详细介绍了使用 IAM 角色将非 AWS 证书分配到 EC2 实例的方法

问:我是否可以获取从我的帐户上发起的所有 CloudHSM API 调用的历史记录?

可以。AWS CloudTrail 会记录账户发起的 AWS API 调用。由 CloudTrail 生成的 AWS API 调用历史记录可让您执行安全分析、资源变更追踪以及合规性审核。有关 CloudTrail 的更多信息,请参阅 CloudTrail 主页,可通过 CloudTrail 的 AWS 管理控制台将其打开。

问:哪些事件未记录在 CloudTrail 中?

CloudTrail 不包含任何 HSM 设备或访问日志。系统直接通过 CloudWatch Logs 将这些日志提供给您的 AWS 账户。有关更多详细信息,请参阅 CloudHSM 用户指南

问:哪些 AWS 合规性计划包含 CloudHSM?

请参阅 AWS 合规性站点,了解有关包含 CloudHSM 的合规性计划的更多信息。与其他 AWS 产品不同,关于 CloudHSM 的合规性要求通常直接由硬件的 FIPS 140-2 级别 3 验证本身满足,而不是作为独立审核计划的一部分满足。

问:为什么 FIPS 140-2 级别 3 至关重要?

FIPS 140-2 级别 3 是某些使用案例 (包括文档签名、付款,或作为 SSL 证书的公有证书颁发机构运营) 的要求。

问:我该如何请求范围中包含 CloudHSM 的合规性报告?

您可以通过业务发展代表请求合规性报告。如果没有业务发展代表,可在此处发出请求。

问:CloudHSM 每秒可执行多少个加密操作?

各个 HSM 的性能不同,具体取决于特定的工作负载。下表显示了几个常见加密算法的单个 HSM 的近似性能。每个 CloudHSM 群集最多可以拥有 32 个 HSM,提供的性能约高达下表所列性能的 32 倍。性能可因具体的配置和数据大小而异,因此我们建议您使用 CloudHSM 对应用程序进行负载测试,以确定准确的规模需求。

RSA 2048 位签名/验证

1100/秒

EC P256

315 点乘/秒

AES256

300Mb/s 全双工批量加密

2048 位 RSA 密钥生成

~2/秒

随机数生成器 (CSPRNG)

20Mb/s

问:CloudHSM 实例上可以存储多少个密钥?

CloudHSM 群集最多可以存储 3500 个任意类型、任意大小的密钥。

问:CloudHSM 是否支持 Amazon RDS Oracle TDE?

不支持。不支持 Amazon RDS Oracle TDE;但是,EC2 中运行的 Oracle 数据库 (11g 和 12c) 支持 Oracle TDE。有关其他详细信息,请参阅 CloudHSM 用户指南

问:CloudHSM 客户端是什么?

CloudHSM 是 AWS 提供的一款软件包,让您和您的应用程序能够与 CloudHSM 群集交互。

问:CloudHSM 客户端是否授予了 AWS 访问我的 CloudHSM 群集的权限?

未授予。CloudHSM 客户端是开放源,根据 BSD 许可发布。您可以申请获取完整的源分配,也可以使用自己的编译工具构建。为方便起见,我们默认提供二进制 RPM。

问:什么是 CloudHSM 命令行界面 (CLI) 工具?

CloudHSM 客户端配有一套 CLI 工具,让您能够从命令行管理和使用 HSM。目前支持 Linux。即将支持 MacOS 和 Windows。这些工具在 CloudHSM 客户端所在的相同软件包中提供。

问:我该如何下载并开始使用 CloudHSM 命令行界面工具?

有关说明,请参阅 CloudHSM 用户指南

问:CloudHSM CLI 工具是否为 AWS 提供访问 HSM 内容的权限?

否。CloudHSM 工具可使用 CloudHSM 客户端通过经手动验证的安全通道,与您的 CloudHSM 群集直接通信。AWS 无法观察客户端、工具和 HSM 之间的任何通信,因为通信是端到端加密的。

问:我可以在哪些操作系统上使用 CloudHSM 客户端和 CLI 工具?

多种 Linux 版本 (现代版 Amazon Linux、Redhat、Centos 和 Ubuntu)、Microsoft Windows 和 Apple Macos。如果您要在其他操作系统上使用 CloudHSM 客户端和 CLI 工具,请告知我们。

问:在使用 CloudHSM 命令行界面工具时有哪些网络连接要求?

您运行 CloudHSM 客户端和/或使用 CLI 工具所在的主机必须能够通过网络访问 CloudHSM 群集中的所有 HSM。

问:我可以使用 CloudHSM API 和开发工具包做什么?

您可以创建、修改、删除和获取 CloudHSM 群集与 HSM 的状态。您可以使用 AWS CloudHSM API 执行的操作限于 AWS 通过其受限的访问权限可执行的操作。API 无法访问 HSM 的内容,也无法修改任何用户、策略或其他设置。要了解更多信息,请参阅 CloudHSM 文档了解关于 API 的信息,或访问 Amazon Web Services 工具页面了解有关开发工具包的更多信息。

问:如何在 HSM 设备上执行日常维护?

AWS 对 HSM 设备的日常维护过程旨在避免在同一地区的多个可用区中出现同时停机。

AWS 可监控和维护 HSM,并且可能需要从服务中删除 HSM,以便升级、替换或测试某个硬件。如果是替换操作,则应该在几分钟内完成,并且不应该影响 CloudHSM 群集在正常情况下的性能。如果应用程序正在主动使用群集中的特定 HSM,则替换该应用程序时可能出现短暂的中断,同时 CloudHSM 客户端会在群集中另一 HSM 上重试这一操作。

在同一 24 小时时段内,AWS 不会对同一地区的多个可用区中的 HSM 设备执行例行维护。

在不可预见的情况下,AWS 可能会执行紧急维护,而不提前发出通知。AWS 将尽量避免出现此情况,以及在同一 24 小时时段内,对同一地区的多个可用区中的 HSM 设备执行紧急维护。

AWS 强烈建议您使用含有位于不同可用区中的两个或两个以上 HSM 的 CloudHSM 群集,以避免出现任何潜在中断。

问:如果在使用 CloudHSM 时遇到问题,我应该怎么办?

请联系 AWS Support


有关 AWS CloudHSM Classic 的问题,请参阅 AWS CloudHSM Classic 常见问题