本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
数据密钥缓存
数据密钥缓存 将数据密钥和相关的加密材料存储在缓存中。加密或解密数据时,会在缓存中 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 生成一个新的数据密钥。这种方法支持加密最佳实践,该最佳实践不建议过度重用数据密钥。通常,只有在需要满足性能目标时,才应使用数据密钥缓存。此外,还应使用数据密钥缓存安全阈值,以确保您使用满足成本和性能目标所需的最小缓存量。
.NE T 版不支持缓存 CMM 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 KMS 分层密钥环加密的内容只能使用分层密钥环进行解 AWS KMS 密。
有关这些安全折衷方案的详细讨论,请参阅 AWS 安全博客中的 AWS Encryption SDK: How to Decide if Data Key Caching is Right for Your Application