首页 > 解决方案 > AWS 中 kms:GenerateDataKey 的用途是什么?

问题描述

我正在 AWS Lambda 上编写一个无服务器函数。

在某些情况下,我需要使用kms:GenerateDataKey*权限。

这究竟是什么目的。我检查了 AWS 文档,但它太神秘了。有人可以举一个实际的例子来说明它的用途吗?

标签: amazon-web-servicesamazon-kms

解决方案


需要 kms:GenerateDataKey 权限的 Lambda 函数很可能是使用对称数据密钥加密大量数据。

kms:GenerateDataKey用于实现信封加密,即用另一个密钥加密一个密钥的过程。对称密钥算法比公钥算法更快并且产生更小的密文,而公钥算法提供固有的角色分离和更容易的密钥管理。信封加密结合了每种策略的优势。

AWS 中的信封加密

  1. 在 KMS 中创建客户主密钥。尽管 CMK 可用于加密高达 4K 大小的数据,但它主要用于加密/解密数据加密密钥。

  2. 生成数据加密密钥 - 用于使用对称加密算法加密数据。

  3. 使用 CMK 加密数据密钥。

  4. 将加密数据和加密数据密钥存储在一起。

当用户调用kms:GenerateDataKey时,KMS 生成一个数据密钥,使用 CMK 对其进行加密,最后返回明文和加密的数据密钥对(上面的步骤 2 和 3)。

用户负责管理这些密钥。明文数据密钥通常在加密数据后立即丢弃,而加密数据密钥与加密数据一起存储。数据加密密钥必须kms:decrypt 在解密数据之前使用。


推荐阅读