

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 의 버전 AWS Encryption SDK
<a name="about-versions"></a>

 AWS Encryption SDK 언어 구현에서는 [의미 체계 버전 관리를](https://semver.org/) 사용하여 각 릴리스의 변경 규모를 더 쉽게 식별할 수 있습니다. 메이저 버전 번호의 변경(예: 1.*x*.*x*에서 2.*x*.*x*로 변경)은 코드 변경 및 계획된 배포가 필요할 수 있는 중요한 변경 사항을 나타냅니다. 새 버전의 변경 사항이 모든 사용 사례에 영향을 미치는 것은 아닙니다. 릴리스 정보를 검토하여 영향을 받는지 확인하세요. 마이너 버전 번호의 변경(예: *x*.1.*x*에서 *x*.2.*x*로 변경)은 항상 이하 버전과 호환되지만 더 이상 사용되지 않는 요소가 포함될 수 있습니다.

가능하면 선택한 프로그래밍 언어로의 최신 버전을 사용 AWS Encryption SDK 하세요. 각 버전의 [유지 관리 및 지원 정책](introduction.md#support)은 프로그래밍 언어 구현에 따라 다릅니다. 선호하는 프로그래밍 언어로 지원되는 버전에 대한 자세한 내용은 해당 언어의 [GitHub 리포지토리](introduction.md#esdk-repos)에서 `SUPPORT_POLICY.rst` 파일을 참조하세요.

업그레이드에 암호화 또는 복호화 오류를 방지하기 위해 특별한 구성이 필요한 새 기능이 포함된 경우 중간 버전과 자세한 사용 지침을 제공합니다. 예를 들어 버전 1.7.*x* 및 1.8.*x*는 1.7.*x* 이하 버전에서 2.0.*x* 이상 버전으로 업그레이드하는 데 도움이 되는 전환 버전으로 설계되었습니다. 자세한 내용은 [마이그레이션 AWS Encryption SDK](migration.md)을 참조하세요.

**참고**  
버전 번호의 *x*는 메이저 버전과 마이너 버전의 모든 패치를 나타냅니다. 예를 들어 버전 1.7.*x*는 1.7.1과 1.7.9를 포함하여 1.7로 시작하는 모든 버전을 나타냅니다.  
새로운 보안 기능은 원래 AWS Encryption CLI 버전 1.7.*x* 및 2.0.*x*에서 릴리스되었습니다. 그러나 AWS Encryption CLI 버전 1.8.*x*는 버전 1.7.*x*를 대체하고 AWS Encryption CLI 2.1.*x*는 2.0.*x*를 대체합니다. 자세한 내용은 GitHub의 [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)를 참조하세요.

다음 표에는 각 프로그래밍 언어에 대해 지원되는 버전 간의 주요 차이점에 AWS Encryption SDK 대한 개요가 나와 있습니다.

## C
<a name="esdk-c-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk-c](https://github.com/aws/aws-encryption-sdk-c/) 리포지토리에서 [CHANGELOG.md](https://github.com/aws/aws-encryption-sdk-c/blob/master/CHANGELOG.md) 참조하십시오.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 1.7 | Updates to the AWS Encryption SDK that help users of earlier versions upgrade to versions 2.0.x and later. For more information, see [버전 1.7.*x*](#version-1.7). | 
| 2.x | 2.0 | Updates to the AWS Encryption SDK. For more information, see [버전 2.0.*x*](#version-2). | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 
| 2.2 | Improvements to the message decryption process. | 
| 2.3 | Adds support for AWS KMS multi-Region keys. | 

## C\$1/.NET
<a name="esdk-dot-net-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/)리포지토리에서 [CHANGELOG.md](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/CHANGELOG.md) 참조하십시오.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 3.x | 3.1.0 | Initial release. | [End-of-Support](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle)  [AWS Encryption SDK for .NET 버전 3.x](https://www.nuget.org/packages/AWS.EncryptionSDK)가 지원 종료에 들어갔습니다. [4.x로 업그레이드하세요.](https://www.nuget.org/packages/AWS.Cryptography.EncryptionSDK) | 
| 4.x | 4.0 | Adds support for the AWS KMS Hierarchical keyring, the required encryption context CMM, and asymmetric RSA AWS KMS keyrings. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 
| 5.x | 5.0 | Updates to version 2.x of the Material Providers Library (MPL). Drops support for the AWS SDK for .NET v3 and requires the AWS SDK for .NET v4. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## 명령줄 인터페이스(CLI)
<a name="esdk-cli-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/) 리포지토리에서 [AWS 암호화 CLI 버전](crypto-cli-versions.md) 및 [CHANGELOG.rst](https://github.com/aws/aws-encryption-sdk-cli/blob/master/CHANGELOG.rst)를 참조하세요.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 1.7 | Updates to the AWS Encryption SDK that help users of earlier versions upgrade to versions 2.0.x and later. For more information, see [버전 1.7.*x*](#version-1.7). | 
| 2.x | 2.0 | Updates to the AWS Encryption SDK. For more information, see [버전 2.0.*x*](#version-2). | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 2.1 |  `--discovery` 파라미터를 제거하고 `--wrapping-keys` 파라미터의 `discovery` 속성으로 바꿉니다.  AWS Encryption CLI 버전 2.1.0은 다른 프로그래밍 언어의 버전 2.0과 동일합니다.  | 
| 2.2 | Improvements to the message decryption process. | 
| 3.x | 3.0 | Adds support for AWS KMS multi-Region keys. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 4.x | 4.0 | The AWS Encryption CLI no longer supports Python 2 or Python 3.4. As of major version 4.x of the AWS Encryption CLI, only Python 3.5 or later is supported. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 
| 4.1 | The AWS Encryption CLI no longer supports Python 3.5. As of version 4.1.x of the AWS Encryption CLI, only Python 3.6 or later is supported. | 
| 4.2 | The AWS Encryption CLI no longer supports Python 3.6. As of version 4.2.x of the AWS Encryption CLI, only Python 3.7 or later is supported. | 

## Java
<a name="esdk-java-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk-java](https://github.com/aws/aws-encryption-sdk-java/) 리포지토리에서 [CHANGELOG.rst](https://github.com/aws/aws-encryption-sdk-java/blob/master/CHANGELOG.md)를 참조하세요.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 1.3 | Adds support for cryptographic materials manager and data key caching. Moved to deterministic IV generation. | 
| 1.6.1 |  `AwsCrypto.encryptString()` 및를 사용 중지`AwsCrypto.decryptString()`하고 `AwsCrypto.encryptData()` 및 로 바꿉니다`AwsCrypto.decryptData()`.  | 
| 1.7 | Updates to the AWS Encryption SDK that help users of earlier versions upgrade to versions 2.0.x and later. For more information, see [버전 1.7.*x*](#version-1.7). | 
| 2.x | 2.0 | Updates to the AWS Encryption SDK. For more information, see [버전 2.0.*x*](#version-2). |  [일반 가용성](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle)(GA) 버전 2.x는 2024년에 유지 관리 모드로 전환 AWS Encryption SDK for Java 됩니다.  | 
| 2.2 | Improvements to the message decryption process. | 
| 2.3 | Adds support for AWS KMS multi-Region keys. | 
| 2.4 | Adds support for AWS SDK for Java 2.x. | 
| 3.x | 3.0 |  를 재료 공급자 라이브러리(MPL) AWS Encryption SDK for Java 와 통합합니다. [https://github.com/aws/aws-cryptographic-material-providers-library](https://github.com/aws/aws-cryptographic-material-providers-library)  대칭 및 비대칭 RSA AWS KMS 키링, AWS KMS ECDH 키링, AWS KMS 계층적 키링, 원시 AES 키링, 원시 RSA 키링, 원시 ECDH 키링, 다중 키링 및 필요한 암호화 컨텍스트 CMM에 대한 지원을 추가합니다.  | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## Go
<a name="esdk-go-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk](https://github.com/aws/aws-encryption-sdk/tree/mainline) 리포지토리의 Go 디렉터리에 있는 [CHANGELOG.md](https://github.com/aws/aws-encryption-sdk/tree/mainline/releases/go/encryption-sdk/CHANGELOG.md) 참조하십시오.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 0.1.x | 0.1.0 | Initial release. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## JavaScript
<a name="esdk-javascript-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk-javascript](https://github.com/aws/aws-encryption-sdk-javascript/tree/master/modules) 리포지토리에서 [CHANGELOG.md](https://github.com/aws/aws-encryption-sdk-javascript/blob/master/CHANGELOG.md) 참조하세요.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 1.7 | Updates to the AWS Encryption SDK that help users of earlier versions upgrade to versions 2.0.x and later. For more information, see [버전 1.7.*x*](#version-1.7). | 
| 2.x | 2.0 | Updates to the AWS Encryption SDK. For more information, see [버전 2.0.*x*](#version-2). | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 2.2 | Improvements to the message decryption process. | 
| 2.3 | Adds support for AWS KMS multi-Region keys. | 
| 3.x | 3.0 | Removes CI coverage for Node 10. Upgrades dependencies to no longer support Node 8 and Node 10. |  [Maintenance](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 버전 3.x에 대한 지원 AWS Encryption SDK for JavaScript 은 2024년 1월 17일에 종료됩니다.  | 
| 4.x | 4.0 | Requires version 3 of the AWS Encryption SDK for JavaScript's kms-클라이언트 to use the AWS KMS keyring. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## Python
<a name="esdk-python-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk-python](https://github.com/aws/aws-encryption-sdk-python/) 리포지토리에서 [CHANGELOG.rst](https://github.com/aws/aws-encryption-sdk-python/blob/master/CHANGELOG.rst)를 참조하세요.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 1.3 | Adds support for cryptographic materials manager and data key caching. Moved to deterministic IV generation. | 
| 1.7 | Updates to the AWS Encryption SDK that help users of earlier versions upgrade to versions 2.0.x and later. For more information, see [버전 1.7.*x*](#version-1.7). | 
| 2.x | 2.0 | Updates to the AWS Encryption SDK. For more information, see [버전 2.0.*x*](#version-2). | [End-of-Support 단계](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) | 
| 2.2 | Improvements to the message decryption process. | 
| 2.3 | Adds support for AWS KMS multi-Region keys. | 
| 3.x | 3.0 | The AWS Encryption SDK for Python no longer supports Python 2 or Python 3.4. As of major version 3.x of the AWS Encryption SDK for Python, only Python 3.5 or later is supported. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 
| 4.x | 4.0 |  를 재료 공급자 라이브러리(MPL) AWS Encryption SDK for Python 와 통합합니다. [https://github.com/aws/aws-cryptographic-material-providers-library](https://github.com/aws/aws-cryptographic-material-providers-library)   | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## Rust
<a name="esdk-rust-versions"></a>

모든 변경 사항에 대한 자세한 설명은 GitHub의 [aws-encryption-sdk](https://github.com/aws/aws-encryption-sdk/tree/mainline) 리포지토리 Rust 디렉터리에서 [CHANGELOG.md](https://github.com/aws/aws-encryption-sdk-dafny/tree/mainline/AwsEncryptionSDK/runtimes/rust/CHANGELOG.md) 참조하세요.


| 
| 
| **메이저 버전** | **세부 정보** | **SDK 메이저 버전 수명 주기 단계** | 
| --- |--- |--- |
| 1.x | 1.0 | Initial release. | [정식 출시](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) (GA) | 

## 버전 세부 정보
<a name="version-details"></a>

다음 목록은 지원되는 AWS Encryption SDK버전 간의 주요 차이점을 설명합니다.

**Topics**
+ [1.7.*x* 이하 버전](#versions-earlier)
+ [버전 1.7.*x*](#version-1.7)
+ [버전 2.0.*x*](#version-2)
+ [버전 2.2.*x*](#version2.2.x)
+ [버전 2.3.*x*](#version2.3)

### 1.7.*x* 이하 버전
<a name="versions-earlier"></a>

**참고**  
의 모든 1.*x*.*x* 버전 AWS Encryption SDK 은 [end-of-support 단계에](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 있습니다. 가능한 한 빨리 프로그래밍 언어 AWS Encryption SDK 에 사용할 수 있는 최신 버전의 로 업그레이드합니다. 1.7.*x* 이전 AWS Encryption SDK 버전에서 업그레이드하려면 먼저 1.7.*x*로 업그레이드해야 합니다. 자세한 내용은 [마이그레이션 AWS Encryption SDK](migration.md)을 참조하세요.

1.7.*x* AWS Encryption SDK 이전 버전은 Galois/Counter Mode(AES-GCM)의 고급 암호화 표준 알고리즘을 사용한 암호화, HMAC 기반 extract-and-expand 키 유도 함수(HKDF), 서명, 256비트 암호화 키를 포함한 중요한 보안 기능을 제공합니다. 하지만 이러한 버전은 [키 커밋](concepts.md#key-commitment)을 포함하여 권장되는 [모범 사례](best-practices.md)를 지원하지 않습니다.

### 버전 1.7.*x*
<a name="version-1.7"></a>

**참고**  
의 모든 1.*x*.*x* 버전 AWS Encryption SDK 은 [end-of-support 단계에](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 있습니다.

버전 1.7.*x*는 이전 버전의 사용자가 버전 2.0.*x* 이상으로 업그레이드 AWS Encryption SDK 할 수 있도록 설계되었습니다. 를 처음 사용하는 경우이 버전을 건너뛰고 프로그래밍 언어에서 사용 가능한 최신 버전으로 시작할 AWS Encryption SDK수 있습니다.

버전 1.7.*x*는 이하 버전과 완벽하게 호환되며, 중대한 변경 사항을 포함하고 있거나 AWS Encryption SDK의 동작을 변경하지 않습니다. 또한 이상 버전과도 호환되며, 버전 2.0.*x*와 호환되도록 코드를 업데이트할 수 있습니다. 여기에는 새 기능이 포함되어 있지만 완전히 활성화되지는 않습니다. 또한 준비가 될 때까지 모든 새 기능을 즉시 적용하지 못하도록 하는 구성 값이 필요합니다.

버전 1.7.*x*에는 다음과 같은 변경 사항이 포함됩니다.

**AWS KMS 마스터 키 공급자 업데이트(필수)**  <a name="changes-to-mkps"></a>
버전 1.7.*x*는 *엄격한* 또는 *검색* 모드에서 AWS KMS 마스터 키 공급자를 AWS Encryption SDK for Python 명시적으로 생성하는 AWS Encryption SDK for Java 및에 새로운 생성자를 도입합니다. 이 버전은 AWS Encryption SDK 명령줄 인터페이스(CLI)에 유사한 변경 사항을 추가합니다. 자세한 내용은 [AWS KMS 마스터 키 공급자 업데이트](migrate-mkps-v2.md)을 참조하세요.  
+ *엄격 모드*에서 AWS KMS 마스터 키 공급자는 래핑 키 목록을 필요로 하며, 사용자가 지정한 래핑 키로만 암호화하고 복호화합니다. 엄격 모드는 사용하려는 래핑 키를 사용하고 있음을 보장하는 AWS Encryption SDK 모범 사례입니다.
+ *검색 모드*에서 AWS KMS 마스터 키 공급자는 어떤 래핑 키도 사용하지 않습니다. 암호화에는 래핑 키를 사용할 수 없습니다. 복호화에는 모든 래핑 키를 사용하여 암호화된 데이터 키를 복호화할 수 있습니다. 다만 복호화에 사용되는 래핑 키를 특정 AWS 계정에 있는 래핑 키로 제한할 수 있습니다. 계정 필터링은 선택 사항이지만 권장되는 [모범 사례](best-practices.md)입니다.
이전 버전의 AWS KMS 마스터 키 공급자를 생성하는 생성자는 버전 1.7.*x*에서는 더 이상 사용되지 않으며 버전 2.0.*x*에서는 제거됩니다. 이러한 생성자는 사용자가 지정한 래핑 키를 사용하여 암호화하는 마스터 키 공급자를 인스턴스화합니다. 하지만 지정된 래핑 키에 관계없이 데이터 키를 암호화한 래핑 키를 사용하여 해당 암호화된 데이터 키를 복호화합니다. 사용자는 다른 AWS 계정 및 리전 AWS KMS keys 을 포함하여 사용하지 않을 래핑 키를 사용하여 의도치 않게 메시지를 복호화할 수 있습니다.  
 AWS KMS 마스터 키의 생성자는 변경되지 않습니다. 암호화 및 복호화 시 AWS KMS 마스터 키는 AWS KMS key 지정한 만 사용합니다.

**AWS KMS 키링 업데이트(선택 사항)**  
버전 1.7.*x*는 [AWS KMS 검색 키링](use-kms-keyring.md#kms-keyring-discovery)을 특정으로 제한하는 AWS Encryption SDK for C 및 AWS Encryption SDK for JavaScript 구현에 새 필터를 추가합니다 AWS 계정. 이 새로운 계정 필터는 선택 사항이지만 권장되는 [모범 사례](best-practices.md)입니다. 자세한 내용은 [AWS KMS 키링 업데이트](migrate-keyrings-v2.md)을 참조하세요.  
 AWS KMS 키링의 생성자는 변경되지 않습니다. 표준 AWS KMS 키링은 엄격한 모드에서 마스터 키 공급자처럼 동작합니다. AWS KMS 검색 키링은 검색 모드에서 명시적으로 생성됩니다.

** AWS KMS 복호화에 키 ID 전달**  
버전 1.7.*x*부터 암호화된 데이터 키를 복호화할 때는 AWS Encryption SDK 항상를 AWS KMS [복호화](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 작업 호출 AWS KMS key 에 지정합니다. 는 암호화된 각 데이터 키의 메타데이터 AWS KMS key 에서의 키 ID 값을 AWS Encryption SDK 가져옵니다. 이 기능에는 코드 변경이 필요하지 않습니다.  
대칭 암호화 KMS 키로 암호화된 사이퍼텍스트를 해독하는 데의 키 ID를 지정할 AWS KMS key 필요는 없지만 [AWS KMS 모범 사례](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html#KMS-Decrypt-request-KeyId)입니다. 이 방법은 키 공급자에 래핑 키를 지정하는 것과 마찬가지로가 사용하려는 래핑 키를 사용해서 AWS KMS 만 복호화하도록 합니다.

**키 커밋으로 사이퍼텍스트 복호화**  
버전 1.7.*x*는 [키 커밋](concepts.md#key-commitment) 유무에 관계없이 암호화된 사이퍼텍스트를 복호화할 수 있습니다. 하지만 키 커밋으로는 사이퍼텍스트를 암호화할 수 없습니다. 이 속성을 사용하면 사이퍼텍스트가 발생하기 전에 키 커밋으로 암호화된 사이퍼텍스트를 복호화할 수 있는 애플리케이션을 완전히 배포할 수 있습니다. 이 버전은 키 커밋 없이 암호화된 메시지를 복호화하므로 사이퍼텍스트를 다시 암호화할 필요가 없습니다.  
이 동작을 구현하기 위해 버전 1.7.*x*에는가 키 [커밋으로 암호화 또는 복호화할 수 있는지 여부를 결정하는 새로운 커밋 정책](concepts.md#commitment-policy) 구성 설정이 포함되어 있습니다. AWS Encryption SDK 버전 1.7.*x*에서는 커밋 정책에서 유일하게 유효한 값인 `ForbidEncryptAllowDecrypt`가 모든 암호화 및 복호화 작업에 사용됩니다. 이 값은 AWS Encryption SDK 가 키 커밋이 포함된 새 알고리즘 제품군 중 하나를 사용하여 암호화할 수 없도록 합니다. 이를 통해는 키 커밋 유무에 관계없이 사이퍼텍스트를 복호화 AWS Encryption SDK 할 수 있습니다.  
버전 1.7.*x*에는 유효한 커밋 정책 값이 하나뿐이지만 이번 릴리스에 도입된 새 API를 사용할 때는 이 값을 명시적으로 설정할 수 있어야 합니다. 이 값을 명시적으로 설정하면 버전 2.1.*x*로 업그레이드할 때 커밋 정책이 자동으로 `require-encrypt-require-decrypt`로 변경되는 것을 방지할 수 있습니다. 대신, 단계적으로 [커밋 정책을 마이그레이션](migrate-commitment-policy.md)할 수 있습니다.

**키 커밋이 포함된 알고리즘 제품군**  
버전 1.7.*x*에는 키 커밋을 지원하는 두 개의 새로운 [알고리즘 제품군](supported-algorithms.md)이 포함되어 있습니다. 하나는 서명이 포함되어 있고 다른 하나는 서명을 포함하고 있지 않습니다. 이전에 지원되던 알고리즘 제품군과 마찬가지로 이 두 가지 새로운 알고리즘 제품군에는 AES-GCM을 사용한 암호화, 256비트 암호화 키, HMAC 기반 추출 및 확장 키 유도 함수(HKDF)가 포함되어 있습니다.  
하지만 암호화에 사용되는 기본 알고리즘 제품군은 변경되지 않습니다. 이러한 알고리즘 제품군은 버전 1.7.*x*에 추가되어 사용자의 애플리케이션이 버전 2.0.*x* 이상에서 알고리즘을 사용할 수 있도록 지원합니다.

**CMM 구현 변경 사항**  
버전 1.7.*x*에 키 커밋을 지원하기 위해 기본 암호화 구성 요소 관리자(CMM) 인터페이스가 변경되었습니다. 이 변경 사항은 사용자 지정 CMM을 작성한 경우에만 적용됩니다. 자세한 내용은 사용하는 [프로그래밍 언어](programming-languages.md)의 API 설명서 또는 GitHub 리포지토리를 참조하세요.

### 버전 2.0.*x*
<a name="version-2"></a>

버전 2.0.*x*는 지정된 래핑 키 및 키 커밋 AWS Encryption SDK을 포함하여에서 제공되는 새로운 보안 기능을 지원합니다. 이러한 기능을 지원하기 위해 버전 2.0.*x*에는 AWS Encryption SDK의 모든 이하 버전에 대한 주요 변경 사항이 포함되어 있습니다. 버전 1.7.*x*를 배포하여 이러한 변경 사항에 대비할 수 있습니다. 버전 2.0.*x*에는 다음과 같은 추가 및 변경 사항과 함께 버전 1.7.*x*에 도입된 모든 새로운 기능이 포함되어 있습니다.

**참고**  
의 버전 2.*x*.*x* AWS Encryption SDK for Python AWS Encryption SDK for JavaScript및 AWS 암호화 CLI는 [end-of-support 단계에](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 있습니다.  
원하는 프로그래밍 언어로이 AWS Encryption SDK 버전을 [지원하고 유지 관리하는](introduction.md#support) 방법에 대한 자세한 내용은 [GitHub 리포지토리](introduction.md#esdk-repos)의 `SUPPORT_POLICY.rst` 파일을 참조하세요.

**AWS KMS 마스터 키 공급자**  
버전 1.7.*x*에서 더 이상 사용되지 않는 원래 AWS KMS 마스터 키 공급자 생성자는 버전 2.0.*x*에서 제거됩니다. [엄격 모드 또는 검색 모드](migrate-mkps-v2.md)에서 AWS KMS 마스터 키 공급자를 명시적으로 구성해야 합니다.

**키 커밋으로 사이퍼텍스트 암호화 및 복호화**  
버전 2.0.*x*는 [키 커밋](concepts.md#key-commitment) 유무에 관계없이 사이퍼텍스트를 암호화 및 복호화할 수 있습니다. 해당 동작은 커밋 정책 설정에 따라 결정됩니다. 기본적으로 항상 키 커밋을 사용하여 암호화하고 키 커밋으로 암호화된 사이퍼텍스트만 복호화합니다. 커밋 정책을 변경하지 않는 한 AWS Encryption SDK 는 버전 1.7.*x*를 포함한 이하 버전의 AWS Encryption SDK로 암호화된 사이퍼텍스트를 복호화하지 않습니다.  
기본적으로 버전 2.0.*x*는 키 커밋 없이 암호화된 사이퍼텍스트를 복호화하지 않습니다. 애플리케이션에서 키 커밋 없이 암호화된 사이퍼텍스트가 발생한 경우, `AllowDecrypt`로 커밋 정책 값을 설정하세요.
버전 2.0.*x*에서, 커밋 정책 설정에는 다음과 같은 세 가지 유효한 값이 있습니다.  
+ `ForbidEncryptAllowDecrypt` - AWS Encryption SDK 는 키 커밋으로 암호화할 수 없습니다. 암호화된 사이퍼텍스트를 키 커밋 사용 여부와 관계없이 복호화할 수 있습니다.
+ `RequireEncryptAllowDecrypt` - AWS Encryption SDK 는 키 커밋으로 암호화해야 합니다. 암호화된 사이퍼텍스트를 키 커밋 사용 여부와 관계없이 복호화할 수 있습니다.
+ `RequireEncryptRequireDecrypt` (기본값) -는 키 커밋으로 암호화 AWS Encryption SDK 해야 합니다. 키 커밋이 있는 사이퍼텍스트만 복호화합니다.
이전 버전의에서 버전 2.0.*x* AWS Encryption SDK 로 마이그레이션하는 경우 애플리케이션에서 발생할 수 있는 모든 기존 사이퍼텍스트를 복호화할 수 있도록 커밋 정책을 값으로 설정합니다. 시간이 지남에 따라 이 설정을 조정할 가능성이 높습니다.

### 버전 2.2.*x*
<a name="version2.2.x"></a>

디지털 서명 및 암호화된 데이터 키 제한에 대한 지원이 추가되었습니다.

**참고**  
버전 2.*x*.*x* 및 AWS Encryption SDK for Python AWS Encryption SDK for JavaScript AWS 암호화 CLI는 [end-of-support 단계에](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 있습니다.  
원하는 프로그래밍 언어로이 AWS Encryption SDK 버전을 [지원하고 유지 관리하는](introduction.md#support) 방법에 대한 자세한 내용은 [GitHub 리포지토리](introduction.md#esdk-repos)의 `SUPPORT_POLICY.rst` 파일을 참조하세요.

**디지털 서명**  
복호화 시 [디지털 서명](concepts.md#digital-sigs) 처리를 개선하기 위해 에는 다음 기능이 AWS Encryption SDK 포함되어 있습니다.  
+ *비스트리밍 모드* - 디지털 서명이 있는 경우 디지털 서명 확인을 포함하여 모든 입력이 처리된 후에만 일반 텍스트를 반환합니다. 이 기능을 사용하면 디지털 서명을 확인하기 전에 일반 텍스트를 사용할 수 없습니다. 디지털 서명으로 암호화된 데이터(기본 알고리즘 제품군)를 복호화할 때마다 이 기능을 사용하세요. 예를 들어 AWS Encryption CLI는 항상 스트리밍 모드에서 데이터를 처리하기 때문에 디지털 서명으로 사이퍼텍스트를 복호화할 때 `- -buffer` 파라미터를 사용합니다.
+ *무서명 전용 복호화 모드* - 이 기능은 서명되지 않은 사이퍼텍스트만 복호화합니다. 복호화 시 사이퍼텍스트에 디지털 서명이 있는 경우 작업이 실패합니다. 이 기능을 사용하면 서명을 확인하기 전에 서명된 메시지의 일반 텍스트를 실수로 처리하는 것을 방지할 수 있습니다.

**암호화된 데이터 키 제한**  
암호화된 메시지의 [암호화된 데이터 키의 수를 제한](configure.md#config-limit-keys)할 수 있습니다. 이 기능을 사용하면 암호화할 때 잘못 구성된 마스터 키 공급자 또는 키링을 탐지하거나 복호화 시 악성 사이퍼텍스트를 식별할 수 있습니다.  
신뢰할 수 없는 소스의 메시지를 복호화할 때는 암호화된 데이터 키를 제한해야 합니다. 이렇게 하면 키 인프라에 대하여 불필요하며 비용이 높고 잠재적으로 소모적인 호출을 방지합니다.

### 버전 2.3.*x*
<a name="version2.3"></a>

 AWS KMS 다중 리전 키에 대한 지원을 추가합니다. 자세한 내용은 [다중 리전 사용 AWS KMS keys](configure.md#config-mrks)을 참조하세요.

**참고**  
 AWS Encryption CLI는 버전 3.0.*x*부터 다중 리전 키를 지원합니다.  
의 버전 2.*x*.*x* AWS Encryption SDK for Python AWS Encryption SDK for JavaScript및 AWS 암호화 CLI는 [end-of-support 단계에](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html#version-life-cycle) 있습니다.  
원하는 프로그래밍 언어로이 AWS Encryption SDK 버전을 [지원하고 유지 관리하는](introduction.md#support) 방법에 대한 자세한 내용은 [GitHub 리포지토리](introduction.md#esdk-repos)의 `SUPPORT_POLICY.rst` 파일을 참조하세요.