

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

# 不可用的 KMS 密钥如何影响数据密钥
<a name="unusable-kms-keys"></a>

当 KMS 密钥不可用时，您可以立即发现（取决于最终一致性）。KMS 密钥的[密钥状态](key-state.md)会出现变更，以反映其新情况，并且[加密操作](kms-cryptography.md#cryptographic-operations)中使用 KMS 密钥的所有请求都将失败。

但是，对由 KMS 密钥加密的数据密钥，以及由数据密钥加密的数据的影响会延迟，直至再次使用 KMS 密钥（例如用于解密数据密钥）。

KMS 密钥状态变为不可用的原因有许多，包括您可能执行的以下操作。
+ [禁用 KMS 密钥](enabling-keys.md)
+ [安排删除 KMS 密钥](deleting-keys.md)
+ 从具有已导入密钥材料的 KMS 密钥中[删除密钥材料](importing-keys-delete-key-material.md)，或允许导入的密钥材料过期。如果来源为 `EXTERNAL` 的 KMS 密钥关联了多个密钥材料，则任何密钥材料被删除或过期都将导致该密钥无法使用。
+ [断开托管 KMS AWS CloudHSM 密钥的密钥存储库](disconnect-keystore.md)的连接，或者[从 AWS CloudHSM 集群中删除](fix-keystore.md#fix-cmk-failed)用作 KMS 密钥材料的密钥。
+ [断开托管 KMS 密钥的外部密钥存储的连接](about-xks-disconnecting.md)，或干扰对外部密钥存储代理的加密和解密请求的任何其他操作，包括从其外部密钥管理器中删除外部密钥。

对于许多使用数据密钥保护服务管理 AWS 服务 的资源的人来说，这种效果尤其重要。以下示例使用亚马逊弹性区块存储 (Amazon EBS) 和亚马逊弹性计算云 ( EC2亚马逊)。不同的 AWS 服务 使用数据密钥的方式不同。有关详细信息，请参阅 AWS 服务的“安全性”一章的“数据保护”部分。

例如，考虑以下情景：

1. 您[创建加密 EBS 卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html)并指定 KMS 密钥来保护该卷。Amazon EBS 要求 AWS KMS 使用您的 KMS 密钥来为该卷[生成加密数据密钥](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)。Amazon EBS 使用该卷的元数据存储加密数据密钥。

1. 当您将 EBS 卷附加到 EC2 实例时，Amazon 会 EC2 使用您的 KMS 密钥来解密 EBS 卷的加密数据密钥。Amazon EC2 使用 Nitro 硬件中的数据密钥，该硬件负责将所有磁盘加密 I/O 到 EBS 卷。当 EBS 卷连接到实例时，数据密钥将保留在 Nitro 硬件中。 EC2 

1. 您执行的操作会使 KMS 密钥不可用。这对 EC2 实例或 EBS 卷没有立竿见影的影响。当卷连接到实例时，Amazon EC2 使用数据密钥（而不是 KMS 密 I/O 钥）来加密所有磁盘。

1. 但是，当加密的 EBS 卷与 EC2 实例分离时，Amazon EBS 会从 Nitro 硬件中删除数据密钥。下次将加密的 EBS 卷连接到 EC2 实例时，连接会失败，因为 Amazon EBS 无法使用 KMS 密钥来解密该卷的加密数据密钥。要再次使用 EBS 卷，您必须使该 KMS 密钥可重新使用。