密钥存储 - Amazon Key Management Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

密钥存储

密钥存储是用于存储和使用加密密钥的安全位置。中的默认密钥存储 Amazon KMS 还支持生成和管理其存储的密钥的方法。默认情况下,您在中创建的加密密钥材料在硬件安全模块(HSMs)中生成并受其保护,这些模块 Amazon KMS 是 FIPS 140-3 加密模块验证计划。 Amazon KMS keys KMS 密钥的密钥材料绝不会留下 HSMs 未加密的状态。

Amazon KMS 使用来创建和管理加密密钥时,支持用多种类型的密钥存储 Amazon KMS 来保护您的密钥材料。提供的所有密钥存储选项 Amazon KMS 均按照 FIPS 140-3 的安全级别进行持续验证,旨在防止任何人(包括 Amazon 操作员)在未经您许可的情况下访问或使用您的纯文本密钥。

Amazon KMS 标准密钥存储

默认情况下,KMS 密钥是使用标准 Amazon KMS HSM 创建的。从您的角度来看,这种 HSM 类型可以看作是一组多租户集群 HSMs ,以实现可扩展性最高、成本最低且最容易管理的密钥存储。如果您要创建用于一个或多个的 KMS 密钥, Amazon Web Services 服务 以便服务可以代表您加密您的数据,则需要创建对称密钥。如果您在自己的应用程序设计中使用 KMS 密钥,则可以选择创建对称加密密钥、非对称密钥或 HMAC 密钥。

在标准密钥存储选项中, Amazon KMS 会创建密钥,然后使用服务内部管理的密钥对其进行加密。然后,您密钥的加密版本的多个副本将存储在系统中,系统旨在保障持久性。在标准密钥存储类型中生成和保护密钥材料可让您充分利用的可扩展性、可用性和耐久性, Amazon KMS 同时将 Amazon 密钥存储的操作负担和成本降至最低。

Amazon KMS 带导入的密钥材料的标准密钥存储

您可以选择将密钥材料导入,而不是要求 Amazon KMS 生成并存储给定密钥的唯一副本,这样便能生成自己的 256 位对称加密密钥 Amazon KMS、RSA 或椭圆曲线(ECC)密钥,或HMAC 散列消息认证码密钥,并将其应用于 KMS 密钥标识符(keyId)。这有时被称为自带密钥(BYOK)。必须使用颁发的公有密钥 Amazon KMS、支持的加密包装算法和提供的基于时间的导入令牌来保护从本地密钥管理系统导入的密钥材料。 Amazon KMS此过程将验证您的加密导入密钥在离开您的环境后,是否只能通过 Amazon KMS HSM 解密。

如果您对生成密钥的系统有特定要求,或者想要在外保存密钥副本 Amazon 作为备份,则导入的密钥材料可能会很有用。请注意,您需要对导入的密钥材料的整体可用性和持久性负责。尽管 Amazon KMS 有导入的密钥的副本,并且可以在您需要确保高度可用,但导入的密钥还提供了一个特殊的删除 API — DeleteImportedKeyMaterial. 此 API 将立即删除 Amazon KMS 拥有的导入的密钥材料的所有副本,且无法选择恢复密钥。 Amazon 此外,您还可以为导入的密钥设置过期时间,过期后密钥将无法使用。要使密钥在中再次可用 Amazon KMS,您必须重新导入密钥材料并将其分配给相同的 keyId。这种针对导入密钥的删除操作与代表您 Amazon KMS 生成和存储的标准密钥不同。在标准情况下,密钥删除过程有一个强制性的等待期,在此期间,计划删除的密钥将首先被禁止使用。此操作允许您在可能需要该密钥才能访问数据的任何应用程序或 Amazon 服务的日志中查看拒绝访问错误。如果您看到此类访问请求,可以选择取消计划删除并重新启用该密钥。经过可配置的等待期(7 到 30 天)后,KMS 才会真正删除密钥材料、keyID 和与密钥关联的所有元数据。有关可用性和耐用性的更多信息,请参阅Amazon KMS 开发人员指南中的保护导入的密钥材料

导入的密钥材料还有一些其他限制需要注意。由于 Amazon KMS 无法生成新的密钥材料,因此无法对导入密钥配置自动轮换。您需要使用新的 keyId 创建新 KMS 密钥,然后导入新的密钥材料才能实现有效的轮换。此外,使用导入的对称密钥 Amazon KMS 在中创建的加密文字无法使用外的本地密钥副本轻松解密。 Amazon这是因为使用的经过身份验证的加密格式会将额外的元数据 Amazon KMS 附加到加密文字中,以便在解密操作期间确保加密文字是由之前加密操作中使用的预期 KMS 密钥创建的。大多数外部加密系统不了解如何通过解析这些元数据来获得原始加密文字,从而使用其对称密钥副本。在导入的非对称密钥(例如 RSA 或 ECC)下创建的加密文字可以有匹配的(公 Amazon KMS 有或私有)密钥部分的情况下,在外使用,因为没有向加密文字添加额外的元数据。 Amazon KMS

Amazon KMS 自定义密钥存储

不过,如果您需要加强对的控制 HSMs,则可以创建自定义密钥存储。

自定义密钥存储 Amazon KMS 是中的密钥存储,由您拥有和管理的外的密钥管理器提供支持。 Amazon KMS自定义密钥存储将的方便、全面的密钥管理界面 Amazon KMS 与拥有和控制密钥材料和加密操作的能力结合。在自定义密钥存储中使用 KMS 密钥时,加密操作实际上是通过您的密钥管理器使用您的加密密钥来执行。因此,您对加密密钥的可用性和持久性以及的运行承担更多责任。 HSMs

拥有您的 HSMs 可能有助于满足某些监管要求,这些要求尚不允许多租户 Web 服务(例如标准 KMS 密钥存储)保留您的加密密钥。自定义密钥存储并不比使用 Amazon托管的 KMS 密钥存储更安全 HSMs,但其管理影响不同,且成本更高。因此,您对加密密钥的可用性和持久性以及的运行承担更多责任。 HSMs无论您是将标准密钥存储与一起使用, Amazon KMS HSMs 还是使用自定义密钥存储,该服务都旨在确保任何人(包括 Amazon 员工)都无法在未经您许可的情况下检索或使用您的纯文本密钥。 Amazon KMS 支持两种类型的自定义密钥存储: Amazon CloudHSM 密钥存储和外部密钥存储。

不支持的功能

Amazon KMS 在自定义密钥存储中不支持以下功能。

Amazon CloudHSM 钥匙库

您可以在密钥存储中创建 KM Amazon CloudHSMS 密钥,这种情况下,将在您拥有并管理的 Amazon CloudHSM 集群中生成、存储和使用根用户密钥。向 Amazon KMS 提出的使用密钥进行某些加密操作的请求将转到您的 Amazon CloudHSM 集群以执行操作。虽然集 Amazon CloudHSM 群由托管 Amazon,但它是由您直接管理和操作的单租户解决方案。 Amazon CloudHSM 集群中 KMS 密钥的大部分可用性和性能由您拥有。要查看 Amazon CloudHSM 自定义密钥存储是否符合您的要求,请阅读Amazon KMS 自定义密钥存储是否适合您? 在 Amazon 安全博客上。

外部密钥存储

您可以将配置 Amazon KMS 为使用外部密钥存储(XKS),这种情况下,将在外的密钥管理系统中生成、存储和使用根用户密钥。 Amazon Web Services 云向 Amazon KMS 提出的使用密钥进行某些加密操作的请求将转到您的外部托管系统以执行操作。具体而言,请求会被转发到您网络中的 XKS 代理,然后该代理会将请求转发到您使用的任何加密系统。XKS 代理是开源规范,任何人都可以集成。许多商业密钥管理供应商都支持 XKS 代理规范。由于外部密钥存储由您或第三方托管,因此您负责系统中密钥的所有可用性、持久性和性能。要查看外部密钥存储是否符合您的要求,请阅读 Amazon 新闻博客上的 Announcing External Key Store (XKS)。 Amazon KMS