本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
不可用的 KMS 密钥如何影响数据密钥
当 KMS 密钥不可用时,您可以立即发现(取决于最终一致性)。KMS 密钥的密钥状态会出现变更,以反映其新情况,并且加密操作中使用 KMS 密钥的所有请求都将失败。
但是,对由 KMS 密钥加密的数据密钥,以及由数据密钥加密的数据的影响会延迟,直至再次使用 KMS 密钥(例如用于解密数据密钥)。
KMS 密钥状态变为不可用的原因有许多,包括您可能执行的以下操作。
-
从具有已导入密钥材料的 KMS 密钥中删除密钥材料,或允许导入的密钥材料过期。
-
断开托管 KMS 密钥的 AWS CloudHSM 密钥存储的连接,或从用作 KMS 密钥的密钥材料的 AWS CloudHSM 集群中删除密钥。
-
断开托管 KMS 密钥的外部密钥存储的连接,或干扰对外部密钥存储代理的加密和解密请求的任何其他操作,包括从其外部密钥管理器中删除外部密钥。
对于许多使用数据密钥来保护服务所管理的资源的 AWS 服务 来说,这种效果尤其重要。以下几个示例使用 Amazon Elastic Block Store(Amazon EBS)和 Amazon Elastic Compute Cloud(Amazon EC2)。不同的 AWS 服务 以不同方式使用数据密钥。有关详细信息,请参阅 AWS 服务 的“安全性”一章的“数据保护”部分。
例如,考虑以下情景:
-
您创建加密 EBS 卷并指定 KMS 密钥来保护该卷。Amazon EBS 要求 AWS KMS 使用您的 KMS 密钥来为该卷生成加密数据密钥。Amazon EBS 使用该卷的元数据存储加密数据密钥。
-
当您将 EBS 卷附加到 EC2 实例时,Amazon EC2 使用您的 KMS 密钥来解密 EBS 卷的加密数据密钥。Amazon EC2 使用 Nitro 硬件中的数据密钥,该密钥负责加密 EBS 卷的所有磁盘输入/输出。EBS 卷附加到 EC2 实例时,数据密钥会保留在 Nitro 硬件中。
-
您执行的操作会使 KMS 密钥不可用。这不会立即影响 EC2 实例或 EBS 卷。卷附加到实例时,Amazon EC2 使用数据密钥(而不是 KMS 密钥),来对所有磁盘输入/输出进行加密。
-
但是,当加密的 EBS 卷从 EC2 实例分离时,Amazon EBS 将从 Nitro 硬件中删除该数据密钥。下次将加密的 EBS 卷附加到 EC2 实例时,附加会失败,因为 Amazon EBS 无法使用 KMS 密钥来解密卷的加密数据密钥。要再次使用 EBS 卷,您必须使该 KMS 密钥可重新使用。