数据密钥缓存 - AWS Encryption SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

数据密钥缓存

数据密钥缓存数据密钥相关的加密材料存储在缓存中。在加密或解密数据时,AWS Encryption SDK在缓存中查找匹配的数据密钥。如果找到匹配项,它就使用缓存的数据密钥,而不是生成新的密钥。数据密钥缓存可以提高性能、降低成本,并且可以帮助您在应用程序扩展时保持在服务限制内。

在以下情况下,您的应用程序可以从数据密钥缓存中受益:

  • 应用程序可以重用数据密钥。

  • 应用程序生成大量数据密钥。

  • 您的加密操作过于缓慢、成本高、受限制或消耗大量资源。

缓存可以减少加密服务的使用次数,如 AWS Key Management Service (AWS KMS)。如果您已达到AWS KMS requests-per-second 极限,缓存可以提供帮助。您的应用程序可以使用缓存的密钥处理某些数据密钥请求,而不是调用 AWS KMS。(您还可以在 AWS Support Center 中创建一个案例以提高您账户的限制。)

AWS Encryption SDK可以帮助您创建和管理数据密钥缓存。该工具包提供一个本地缓存缓存加密材料管理器(缓存 CMM),以便与缓存交互并实施您设置的安全阈值。这些组件配合使用可以帮助您从重用数据密钥获得的高效率中受益,同时保持系统的安全性。

数据密钥缓存是 AWS Encryption SDK的一个可选功能,应谨慎使用该功能。默认情况下,AWS Encryption SDK为每个加密操作生成新的数据密钥。这种方法支持加密最佳实践,该最佳实践不建议过度重用数据密钥。通常,只有在需要满足性能目标时,才应使用数据密钥缓存。此外,还应使用数据密钥缓存安全阈值,以确保您使用满足成本和性能目标所需的最小缓存量。

适用于 .NET 的 AWS Encryption SDK 不支持数据密钥缓存。版本 3。 其中 x AWS Encryption SDK for Java 已弃用缓存 CMM。但是,版本 4。 .NET AWS Encryption SDK 的 x 和版本 3。 x AWS Encryption SDK for Java 支持AWS KMS分层密钥环,这是一种替代的加密材料缓存解决方案。

有关这些安全折衷方案的详细讨论,请参阅 AWS 安全博客中的 AWS Encryption SDK: How to Decide if Data Key Caching is Right for Your Application