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