一般性问题
问:什么是 AWS CloudHSM?
AWS CloudHSM 服务通过在 AWS 云中使用专用的硬件安全模块 (HSM) 实例,帮助您满足企业、合同和监管合规性要求,以确保数据安全。AWS 和 AWS Marketplace 合作伙伴为保护 AWS 平台中的敏感数据提供了多种解决方案,但对于某些受管理加密密钥合同或监管要求约束的应用程序和数据,可能有必要提供额外的保护。AWS CloudHSM 可补充现有的数据保护解决方案,让您可以在 HSM 内保护您的加密密钥,HSM 依据安全密钥管理的政府标准进行设计并经过验证。借助 AWS CloudHSM,您可以安全地生成、存储和管理用于数据加密的加密密钥,使其只能由您访问。
问:什么是硬件安全模块(HSM)?
硬件安全模块(HSM)可在防篡改的硬件设备中提供安全密钥存储和加密操作。HSM 设计可以安全地存储和使用加密密钥材料,而不会使其暴露于硬件的加密边界之外。
问:AWS CloudHSM 可以用来做什么?
您可以使用 AWS CloudHSM 支持各种适用案例和应用程序,例如,数据库加密、数字权限管理(DRM)、公有密钥基础设施(PKI)、身份验证和授权、文档签名和事务处理。有关更多信息,请参阅 AWS CloudHSM 使用案例。
问:CloudHSM 的工作原理是什么?
要使用 AWS CloudHSM 时,需要先创建一个 CloudHSM 集群。集群可以包含多个 HSM,它们分布在一个区域的多个可用区(AZ)中。集群中的 HSM 会自动同步并进行负载均衡。您可以获得对集群中每个 HSM 的专用单租户访问权限,并且每个 HSM 在 Amazon Virtual Private Cloud(VPC)中显示为网络资源。向集群中添加 HSM 或将其从中删除只需调用 AWS CloudHSM API(或在命令行上使用 AWS CLI)即可完成。创建和初始化 CloudHSM 集群后,您可以在 EC2 实例上配置一个客户端,以允许您的应用程序通过经过身份验证的安全网络连接使用该集群。AWS CloudHSM 将自动监控您的 HSM 的运行状况,但 AWS 人员不会访问您的密钥或数据。您的应用程序将标准的加密 API 与应用程序实例上安装的 HSM 客户端软件配合使用,以向 HSM 发送加密请求。客户端软件可维护通向集群中所有 HSM 的安全通道,并在此通道上发送请求,而 HSM 执行相关操作并通过该安全通道返回结果。然后,客户端通过加密 API 将结果返回到应用程序。
问:目前,我没有 VPC。我还可以使用 AWS CloudHSM 吗?
不可以。为了保护集群并将其与其他亚马逊客户隔离,您必须在 Amazon VPC 内部预置 AWS CloudHSM。创建 VPC 很容易。有关更多信息,请参阅 VPC 入门指南。
问:我的应用程序是否需要驻留在 CloudHSM 集群所在的 VPC 中?
不需要。但您运行应用程序和 HSM 客户端的服务器或实例必须能够通过网络 (IP) 访问集群中的所有 HSM。您可以采用多种方式建立应用程序到 HSM 的网络连接,其中包括使用相同的 VPC、使用 VPC 对等、使用 VPN 连接或使用 Direct Connect。有关更多信息,请参阅 VPC 对等指南和 VPC 用户指南。
问:AWS CloudHSM 是否能够与本地 HSM 配合使用?
可以。当 AWS CloudHSM 不能与本地 HSM 直接互操作时,您可以使用几个受支持的 RSA 密钥封装方法之一在 AWS CloudHSM 与大多数商业化 HSM 之间安全传输可导出的密钥。
问:我的应用程序该如何使用 AWS CloudHSM?
我们将 AWS CloudHSM 与很多第三方软件解决方案(如 Oracle Database 19c,以及适用于 SSL 卸载以及将 Windows 服务器配置为 CA 的 Apache 和 Nginx 等 Web 服务器)进行了集成和测试。请参阅 AWS CloudHSM 用户指南,了解更多信息。
如果您要开发自己的自定义应用程序,您的应用程序可以使用 AWS CloudHSM 支持的标准 API,包括 PKCS#11、Java JCE(Java Cryptography Extensions)、OpenSSL Dynamic Engine 或 Microsoft KSP/CNG。请参阅 AWS CloudHSM 用户指南,获取代码示例和入门帮助。问:我能否使用 AWS CloudHSM 存储密钥或加密其他 AWS 服务使用的数据?
可以。您可以在与 AWS CloudHSM 集成的应用程序中执行所有加密操作。在这种情况下,Amazon S3 和 Amazon Elastic Block Store(EBS)等 AWS 产品将只看到您的加密数据。
问:其他 AWS 产品是否可以使用 AWS CloudHSM 存储和管理密钥?
AWS 服务与 AWS Key Management Service 集成,后者又通过 KMS 自定义密钥存储功能与 AWS CloudHSM 集成。如果要使用许多 AWS 服务(例如 EBS、S3 或 Amazon RDS)提供的服务器端加密,可以通过在 AWS KMS 中配置自定义密钥存储来实现。
问:AWS CloudHSM 能否用于执行个人标识号(PIN)数据块转换或借记卡支付交易使用的其他加密操作?
目前,AWS CloudHSM 提供通用 HSM。AWS Payment Cryptography 在云托管的支付应用程序中提供加密操作。日后我们可能会提供支付功能。如果您对此感兴趣,请告知我们。
问:如何开始使用 AWS CloudHSM?
您可以在 AWS CloudHSM 控制台中预配置 CloudHSM 集群,也可以通过 AWS 开发工具包或 API 进行几次 API 调用来完成预配置。要了解有关入门的更多信息,请参阅 AWS CloudHSM 用户指南。有关 AWS CloudHSM API 的信息,请参阅 AWS CloudHSM 文档页面。
问:如何终止 AWS CloudHSM 服务?
您可以使用 AWS CloudHSM 控制台、API 或开发工具包删除 HSM,以停止使用该服务。有关更多说明,请参阅 AWS CloudHSM 用户指南。
计费
问:使用 AWS CloudHSM 服务时如何收费和计费?
您需要为 HSM 预置到 AWS CloudHSM 集群的小时数(不足 1 小时按 1 小时算)按小时支付费用。无 HSM 的集群不会产生费用,加密备份的自动存储也不会产生费用。有关更多信息,请参阅 AWS CloudHSM 定价页。请注意,与 HSM 之间的网络数据传输是单独收费的。有关更多信息,请查看 EC2 的数据传输定价。
问:CloudHSM 服务是否提供免费套餐?
不。AWS CloudHSM 不提供免费套餐。
问:根据我在 HSM 上创建的用户或密钥数量的不同,费用会有所不同吗?
不会。小时费用因区域而异,与您使用 HSM 的程度没关系。
问:您是否为 AWS CloudHSM 提供预留实例定价?
不,我们不为 AWS CloudHSM 提供预留实例定价。
预配置和操作
问:使用 AWS CloudHSM 有前提条件吗?
可以。要开始使用 AWS CloudHSM,需要满足几个前提条件,包括在想使用 AWS CloudHSM 服务的区域提供 Virtual Private Cloud(VPC)。有关更多信息,请参阅 AWS CloudHSM 用户指南。
问:我是否需要在自己的 HSM 上管理固件?
不需要。AWS 会在硬件上管理固件。固件由第三方维护,并且每个固件都必须由 NIST 进行 FIPS 140-2 第 3 级合规性评估。只有由 FIPS 密钥加密签署的固件(AWS 对其无访问权限)才符合安装条件。
问:我的 CloudHSM 集群中应该有多少个 HSM?
无论哪种生产工作负载,AWS 都强烈建议您使用位于两个不同可用区中的至少两个 HSM。对于关键任务型工作负载,我们建议您使用位于至少两个不同可用区中的至少三个 HSM。CloudHSM 客户端将自动处理所有 HSM 故障,并以透明方式实现两个或两个以上的 HSM 到应用程序的负载均衡。
问:密钥的持久性由谁负责?
AWS 每天会自动对您的 CloudHSM 集群进行加密备份。AWS 会在集群生命周期事件(如添加或删除 HSM)发生时进行额外备份。在备份间隔的 24 小时时段内,您需全权负责创建或导入集群中的密钥材料的持久性。我们强烈建议您将创建的所有密钥同步至位于两个不同可用区中的至少两个 HSM 中,以确保密钥的持久性。请参阅 AWS CloudHSM 用户指南,了解有关密钥同步验证的更多详细信息。
问:如何设置高可用性(HA)配置?
当您的 CloudHSM 集群中拥有至少两个分布在两个可用区的 HSM 时,系统会自动提供高可用性。无需其他配置。如果集群中的一个 HSM 出现故障,系统会自动将其替换,并更新所有客户端以反映新配置,而无需中断任何处理过程。其他 HSM 可通过 AWS API 或开发工具包添加到集群中,从而在不中断应用程序的情况下提高可用性。
问:CloudHSM 集群中可以包含多少个 HSM?
一个 CloudHSM 集群最多可以包含 28 个 HSM,具体取决于账户服务限制。在我们的在线文档中了解有关服务限制级如何请求提高限制的更多信息。
问:是否可以备份我的 CloudHSM 集群中的内容?
AWS 每天对 CloudHSM 集群进行备份。只要密钥的生成方式并非“不可导出”,您也可将其导出(“打包”)集群并存储在本地。
问:有适用于 AWS CloudHSM 的 SLA 吗?
有,您可以在此处找到适用于 AWS CloudHSM 的服务等级协议(SLA)。
安全性与合规性
问:我是否会与其他 AWS 客户共享我的 AWS CloudHSM 资源?
不可以。作为服务的一部分,您获得对 HSM 的单租户访问权限。您可以将底层硬件与其他客户共享,但 HSM 仅限您自己访问。
问:在没有加密密钥访问权限的情况下,AWS 如何管理 HSM?
AWS CloudHSM 在设计之初就考虑到了责任分离和基于角色的访问控制。AWS 拥有对 HSM 的有限凭证,让我们能够监控和维护 HSM 的运行状况和可用性,获取加密的备份,提取审核日志并将其发布到您的 CloudWatch Logs 中。AWS 不能访问 CloudHSM 集群内的任何密钥或数据,且不能执行 HSM 设备用户允许的操作之外的任何操作。
请参阅 AWS CloudHSM 用户指南,了解有关责任分离及各类用户拥有的 HSM 功能的更多信息。
问:能否监控我的 HSM?
可以。AWS CloudHSM 针对 CloudWatch 集群和各个 HSM 发布了多个 Amazon CloudWatch 指标。您可以使用 Amazon CloudWatch 控制台、API 或开发工具包获取这些指标或针对其发布警报。
问:AWS CloudHSM 的“熵源”(随机源)是什么?
每个 HSM 都拥有一个经 FIPS 验证的 确定性随机数生成器(DRBG),该生成器在由符合 SP800-90B 的 HSM 硬件模块中的真随机数生成器(TRNG)的基础上形成。
问:如果有人擅自改动 HSM 硬件会怎样?
AWS CloudHSM 具有物理和逻辑篡改检测和响应机制,可触发硬件的密钥删除(清零)。该硬件可以在物理屏障被突破后有效检测篡改行为。HSM 还可免受暴力登录攻击。��尝试使用管理员/加密员(CO)凭证访问 HSM 失败一定次数后,HSM 会锁定管理员/CO。同样地,在尝试使用加密用户(CU)凭证访问 HSM 失败一定次数后,用户即会被锁定,必须由 CO 或管理员解锁。
问:发生故障时会怎样?
Amazon 会监控和维护 HSM 和网络的可用性和错误状况。如果 HSM 发生故障或网络连接中断,系统即会自动替换该 HSM。您可以使用 AWS CloudHSM API、软件开发工具包或 CLI 工具检查单个 HSM 的运行状况,还可以使用 AWS 产品运行状况控制面板随时检查服务的整体运行状况。
问:如果单个 HSM 出现故障,我的密钥会丢失吗?
如果您的 AWS CloudHSM 集群只有一个 HSM,就有可能会丢失您在最新的日程备份后创建的密钥。有两个或多个 HSM(理想情况下,在单独的可用区中)的 AWS CloudHSM 集群将不会在单一 HSM 出现故障时丢失密钥。请参阅我们的最佳实践了解更多信息。
问:如果我的 HSM 凭证丢失,Amazon 是否可以恢复我的密钥?
不可以。Amazon 不能访问您的密钥或凭证,因此在您丢失凭证时无法恢复您的密钥。
问:我如何确定自己可以信任 AWS CloudHSM?
AWS CloudHSM 是在经联邦信息处理标准(FIPS)140-2 第 3 级验证的硬件的基础上构建的。要了解 CloudHSM 所使用硬件的 FIPS 140-2 安全配置文件及其运行的固件,可以访问我们的合规性页面。
问:AWS CloudHSM 服务是否支持 FIPS 140-2 第 3 级?
支持。CloudHSM 提供经 FIPS 140-2 第 3 级验证的 HSM。可以遵循 CloudHSM 用户指南中验证 HSM 的真实性部分下的过程,以确认上一个问题中描述的 NIST 安全策略中指定的相同型号硬件上是否拥有真实的 HSM。
问:如何在 FIPS 140-2 模式下运行 AWS CloudHSM?
AWS CloudHSM 始终处于 FIPS 140-2 模式中。这一点可以使用 CloudHSM 用户指南中提及的 CLI 工具并运行 getHsmInfo 命令进行验证,这一操作将指明 FIPS 模式状态。
问:我是否可以获取从我的账户发起的所有 AWS CloudHSM API 调用的历史记录?
可以。AWS CloudTrail 会记录账户发起的 AWS API 调用。由 AWS CloudTrail 生成的 AWS API 调用历史记录让您可以执行安全分析、资源变更追踪以及合规性审计。有关 AWS CloudTrail 的更多信息,请参阅 CloudTrail 主页,可通过 CloudTrail 的 AWS 管理控制台将其打开。
问:哪些事件未记录在 AWS CloudTrail 中?
AWS CloudTrail 不包含任何 HSM 设备或访问日志。系统直接通过 AWS CloudWatch Logs 将这些日志提供给您的 AWS 账户。有关更多详细信息,请参阅 AWS CloudHSM 用户指南。
问:哪些 AWS 合规性计划包含 AWS CloudHSM?
请参阅 AWS 合规性站点,了解有关包含 CloudHSM 的合规性计划的更多信息。与其他 AWS 产品不同,关于 AWS CloudHSM 的合规性要求通常直接由硬件的 FIPS 140-2 第 3 级验证本身满足,而不是作为独立审核计划的一部分满足。
问:为什么 FIPS 140-2 第 3 级至关重要?
FIPS 140-2 第 3 级是某些使用案例(包括文档签名、付款,或作为 SSL 证书的公有证书颁发机构运营)的要求。
问:我该如何请求将 AWS CloudHSM 的合规性报告纳入范围?
要了解 AWS CloudHSM 涵盖哪些合规性报告,查阅 AWS 按合规性计划提供的范围内服务上的数据。要创建免费、自助的按需合规性报告,使用 AWS Artifact。
如果您仅对 AWS CloudHSM 提供的 FIPS 对 HSM 的验证感兴趣,请参阅 FIPS 验证。
性能和容量
问:CloudHSM 每秒可执行多少个加密操作?
性能可能因配置、数据大小和 EC2 实例上的额外应用程序负载而异。为了提高性能,您可以向集群添加更多 HSM 实例。我们鼓励对您的应用程序进行负载测试以确定扩展需求。
有关更多详细信息,请参阅 AWS CloudHSM 用户指南中的性能页面。
问:CloudHSM 集群上可以存储多少个密钥?
有关密钥存储和集群容量的详细信息,请参阅 AWS CloudHSM 配额。
第三方集成
问:AWS CloudHSM 是否支持 Amazon RDS Oracle TDE?
不能直接这样使用。您应该使用带有自定义密钥存储的 AWS Key Management Service,通过在 CloudHSM 集群中生成和存储的密钥来保护 Amazon RDS 数据。
问:我是否能将 AWS CloudHSM 用作其他软件的可信根?
多个第三方供应商 支持将 AWS CloudHSM 用作可信根。这意味着,您在 CloudHSM 集群中创建并存储底层密钥时可以利用您选择的软件解决方案。
AWS CloudHSM、客户端库、API 和软件开发工具包
问:什么是 AWS CloudHSM 客户端库?
AWS CloudHSM 客户端库是 AWS 提供的一款软件包,让您和您的应用程序能够与 CloudHSM 集群交互。
问:CloudHSM 客户端库是否向 AWS 授予了对我的 CloudHSM 集群的访问权限?
没有。该客户端和您的 HSM 之间的所有通信都进行了端到端加密。AWS 无法查看或拦截这些通信,也无法查看您的集群访问凭证。
问:什么是 CloudHSM 命令行界面(CLI)工具?
CloudHSM 客户端库配有一套 CLI 工具,让您能够从命令行管理和使用 HSM。目前支持 Linux 和 Microsoft Windows。我们还计划支持 Apple macOS。这些工具在 AWS CloudHSM 客户端库所在的相同软件包中提供。
问:如何下载并开始使用 AWS CloudHSM 命令行界面工具?
有关说明,请参阅 CloudHSM 用户指南
问:CloudHSM CLI 工具是否为 AWS 提供了访问 HSM 内容的权限?
没有。CloudHSM 工具可使用 CloudHSM 客户端库通过经手动验证的安全通道,与您的 CloudHSM 集群直接通信。AWS 无法观察客户端、工具和 HSM 之间的任何通信。它是端到端加密的。
问:我可以在哪些操作系统上使用 CloudHSM 客户端库和 CLI 工具?
支持操作系统的完整列表见我们的在线文档。
问:使用 CloudHSM 命令行界面工具有哪些网络连接要求?
您运行 CloudHSM 客户端库和/或使用 CLI 工具所在的主机必须能够通过网络访问 CloudHSM 集群中的所有 HSM。
问:我可以使用 AWS CloudHSM API 和软件开发工具包做什么?
您可以创建、修改、删除和获取 CloudHSM 集群与 HSM 的状态。您可以使用 AWS CloudHSM API 执行的操作限于 AWS 通过其受限的访问权限可执行的操作。API 无法访问 HSM 的内容,也无法修改任何用户、策略或其他设置。要了解更多信息,请参阅 CloudHSM 文档了解有关 API 的信息,或访问 Amazon Web Services 工具页面了解有关软件开发工具包的更多信息。
从其他第三方 HSM 迁移到 CloudHSM
问:我应该如何规划向 AWS CloudHSM 的迁移?
首先,确保 AWS CloudHSM 支持您所需的算法和模型。如果需要,可以请您的客户经理向我们提交功能请求。然后是确定您的密钥轮换策略。我们还发布了深入的 AWS CloudHSM 迁移指南。您现在可以随时开始使用 AWS CloudHSM。
问:如何轮换我的密钥?
您的轮换策略取决于应用程序的类型。常见示例如下:
- 用于签名的私有密钥:通常情况下,HSM 上的私有密钥对应着一个中间证书,中间证书又由离线企业根签署。您可以通过发布新的中间证书轮换密钥。先创建一个新的私有密钥,并使用 AWS CloudHSM 上的 OpenSSL 生成相应的 CSR。然后,使用同一离线企业根签署 CSR。您可能必须要向无法自动验证整个证书链的合作伙伴注册此新证书。接下来,您需要使用与新证书相对应的新私有密钥签署所有新请求(例如,对文档、代码或其他证书的请求)。您可以继续使用对应的公有密钥验证原始私有密钥的签名,无需撤销。这个过程类似于停用或存档签名密钥的过程。
- Oracle 透明数据加密:您可以先从硬件密钥存储库(您的原始 HSM)切换到软件密钥存储库,然后返回硬件密钥存储(AWS CloudHSM),从而传输您的 wallet。注意:如果您使用 Amazon RDS,请参阅上面的常见问题“AWS CloudHSM 是否支持 Amazon RDS Oracle TDE?”
- 用于信封加密的对称密钥:信封加密指的是一种密钥体系结构,在这种结构中,HSM 上的一个密钥对应用程序主机上的多个数据密钥进行加密/解密。您可能已经拥有一个密钥轮换流程,这样的话,您可以使用旧的包装密钥对数据密钥进行解密,然后使用新的包装密钥对其进行重新加密。迁移过程中的唯一区别是,AWS CloudHSM 将创建并使用新的包装密钥,而不是原始 HSM。如果您还没有密钥轮换工具和流程,则需要创建一个。
问:如果我无法轮换密钥,该怎么做?
支持和维护
问:AWS CloudHSM 是否具有计划的维护时段?
否,但 AWS 可能需要在进行必要的升级或硬件发生故障时执行维护。如果有任何影响,我们将尽力通过 Personal Health Dashboard 提前通知您。
请注意,架构集群以获得高可用性是您的责任。AWS 强烈建议您使用在不同可用区中含有两个或更多 HSM 的 CloudHSM 集群。您可以在我们的在线文档中了解有关建议最佳实践的更多信息。
问:我在使用 AWS CloudHSM 时遇到问题。我该怎么办?
您可以在我们的故障排除指南中找到常见问题的解决方案。如果您仍然遇到问题,请联系 AWS Support。