

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

# 的加密最佳实践 AWS Encryption SDK
<a name="encryption-sdk"></a>

[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) 是一个开源的客户端加密库。它使用行业标准和最佳实践来支持多种[编程语言](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/programming-languages.html)的实现和互操作性。 AWS Encryption SDK 使用安全、经过身份验证的对称密钥算法对数据进行加密，并提供符合加密最佳实践的默认实现。有关更多信息，请参阅 [Supported algorithm suites in the AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/supported-algorithms.html)。

的关键功能之一 AWS Encryption SDK 是支持对正在使用的数据进行加密。通过采用某种 encrypt-then-use方法，您可以在应用程序逻辑处理敏感数据之前对其进行加密。即使应用程序本身受到安全事件的影响，这也有助于保护数据免遭潜在的泄露或篡改。

考虑下面针对该服务的最佳实践：
+ 遵守 [AWS Encryption SDK最佳实践](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/best-practices.html)中的所有建议。
+ 选择一个或多个包装密钥，帮助保护您的数据密钥。有关更多信息，请参阅 [Select wrapping keys](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/configure.html#config-keys)。
+ 将`KeyId`****参数传递给[ReEncrypt](https://docs.aws.amazon.com/cli/latest/reference/kms/re-encrypt.html)操作以帮助防止使用不受信任的 KMS 密钥。有关更多信息，请参阅[改进的客户端加密：显式 KeyIds 和密钥承诺](https://aws.amazon.com/blogs/security/improved-client-side-encryption-explicit-keyids-and-key-commitment/)（AWS 博客文章）。
+ 使用 with 时 AWS Encryption SDK AWS KMS，请使用本地`KeyId`筛选。有关更多信息，请参阅[改进的客户端加密：显式 KeyIds 和密钥承诺](https://aws.amazon.com/blogs/security/improved-client-side-encryption-explicit-keyids-and-key-commitment/)（AWS 博客文章）。
+ 对于需要加密或解密的大量流量的应用程序，或者如果您的账户超出了 AWS KMS [请求配额](https://docs.aws.amazon.com/kms/latest/developerguide/requests-per-second.html)，则可以使用[的数据密钥缓存](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/data-key-caching.html)功能。 AWS Encryption SDK请注意以下数据密钥缓存的最佳实践：
  + [配置缓存安全阈值](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/thresholds.html)限制每个缓存数据密钥的使用时间长度，以及每个数据密钥保护的数据量。有关配置这些阈值的建议，请参阅 [Setting cache security thresholds](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/thresholds.html)。
  + 将本地缓存限制为最少数量的数据密钥，以便在特定应用程序用例情况下实现性能改进。有关配置本地缓存限制的说明和示例，请参阅[使用数据密钥缓存： Step-by-step](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/implement-caching.html)。

  有关更多信息，请参阅 [AWS Encryption SDK：如何确定数据密钥缓存是否适合您的应用程序](https://aws.amazon.com/blogs/security/aws-encryption-sdk-how-to-decide-if-data-key-caching-is-right-for-your-application/)（AWS 博客文章）。