为什么即使禁用 KMS 密钥,我仍然可以在 EC2 中读取加密的 EBS 卷数据?

问题描述

我正在尝试验证 AWS 中 EBS 卷的数据加密。我使用 KMS 密钥加密了一个 EBS 卷并将其安装在 EC2 实例上。我在这个卷中有一些文件,我希望如果我禁用 KMS 密钥,我将无法读取 EBS 卷中的文件,但这并没有发生。我猜测可能是在将 EBS 卷附加到 EC2 实例时,我们需要密钥。之后,即使我们禁用了密钥,我们仍然可以读取数据。我的理解正确吗?

解决方法

来自docs

对于每个卷,Amazon EBS 会要求 AWS KMS 生成在您指定的 CMK 下加密的唯一数据密钥。 Amazon EBS 将加密的数据密钥与卷一起存储。然后,当您将卷附加到 Amazon EC2 实例时,Amazon EBS 会调用 AWS KMS 来解密数据密钥。 Amazon EBS 使用管理程序内存中的明文数据密钥来加密到卷的所有磁盘 I/O。

实例实际上只在启动时调用一次 KMS 并附加卷来解密数据密钥。之后它会将其保存在内存中,因为每次调用 KMS 都需要很长时间。因此,只要实例正在运行,您用密钥做什么都无关紧要。

我的假设是,当您停止和启动实例或将卷附加到另一个实例时,某些事情会失败,因为它随后会尝试从 KMS 获取密钥。

有关详细信息,我建议您查看 complete documentation on EBS encryption