首页 > 解决方案 > AWS CMK vs Data Key 澄清问题

问题描述

我是 AWS 的新手,我希望有人可以为我澄清一些关于加密的事情。

我正在阅读有关 Amazon EBS 加密的 AWS 文档,在文档中,在“ EBS 加密的工作原理”部分下,我注意到其中一个步骤是“ Amazon EBS 向 AWS KMS 发送 GenerateDataKeyWithoutPlaintext 请求,指定用于加密的 CMK音量

CMK 不应该加密然后用于加密卷的数据密钥吗?这是因为 CMK 无法加密大小超过 4KB 的数据。

我理解的方式是,CMK(位于 KMS 中)将加密没有 CMK 大小限制的数据密钥,然后数据密钥将加密 EC2 实例的卷并坐在同一个加密卷,因为数据密钥本身也是加密的。

我没有正确理解这一步吗?

文档链接:https ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html?icmpid=docs_ec2_console

标签: amazon-ec2amazon-ebsamazon-kms

解决方案


是的,您是正确的,数据密钥将用于加密卷[并且 CMK 本身不会直接使用]。我相信你引用的声明:

Amazon EBS 向 AWS KMS 发送 GenerateDataKeyWithoutPlaintext 请求,指定您为卷加密选择的 CMK。

可以理解为:EBS调用GenerateDataKeyWithoutPlaintext API,从KMS获取数据密钥,EBS需要指定CMK。KeyId 是GenerateDataKeyWithoutPlaintext API 的必需参数。我相信文档中的下一步(如下所述)确实说明了这一点并消除了混淆。

AWS KMS 生成一个新的数据密钥,使用您为卷加密选择的 CMK 对其进行加密,并将加密的数据密钥发送到 Amazon EBS 以与卷元数据一起存储。

如果您想知道为什么调用 GenerateDataKeyWithoutPlaintext 而不是 GenerateDataKey,这篇AWS 论坛帖子非常有趣。


推荐阅读