Dan*_* B. 3 encryption encryption-symmetric aws-lambda amazon-kms
一对 Amazon Lambda 将对称地加密和解密一小段应用程序数据。我想使用 Amazon KMS 来促进这一点,因为它解决了秘密存储和密钥轮换等问题。
Amazon KMS 开发人员指南指出:
这些操作旨在加密和解密数据密钥。他们在加密操作中使用 AWS KMS 客户主密钥 (CMK),并且不能接受超过 4 KB(4096 字节)的数据。尽管您可以使用它们来加密少量数据(例如密码或 RSA 密钥),但它们并不是为加密应用程序数据而设计的。
它还建议使用AWS 加密 SDK或Amazon S3 加密客户端来加密应用程序数据。
虽然AWS 加密 SDK 所列出的优势显而易见,并且非常有吸引力,尤其是对于非密码学家的开发人员而言,但出于本问题的目的,我们假设环境不利于这些替代方案。
如果我的应用程序数据肯定不会超过 4k,为什么我不应该简单地使用 Amazon KMS 来加密和解密这些数据?
使用案例
我的团队正在实施一个新的身份验证层,以便在我们公司的服务和 API 中使用。我们正在实施 JWT 规范,但虽然我们打算避开广泛记录的困扰 JWE / JWS 兼容令牌签名的加密不满,但我们正在对有效负载进行对称加密。因此,我们保留了非加密令牌验证操作(过期等)的标准库实现的优势,并且留下了加密“脚枪”。
我怀疑这与性能有关:扩展和延迟。
KMS 加密/解密的每个帐户的限制为 5500 个请求/秒,该限制与其他一些 KMS 操作共享。
“为什么?” 常见问题解答中也进行了更彻底的讨论。
为什么要使用信封加密?为什么不直接将数据发送到 AWS KMS 进行加密?
虽然 AWS KMS 确实支持发送小于 4 KB 的数据进行加密,但信封加密可以提供显着的性能优势。当您直接使用 KMS 加密数据时,必须通过网络传输数据。信封加密可减少应用程序或 AWS 云服务的网络负载。只有通过 KMS 的数据密钥请求和履行必须通过网络进行。由于数据密钥始终以加密形式存储,因此可以轻松安全地将该密钥分发到您需要的地方,而不必担心它被泄露。加密的数据密钥将发送到 AWS KMS 并使用主密钥进行解密,最终允许您解密数据。数据密钥可直接在您的应用程序中使用,而无需将整个数据块发送到 AWS KMS 并遭受网络延迟。
| 归档时间: |
|
| 查看次数: |
5691 次 |
| 最近记录: |