amazon-web-services - AWS 中 kms:GenerateDataKey 的用途是什么?
问题描述
我正在 AWS Lambda 上编写一个无服务器函数。
在某些情况下,我需要使用kms:GenerateDataKey*
权限。
这究竟是什么目的。我检查了 AWS 文档,但它太神秘了。有人可以举一个实际的例子来说明它的用途吗?
解决方案
需要 kms:GenerateDataKey 权限的 Lambda 函数很可能是使用对称数据密钥加密大量数据。
kms:GenerateDataKey
用于实现信封加密,即用另一个密钥加密一个密钥的过程。对称密钥算法比公钥算法更快并且产生更小的密文,而公钥算法提供固有的角色分离和更容易的密钥管理。信封加密结合了每种策略的优势。
AWS 中的信封加密
在 KMS 中创建客户主密钥。尽管 CMK 可用于加密高达 4K 大小的数据,但它主要用于加密/解密数据加密密钥。
生成数据加密密钥 - 用于使用对称加密算法加密数据。
使用 CMK 加密数据密钥。
将加密数据和加密数据密钥存储在一起。
当用户调用kms:GenerateDataKey
时,KMS 生成一个数据密钥,使用 CMK 对其进行加密,最后返回明文和加密的数据密钥对(上面的步骤 2 和 3)。
用户负责管理这些密钥。明文数据密钥通常在加密数据后立即丢弃,而加密数据密钥与加密数据一起存储。数据加密密钥必须kms:decrypt
在解密数据之前使用。
推荐阅读
- c - 如何在 C 中读取和使用 file.txt
- spring-boot - 尝试使用spring form标签库在spring boot中从一个JSP文件夹移动到另一个JSP文件夹
- ruby - 尝试在 Watir 上设置 Edge 驱动程序时出现“无效参数:'name' 必须是字符串”
- vue.js - 如何在 nuxtjs 中使用 fancybox
- graphviz - Graphviz DOT 文件中的多个图形
- android - ESLint:App.js (22:21) 解析错误:意外的令牌,预期的“;”
- javascript - 将项目连接到列表时使浏览器窗口保持在同一点
- java - 使用 Chaquopy 将大数据数组从 Python 返回到 Java
- json - 无法在 React 本机应用程序中更新本地 json 文件
- python-3.x - 嵌入无法正常运行 Discord.py