AWS CMK vs Data Key 澄清问题

Posted

技术标签:

【中文标题】AWS CMK vs Data Key 澄清问题【英文标题】:AWS CMK vs Data Key clarification question 【发布时间】:2020-10-29 11:13:55 【问题描述】:

我是 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

【问题讨论】:

【参考方案1】:

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

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

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

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

如果您想知道为什么调用 GenerateDataKeyWithoutPlaintext 而不是 GenerateDataKey,这个AWS Forum post 非常有趣。

【讨论】:

以上是关于AWS CMK vs Data Key 澄清问题的主要内容,如果未能解决你的问题,请参考以下文章

d3.keys()语法澄清?

aws 的 s3 put_object vs upload_file

DynamoDB 静态加密

OBIEE 配置

更改现有 EFS 的加密密钥

管理员无法在 AWS KMS 中加密/解密