기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
의 버전 AWS Encryption SDK
AWS Encryption SDK 언어 구현에서는 시맨틱 버전 관리를
가능하면 선택한 프로그래밍 언어의 최신 버전을 사용하십시오. AWS Encryption SDK 각 버전의 유지 관리 및 지원 정책은 프로그래밍 언어 구현에 따라 다릅니다. 선호하는 프로그래밍 언어에서 지원되는 버전에 대한 자세한 내용은 해당 GitHub저장소의 SUPPORT_POLICY.rst 파일을 참조하십시오.
업그레이드에 암호화 또는 복호화 오류를 방지하기 위해 특별한 구성이 필요한 새 기능이 포함된 경우 중간 버전과 자세한 사용 지침을 제공합니다. 예를 들어 버전 1.7.x 및 1.8.x는 1.7.x 이하 버전에서 2.0.x 이상 버전으로 업그레이드하는 데 도움이 되는 전환 버전으로 설계되었습니다. 세부 정보는 AWS Encryption SDK 마이그레이션을 참조하세요.
참고
버전 번호의 x는 메이저 버전과 마이너 버전의 모든 패치를 나타냅니다. 예를 들어 버전 1.7.x는 1.7.1과 1.7.9를 포함하여 1.7로 시작하는 모든 버전을 나타냅니다.
새 보안 기능은 원래 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
다음 표는 각 프로그래밍 언어에 지원되는 버전 간의 주요 차이점에 AWS Encryption SDK 대한 개요를 제공합니다.
C
모든 변경 사항에 대한 자세한 설명은 의 CHANGELOGaws-encryption-sdk-c
메이저 버전 | 세부 정보 | SDK메이저 버전 수명 주기 단계 | |
---|---|---|---|
1.x | 1.0 | 최초 릴리스. | 지원 종료 단계 |
1.7 | 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드하는 데 도움이 되는 업데이트. x 이상. 자세한 내용은 버전 1.7을 참조하십시오. x. | ||
2.x | 2.0 | 에 대한 업데이트 AWS Encryption SDK. 자세한 내용은 버전 2.0을 참조하십시오. x. | 일반 가용성(GA) |
2.2 | 메시지 복호화 프로세스 개선. | ||
2.3 | AWS KMS 다중 지역 키에 대한 지원을 추가합니다. |
C#/. NET
모든 변경 사항에 대한 자세한 설명은 의 CHANGELOGaws-encryption-sdk-net
CLI명령줄 인터페이스 ()
모든 변경 사항에 대한 자세한 설명은 AWS Encryption CLI의 버전 및 의 CHANGELOGaws-encryption-sdk-cli
메이저 버전 | 세부 정보 | SDK메이저 버전 수명 주기 단계 | |
---|---|---|---|
1.x | 1.0 | 최초 릴리스. | 지원 종료 단계 |
1.7 | 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드하는 데 도움이 되는 업데이트. x 이상. 자세한 내용은 버전 1.7을 참조하십시오. x. | ||
2.x | 2.0 | 에 대한 업데이트 AWS Encryption SDK. 자세한 내용은 버전 2.0을 참조하십시오. x. | 지원 종료 단계 |
2.1 |
AWS 암호화 버전 CLI 2.1.0은 다른 프로그래밍 언어의 버전 2.0과 동일합니다. |
||
2.2 | 메시지 복호화 프로세스 개선. | ||
3.x | 3.0 | AWS KMS 다중 지역 키에 대한 지원을 추가합니다. | 지원 종료 단계 |
4.x | 4.0 | AWS 암호화는 더 CLI 이상 파이썬 2나 파이썬 3.4를 지원하지 않습니다. 메이저 버전 4 기준. AWS 암호화의 xCLI, Python 3.5 이상만 지원됩니다. | 일반 가용성(GA) |
4.1 | AWS 암호화는 더 CLI 이상 Python 3.5를 지원하지 않습니다. 버전 4.1부터. AWS 암호화의 xCLI, Python 3.6 이상만 지원됩니다. | ||
4.2 | AWS 암호화는 더 CLI 이상 Python 3.6을 지원하지 않습니다. 버전 4.2부터. AWS 암호화의 xCLI, Python 3.7 이상만 지원됩니다. |
Java
모든 변경 사항에 대한 자세한 설명은 의 CHANGELOG저장소의.rst를 aws-encryption-sdk-java
메이저 버전 | 세부 정보 | SDK메이저 버전 수명 주기 단계 | |
---|---|---|---|
1.x | 1.0 | 최초 릴리스. | 지원 종료 단계 |
1.3 | 암호화 자료 관리자 및 데이터 키 캐싱에 대한 지원을 추가합니다. 결정론적 IV 생성으로 이동했습니다. | ||
1.6.1 |
더 이상 사용되지 않고 |
||
1.7 | 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드하는 데 도움이 되는 업데이트. x 이상. 자세한 내용은 버전 1.7을 참조하십시오. x. | ||
2.x | 2.0 | 에 대한 업데이트 AWS Encryption SDK. 자세한 내용은 버전 2.0을 참조하십시오. x. |
일반 가용성(GA) 버전 2.x는 AWS Encryption SDK for Java 2024년에 유지 관리 모드로 전환됩니다. |
2.2 | 메시지 복호화 프로세스 개선. | ||
2.3 | AWS KMS 다중 지역 키에 대한 지원을 추가합니다. | ||
2.4 | 에 대한 AWS SDK for Java 2.x지원을 추가합니다. | ||
3.x | 3.0 |
머티리얼 프로바이더 라이브러리와 통합합니다. AWS Encryption SDK for Java 대칭 및 비대칭 RSA AWS KMS 키링, AWS KMS 계층적 키링, 원시 키링, 원시 키링, 멀티 키링 및 필수 AES 암호화 컨텍스트에 대한 지원을 추가합니다. RSA CMM |
일반 가용성(GA) |
JavaScript
모든 변경 사항에 대한 자세한 설명은 의 저장소의.md를 참조하십시오. CHANGELOG aws-encryption-sdk-javascript
메이저 버전 | 세부 정보 | SDK메이저 버전 수명 주기 단계 | |
---|---|---|---|
1.x | 1.0 | 최초 릴리스. | 지원 종료 단계 |
1.7 | 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드하는 데 도움이 되는 업데이트. x 이상. 자세한 내용은 버전 1.7을 참조하십시오. x. | ||
2.x | 2.0 | 에 대한 업데이트 AWS Encryption SDK. 자세한 내용은 버전 2.0을 참조하십시오. x. | 지원 종료 단계 |
2.2 | 메시지 복호화 프로세스 개선 | ||
2.3 | AWS KMS 다중 지역 키에 대한 지원을 추가합니다. | ||
3.x | 3.0 | 노드 10의 CI 커버리지를 제거합니다. 더 이상 노드 8과 노드 10을 지원하지 않도록 종속성을 업그레이드합니다. |
버전 3.x에 대한 지원은 2024년 1월 17일에 AWS Encryption SDK for JavaScript 종료됩니다. |
4.x | 4.0 | AWS KMS 키링을 사용하려면 버전 3이 필요합니다. AWS Encryption SDK for JavaScriptkms-client |
일반 가용성(GA) |
Python
모든 변경 사항에 대한 자세한 설명은 저장소의 CHANGELOG.rst를
메이저 버전 | 세부 정보 | SDK메이저 버전 수명 주기 단계 | |
---|---|---|---|
1.x | 1.0 | 최초 릴리스. | 지원 종료 단계 |
1.3 | 암호화 자료 관리자 및 데이터 키 캐싱에 대한 지원을 추가합니다. 결정론적 IV 생성으로 이동했습니다. | ||
1.7 | 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드하는 데 도움이 되는 업데이트. x 이상. 자세한 내용은 버전 1.7을 참조하십시오. x. | ||
2.x | 2.0 | 에 대한 업데이트 AWS Encryption SDK. 자세한 내용은 버전 2.0을 참조하십시오. x. | 지원 종료 단계 |
2.2 | 메시지 복호화 프로세스 개선 | ||
2.3 | AWS KMS 다중 지역 키에 대한 지원을 추가합니다. | ||
3.x | 3.0 | 는 더 AWS Encryption SDK for Python 이상 파이썬 2나 파이썬 3.4를 지원하지 않습니다. 메이저 버전 3 기준. 그 AWS Encryption SDK for Python중 x는 Python 3.5 이상만 지원됩니다. | 일반 가용성(GA) |
버전 세부 정보
다음 목록은 지원되는 AWS Encryption SDK버전 간의 주요 차이점을 설명합니다.
1.7.x 이하 버전
참고
모두 1. x. x 버전이 AWS Encryption SDK 현재 end-of-support단계에 있습니다. 가능한 한 빨리 사용 가능한 프로그래밍 언어에 AWS Encryption SDK 맞는 최신 버전으로 업그레이드하십시오. 1.7 이전 AWS Encryption SDK 버전에서 업그레이드하려면. x, 먼저 1.7로 업그레이드해야 합니다. x. 세부 정보는 AWS Encryption SDK 마이그레이션을 참조하세요.
1.7 AWS Encryption SDK 이전 버전. x는 Galois/Counter 모드 (AES-GCM) 에서의 고급 암호화 표준 알고리즘을 사용한 암호화, HMAC 기반 extract-and-expand 키 파생 함수 (HKDF), 서명, 256비트 암호화 키 등 중요한 보안 기능을 제공합니다. 하지만 이러한 버전은 키 커밋을 포함하여 권장되는 모범 사례를 지원하지 않습니다.
버전 1.7.x
참고
모두 1. x. x 버전이 AWS Encryption SDK 현재 end-of-support단계에 있습니다.
버전 1.7. x는 이전 버전 사용자가 버전 2.0으로 AWS Encryption SDK 업그레이드할 수 있도록 설계되었습니다. x 이상. 를 처음 사용하는 경우 이 버전을 건너뛰고 사용 가능한 최신 버전의 프로그래밍 언어로 시작할 수 있습니다. AWS Encryption SDK
버전 1.7.x는 이하 버전과 완벽하게 호환되며, 중대한 변경 사항을 포함하고 있거나 AWS Encryption SDK의 동작을 변경하지 않습니다. 또한 이상 버전과도 호환되며, 버전 2.0.x와 호환되도록 코드를 업데이트할 수 있습니다. 여기에는 새 기능이 포함되어 있지만 완전히 활성화되지는 않습니다. 또한 준비가 될 때까지 모든 새 기능을 즉시 적용하지 못하도록 하는 구성 값이 필요합니다.
버전 1.7.x에는 다음과 같은 변경 사항이 포함됩니다.
- AWS KMS 마스터 키 제공자 업데이트 (필수)
-
버전 1.7. x는 엄격 모드 또는 검색 모드에서 AWS Encryption SDK for Java AWS KMS 마스터 키 제공자를 명시적으로 AWS Encryption SDK for Python 생성하는 새로운 생성자를 and에 도입합니다. 이 버전에서는 AWS Encryption SDK 명령줄 인터페이스 () 에도 비슷한 변경 사항이 추가되었습니다. CLI 세부 정보는 AWS KMS 마스터 키 제공자 업데이트을 참조하세요.
-
엄격 모드에서 AWS KMS 마스터 키 공급자는 래핑 키 목록을 필요로 하며, 사용자가 지정한 래핑 키로만 암호화하고 복호화합니다. 엄격 모드는 사용하려는 래핑 키를 사용하고 있음을 보장하는 AWS Encryption SDK 모범 사례입니다.
-
검색 모드에서 AWS KMS 마스터 키 공급자는 어떤 래핑 키도 사용하지 않습니다. 암호화에는 래핑 키를 사용할 수 없습니다. 복호화에는 모든 래핑 키를 사용하여 암호화된 데이터 키를 복호화할 수 있습니다. 다만 복호화에 사용되는 래핑 키를 특정 AWS 계정에 있는 래핑 키로 제한할 수 있습니다. 계정 필터링은 선택 사항이지만 권장되는 모범 사례입니다.
이전 버전의 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 Encryption SDK for C 및 AWS Encryption SDK for JavaScript 구현에 AWS KMS 검색 키링을 특정 항목으로 제한하는 새 필터를 추가합니다. AWS 계정이 새로운 계정 필터는 선택 사항이지만 권장되는 모범 사례입니다. 세부 정보는 AWS KMS 키링 업데이트을 참조하세요.
키링의 생성자는 변경되지 않았습니다. AWS KMS 표준 AWS KMS 키링은 엄격 모드에서 마스터 키 제공자처럼 작동합니다. AWS KMS 검색 키링은 검색 모드에서 명시적으로 생성됩니다.
- 암호 해독에 키 ID 전달 AWS KMS
-
버전 1.7부터 시작. x에서는 암호화된 데이터 키를 해독할 때 복호화 작업 AWS KMS key 호출에서 AWS Encryption SDK 항상 a를 지정합니다. AWS KMS 는 AWS Encryption SDK 암호화된 각 데이터 키의 AWS KMS key 메타데이터에서 의 키 ID 값을 가져옵니다. 이 기능에는 코드 변경이 필요하지 않습니다.
의 키 ID를 지정하지 않아도 대칭 암호화 KMS 키로 암호화된 암호문을 해독할 수 있지만 가장 좋은 AWS KMS key 방법은 아닙니다.AWS KMS 키 제공자에서 래핑 키를 지정하는 것과 마찬가지로 이 방법을 사용하면 사용하려는 래핑 키를 AWS KMS 사용해서만 해독할 수 있습니다.
- 키 커밋으로 사이퍼텍스트 복호화
-
버전 1.7.x는 키 커밋 유무에 관계없이 암호화된 사이퍼텍스트를 복호화할 수 있습니다. 하지만 키 커밋으로는 사이퍼텍스트를 암호화할 수 없습니다. 이 속성을 사용하면 사이퍼텍스트가 발생하기 전에 키 커밋으로 암호화된 사이퍼텍스트를 복호화할 수 있는 애플리케이션을 완전히 배포할 수 있습니다. 이 버전은 키 커밋 없이 암호화된 메시지를 복호화하므로 사이퍼텍스트를 다시 암호화할 필요가 없습니다.
이 동작을 구현하려면 버전 1.7을 사용하십시오. x에는 키 커밋을 통한 암호화 또는 복호화 AWS Encryption SDK 가능 여부를 결정하는 새로운 약정 정책 구성 설정이 포함되어 있습니다. 버전 1.7.x에서는 커밋 정책에서 유일하게 유효한 값인
ForbidEncryptAllowDecrypt
가 모든 암호화 및 복호화 작업에 사용됩니다. 이 값은 AWS Encryption SDK 가 키 커밋이 포함된 새 알고리즘 제품군 중 하나를 사용하여 암호화할 수 없도록 합니다. 이를 통해 키 AWS Encryption SDK 커밋을 사용하거나 사용하지 않고 암호문을 해독할 수 있습니다.버전 1.7에는 유효한 약정 정책 값이 하나뿐이지만. x, 이번 릴리스에 새로 APIs 도입된 기능을 사용할 때는 이 값을 명시적으로 설정할 수 있어야 합니다. 이 값을 명시적으로 설정하면 버전 2.1.x로 업그레이드할 때 커밋 정책이 자동으로
require-encrypt-require-decrypt
로 변경되는 것을 방지할 수 있습니다. 대신, 단계적으로 커밋 정책을 마이그레이션할 수 있습니다. - 키 커밋이 포함된 알고리즘 제품군
-
버전 1.7.x에는 키 커밋을 지원하는 두 개의 새로운 알고리즘 제품군이 포함되어 있습니다. 하나는 서명이 포함되어 있고 다른 하나는 서명을 포함하고 있지 않습니다. 이전에 지원되는 알고리즘 모음과 마찬가지로 이 두 가지 새 알고리즘 제품군에는 AES -를 사용한 암호화GCM, 256비트 암호화 키 및 HMAC 기반 extract-and-expand 키 파생 함수 () 가 포함되어 있습니다. HKDF
하지만 암호화에 사용되는 기본 알고리즘 제품군은 변경되지 않습니다. 이러한 알고리즘 제품군은 버전 1.7.x에 추가되어 사용자의 애플리케이션이 버전 2.0.x 이상에서 알고리즘을 사용할 수 있도록 지원합니다.
- CMM구현 변경
-
버전 1.7. x는 키 커밋을 지원하기 위해 기본 암호화 자료 관리자 (CMM) 인터페이스를 변경했습니다. 이 변경 사항은 사용자 정의를 CMM 작성한 경우에만 적용됩니다. 자세한 내용은 프로그래밍 언어의 API 설명서 또는 GitHub 리포지토리를 참조하십시오.
버전 2.0.x
버전 2.0. x는 지정된 래핑 키 및 키 약정을 AWS Encryption SDK포함하여 에서 제공되는 새로운 보안 기능을 지원합니다. 이러한 기능을 지원하기 위해 버전 2.0.x에는 AWS Encryption SDK의 모든 이하 버전에 대한 주요 변경 사항이 포함되어 있습니다. 버전 1.7.x를 배포하여 이러한 변경 사항에 대비할 수 있습니다. 버전 2.0.x에는 다음과 같은 추가 및 변경 사항과 함께 버전 1.7.x에 도입된 모든 새로운 기능이 포함되어 있습니다.
참고
버전 2. x. AWS Encryption SDK for Python,, AWS Encryption SDK for JavaScript, 중 CLIx는 AWS 암호화 end-of-support단계에 있습니다.
선호하는 프로그래밍 언어로 이 AWS Encryption SDK 버전을 지원하고 유지 관리하는 방법에 대한 자세한 내용은 해당 GitHub저장소의 SUPPORT_POLICY.rst 파일을 참조하십시오.
- AWS KMS 마스터 키 제공자
-
버전 1.7에서 더 이상 사용되지 않는 오리지널 AWS KMS 마스터 키 제공자 생성자. 버전 2.0에서는 x가 제거되었습니다. x. 엄격 모드 또는 검색 모드에서 AWS KMS 마스터 키 공급자를 명시적으로 구성해야 합니다.
- 키 커밋으로 사이퍼텍스트 암호화 및 복호화
-
버전 2.0.x는 키 커밋 유무에 관계없이 사이퍼텍스트를 암호화 및 복호화할 수 있습니다. 해당 동작은 커밋 정책 설정에 따라 결정됩니다. 기본적으로 항상 키 커밋을 사용하여 암호화하고 키 커밋으로 암호화된 사이퍼텍스트만 복호화합니다. 커밋 정책을 변경하지 않는 한 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으로 마이그레이션하는 경우. AWS Encryption SDK x, 애플리케이션에서 발생할 수 있는 모든 기존 암호문을 해독할 수 있는 값으로 약정 정책을 설정하십시오. 시간이 지남에 따라 이 설정을 조정할 가능성이 높습니다.
-
버전 2.2.x
디지털 서명 및 암호화된 데이터 키 제한에 대한 지원이 추가되었습니다.
참고
버전 2. x. AWS Encryption SDK for Python,, AWS Encryption SDK for JavaScript, 중 CLIx는 AWS 암호화 end-of-support단계에 있습니다.
선호하는 프로그래밍 언어로 이 AWS Encryption SDK 버전을 지원하고 유지 관리하는 방법에 대한 자세한 내용은 해당 GitHub저장소의 SUPPORT_POLICY.rst 파일을 참조하십시오.
- 디지털 서명
암호 해독 시 디지털 서명 처리를 개선하기 위해 에는 다음과 같은 기능이 AWS Encryption SDK 포함되어 있습니다.
-
비스트리밍 모드 - 디지털 서명이 있는 경우 디지털 서명 확인을 포함하여 모든 입력이 처리된 후에만 일반 텍스트를 반환합니다. 이 기능을 사용하면 디지털 서명을 확인하기 전에 일반 텍스트를 사용할 수 없습니다. 디지털 서명으로 암호화된 데이터(기본 알고리즘 제품군)를 복호화할 때마다 이 기능을 사용하세요. 예를 들어 AWS 암호화는 CLI 항상 스트리밍 모드에서 데이터를 처리하므로 디지털 서명으로 암호문을 해독할 때는 이
- -buffer
매개 변수를 사용하십시오. -
무서명 전용 복호화 모드 - 이 기능은 서명되지 않은 사이퍼텍스트만 복호화합니다. 복호화 시 사이퍼텍스트에 디지털 서명이 있는 경우 작업이 실패합니다. 이 기능을 사용하면 서명을 확인하기 전에 서명된 메시지의 일반 텍스트를 실수로 처리하는 것을 방지할 수 있습니다.
-
- 암호화된 데이터 키 제한
-
암호화된 메시지의 암호화된 데이터 키의 수를 제한할 수 있습니다. 이 기능을 사용하면 암호화할 때 잘못 구성된 마스터 키 공급자 또는 키링을 탐지하거나 복호화 시 악성 사이퍼텍스트를 식별할 수 있습니다.
신뢰할 수 없는 소스의 메시지를 복호화할 때는 암호화된 데이터 키를 제한해야 합니다. 이렇게 하면 키 인프라에 대하여 불필요하며 비용이 높고 잠재적으로 소모적인 호출을 방지합니다.
버전 2.3.x
AWS KMS 다중 지역 키에 대한 지원을 추가합니다. 세부 정보는 멀티 리전 사용 AWS KMS keys을 참조하세요.
참고
AWS 암호화는 버전 3.0부터 다중 지역 키를 CLI 지원합니다. x.
버전 2. x. AWS Encryption SDK for Python,, AWS Encryption SDK for JavaScript, 중 CLIx는 AWS 암호화 end-of-support단계에 있습니다.
선호하는 프로그래밍 언어로 이 AWS Encryption SDK 버전을 지원하고 유지 관리하는 방법에 대한 자세한 내용은 해당 GitHub저장소의 SUPPORT_POLICY.rst 파일을 참조하십시오.