我正在 AWS Lambda 上编写一个无服务器函数。
在某些情况下,我需要使用kms:GenerateDataKey*
权限。
这究竟是什么目的。我检查了 AWS 文档,但它太神秘了。有人可以举一个实际的例子来说明它的用途吗?
我正在 AWS Lambda 上编写一个无服务器函数。
在某些情况下,我需要使用kms:GenerateDataKey*
权限。
这究竟是什么目的。我检查了 AWS 文档,但它太神秘了。有人可以举一个实际的例子来说明它的用途吗?
需要 kms:GenerateDataKey 权限的 Lambda 函数很可能是使用对称数据密钥加密大量数据。
kms:GenerateDataKey
用于实现信封加密,即用另一个密钥加密一个密钥的过程。对称密钥算法比公钥算法更快并且产生更小的密文,而公钥算法提供固有的角色分离和更容易的密钥管理。信封加密结合了每种策略的优势。
AWS 中的信封加密
在 KMS 中创建客户主密钥。尽管 CMK 可用于加密高达 4K 大小的数据,但它主要用于加密/解密数据加密密钥。
生成数据加密密钥 - 用于使用对称加密算法加密数据。
使用 CMK 加密数据密钥。
将加密数据和加密数据密钥存储在一起。
当用户调用kms:GenerateDataKey
时,KMS 生成一个数据密钥,使用 CMK 对其进行加密,最后返回明文和加密的数据密钥对(上面的步骤 2 和 3)。
用户负责管理这些密钥。明文数据密钥通常在加密数据后立即丢弃,而加密数据密钥与加密数据一起存储。数据加密密钥必须kms:decrypt
在解密数据之前使用。
我不熟悉权限本身,但我在文档中发现了这一点:
从使用 AWS KMS 中的密钥策略 - AWS 密钥管理服务:
kms:GenerateDataKey*
– 允许密钥用户成功请求数据加密密钥(数据密钥)以用于客户端加密。密钥用户可以选择接收数据密钥的两份副本——一份以明文形式,另一份使用此 CMK 加密——或仅接收加密形式的数据密钥。