

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

# 迁移你的 AWS Encryption SDK
<a name="migration"></a>

 AWS Encryption SDK 支持多种可互操作的[编程语言实现](programming-languages.md)，每种实现都是在上的开源存储库中开发的。 GitHub作为[最佳实践](best-practices.md)，我们建议您对每种语言使用最新版本 AWS Encryption SDK 的。

您可以安全地从 2.0 版本升级。 *x* 或更高版本 AWS Encryption SDK 到最新版本。但是，2.0。 *x* 版本 AWS Encryption SDK 引入了重要的新安全功能，其中一些是重大更改。要从 1.7.*x* 之前的版本更新到版本 2.0.*x* 及更高版本，必须先更新到最新版本 1.*x*。本节中的主题旨在帮助您了解更改，为应用程序选择正确的版本，并成功安全迁移到 AWS Encryption SDK最新版本。

有关重要版本的信息 AWS Encryption SDK，请参见[的版本 AWS Encryption SDK](about-versions.md)。

**重要**  
若未升级到最新版本 1.*x*，请勿直接从 1.7.*x* 之前的版本升级到版本 2.0.*x* 或更高版本。如果您直接升级到 2.0 版。 *x* 或更高版本并立即启用所有新功能，则 AWS Encryption SDK 无法解密在旧版本下加密的密文。 AWS Encryption SDK

**注意**  
.NET AWS Encryption SDK 的最早版本是 3.0 版。 *x*。 AWS Encryption SDK 适用于.NET 的所有版本都支持 2.0 中引入的安全最佳实践。 *的 x 个* AWS Encryption SDK。无需更改任何代码或数据即可安全升级到最新版本。  
AWS 加密 CLI：阅读本迁移指南时，请使用 1.7。 *x* AWS 加密 CLI 1.8 的迁移说明。 *x* 然后使用 2.0。 *x* AWS 加密 CLI 2.1 的迁移说明。 *x*。有关更多信息，请参阅 [AWS 加密 CLI 的版本](crypto-cli-versions.md)。  
新的安全功能最初是在 AWS 加密 CLI 版本 1.7 中发布的。 *x* 和 2.0。 *x*。但是， AWS 加密 CLI 版本为 1.8。 *x* 取代了 1.7 版。 *x* 和 AWS 加密 CLI 2.1。 *x* 取代 2.0。 *x*。有关详细信息，请参阅[aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/)存储库中的相关[安全公告](https://github.com/aws/aws-encryption-sdk-cli/security/advisories/GHSA-2xwp-m7mq-7q3r) GitHub。

**新用户**  
如果您不熟悉 AWS Encryption SDK，请安装 AWS Encryption SDK 适用于您的编程语言的最新版本的。默认值启用的所有安全功能 AWS Encryption SDK，包括带签名的加密、密钥派生和[密钥承诺](concepts.md#key-commitment)。 AWS Encryption SDK

**当前用户**  
我们建议您尽快从当前版本升级到最新可用版本。全部 1. AWS Encryption SDK 的 *x* 版本正[end-of-support 处于阶段](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle)，某些编程语言的更高版本也是如此。有关您的编程语言中 AWS Encryption SDK 的支持和维护状态的详细信息，请参阅 [支持和维护](introduction.md#support)。  
AWS Encryption SDK 版本 2.0。 *x* 及更高版本提供了新的安全功能来帮助保护您的数据。但是， AWS Encryption SDK 版本为 2.0。 *x* 包括不向后兼容的重大更改。为确保安全过渡，请首先在你的编程语言中从当前版本迁移到最新版本 1.*x*。如果最新版本 1.*x* 已全面部署并成功运行，您可以安全迁移到版本 2.0.*x* 及更高版本。这个[两步过程](migration-guide.md)至关重要，对于分布式应用程序尤其如此。

有关这些更改所依据 AWS Encryption SDK 的安全功能的更多信息，请参阅*AWS 安全*博客中的[改进客户端加密：显式 KeyIds 和密钥承诺](https://aws.amazon.com/blogs/security/improved-client-side-encryption-explicit-keyids-and-key-commitment/)。

在使用时正在寻求帮助 AWS SDK for Java 2.x？ AWS Encryption SDK for Java 请参阅[先决条件](java.md#java-prerequisites)。

**Topics**
+ [如何迁移和部署 AWS Encryption SDK](migration-guide.md)
+ [更新 AWS KMS 主密钥提供程序](migrate-mkps-v2.md)
+ [更新 AWS KMS 钥匙圈](migrate-keyrings-v2.md)
+ [设置您的承诺策略](migrate-commitment-policy.md)
+ [对迁移到至最新版本进行故障排除](troubleshooting-migration.md)