外部密钥存储中的 KMS 密钥 - AWS Key Management Service

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

外部密钥存储中的 KMS 密钥

若要在外部密钥存储中创建、查看、管理、使用和计划删除 KMS 密钥,您使用的过程与用于其他 KMS 密钥的过程非常相似。但是,在外部密钥存储中创建 KMS 密钥时,您需要指定外部密钥存储外部密钥。在外部密钥存储中使用 KMS 密钥时,外部密钥管理器将使用指定的外部密钥执行加密和解密操作

AWS KMS 无法在外部密钥管理器中创建、查看、更新或删除任何加密密钥。AWS KMS 绝不会直接访问您的外部密钥管理器或任何外部密钥。所有加密操作请求均由您的外部密钥存储代理调解。若要在外部密钥存储中使用 KMS 密钥,必须先将托管 KMS 密钥的外部密钥存储连接到其外部密钥存储代理。

支持的特征

除了此部分中讨论的过程之外,您还可以使用外部密钥存储中的 KMS 密钥执行下列操作:

不支持的 特征
在外部密钥存储中使用 KMS 密钥

在请求中使用 KMS 密钥时,请通过密钥 ID、密钥 ARN、别名或别名 ARN 识别 KMS 密钥。您无需指定外部密钥存储。响应包含为任何对称加密 KMS 密钥返回的相同字段。但是,在外部密钥存储中使用 KMS 密钥时,外部密钥管理器将使用与 KMS 密钥关联的外部密钥执行加密和解密操作。

为了确保外部密钥存储中经 KMS 密钥加密的加密文字至少与经标准 KMS 密钥加密的加密文字一样安全,AWS KMS 将使用双重加密。首先在 AWS KMS 中使用 AWS KMS 密钥材料对数据进行加密。然后,外部密钥管理器使用 KMS 密钥的外部密钥对其进行加密。若要解密双重加密的加密文字,首先由外部密钥管理器使用 KMS 密钥的外部密钥解密加密文字。然后在 AWS KMS 中使用 KMS 密钥的 AWS KMS 密钥材料进行解密。

要做到这一点,必须满足以下条件。

  • KMS 密钥的密钥状态必须为 Enabled。若要查找密钥状态,请查看 AWS KMS 控制台中客户托管密钥的 Status(状态)字段或 DescribeKey 响应中的 KeyState 字段。

  • 托管 KMS 密钥的外部密钥存储必须连接到其外部密钥存储代理,也就是说,外部密钥存储的连接状态必须为 CONNECTED

    您可以在 AWS KMS 控制台中的 External key stores(外部密钥存储)页面上或在 DescribeCustomKeyStores 响应中查看连接状态。外部密钥存储的连接状态也显示在 AWS KMS 控制台中 KMS 密钥的详细信息页面上。在详细信息页面上,选择 Cryptographic configuration(加密配置)选项卡,然后查看 Custom key store(自定义密钥存储)部分中的 Connection state(连接状态)字段。

    如果连接状态为 DISCONNECTED,则必须先将其连接。如果连接状态为 FAILED,则必须解决问题,断开外部密钥存储的连接,再将其连接。有关说明,请参阅 连接和断开外部密钥存储

  • 外部密钥存储代理必须能够找到外部密钥。

  • 必须启用外部密钥并且必须执行加密和解密操作。

    外部密钥的状态独立于 KMS 密钥,并且不受 KMS 密钥的密钥状态变化影响,包括启用和禁用 KMS 密钥。同样,禁用或删除外部密钥不会更改 KMS 密钥的密钥状态,但使用关联的 KMS 密钥执行的加密操作将失败。

如果未满足这些条件,则加密操作失败,并且 AWS KMS 会返回 KMSInvalidStateException 异常。您可能需要重新连接外部密钥存储或使用外部密钥管理器工具来重新配置或修复外部密钥。有关其他帮助,请参阅排查外部密钥存储的问题

在外部密钥存储中使用 KMS 密钥时,请注意每个外部密钥存储中的 KMS 密钥针对加密操作共享自定义密钥存储请求限额。如果您超过该配额,则 AWS KMS 将返回 ThrottlingException。有关自定义密钥存储请求限额的详细信息,请参阅 自定义密钥存储请求限额

了解更多