翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
のバージョン 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.7.1 および 1.7.9 が含まれます。
新しいセキュリティ機能は、もともと Encryption 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
すべての変更の詳細な説明については、 aws-encryption-sdk-c
メジャーバージョン | 詳細 | SDK メジャーバージョンのライフサイクルフェーズ | |
---|---|---|---|
1.x | 1.0 | 初回リリース。 | End-of-Support フェーズ |
1.7 | 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレード AWS Encryption SDK するのに役立つ の更新。詳細については、バージョン 1.7.xを参照してください。 | ||
2.x | 2.0 | の更新 AWS Encryption SDK。詳細については、バージョン 2.0.x を参照してください。 | 一般提供 (GA) |
2.2 | メッセージ復号化プロセスが改善されました。 | ||
2.3 | AWS KMS マルチリージョンキーのサポートが追加されました。 |
C# / 。NET
すべての変更の詳細な説明については、 aws-encryption-sdk-net
コマンドラインインターフェイス (CLI)
すべての変更の詳細な説明については、AWS Encryption CLI のバージョン「」およびaws-encryption-sdk-cli
メジャーバージョン | 詳細 | SDK メジャーバージョンのライフサイクルフェーズ | |
---|---|---|---|
1.x | 1.0 | 初回リリース。 | End-of-Support フェーズ |
1.7 | 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレード AWS Encryption SDK するのに役立つ の更新。詳細については、「 バージョン 1.7.x」を参照してください。 | ||
2.x | 2.0 | の更新 AWS Encryption SDK。詳細については、バージョン 2.0.x を参照してください。 | End-of-Support フェーズ |
2.1 |
暗号化のバージョン 2.1.0 AWS CLIは、他のプログラミング言語のバージョン 2.0 と同等です。 |
||
2.2 | メッセージ復号化プロセスが改善されました。 | ||
3.x | 3.0 | AWS KMS マルチリージョンキーのサポートが追加されました。 | End-of-Support フェーズ |
4.x | 4.0 | AWS Encryption は Python 2 または Python 3.4 をサポートしCLIなくなりました。 AWS Encryption のメジャーバージョン 4.x ではCLI、Python 3.5 以降のみがサポートされています。 | 一般提供 (GA) |
4.1 | Encryption AWS は Python 3.5 をサポートしCLIなくなりました。 AWS Encryption のバージョン 4.1.x ではCLI、Python 3.6 以降のみがサポートされています。 | ||
4.2 | Encryption AWS は Python 3.6 をサポートしCLIなくなりました。 AWS Encryption のバージョン 4.2.x ではCLI、Python 3.7 以降のみがサポートされています。 |
Java
すべての変更の詳細な説明については、 aws-encryption-sdk-java
メジャーバージョン | 詳細 | SDK メジャーバージョンのライフサイクルフェーズ | |
---|---|---|---|
1.x | 1.0 | 初回リリース。 | End-of-Support フェーズ |
1.3 | 暗号化マテリアルマネージャーとデータキーキャッシュのサポートが追加されました。決定論的 IV 生成に移行しました。 | ||
1.6.1 |
|
||
1.7 | 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレード AWS Encryption SDK するのに役立つ の更新。詳細については、「 バージョン 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 と統合しますMPL。 https://github.com/aws/aws-cryptographic-material-providers-library 対称キーリングと非対称RSA AWS KMS キーリング、 AWS KMS ECDHキーリング、 AWS KMS 階層キーリング、Raw AESキーリング、Raw RSAキーリング、Raw ECDHキーリング、マルチキーリング、および必要な暗号化コンテキスト のサポートが追加されましたCMM。 |
一般提供 (GA) |
JavaScript
すべての変更の詳細な説明については、 aws-encryption-sdk-javascript
メジャーバージョン | 詳細 | SDK メジャーバージョンのライフサイクルフェーズ | |
---|---|---|---|
1.x | 1.0 | 初回リリース。 | End-of-Support フェーズ |
1.7 | 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレード AWS Encryption SDK するのに役立つ の更新。詳細については、バージョン 1.7.xを参照してください。 | ||
2.x | 2.0 | の更新 AWS Encryption SDK。詳細については、バージョン 2.0.x を参照してください。 | End-of-Support フェーズ |
2.2 | メッセージ復号化プロセスが改善されました。 | ||
2.3 | AWS KMS マルチリージョンキーのサポートが追加されました。 | ||
3.x | 3.0 | ノード 10 の CI カバレッジを削除します。依存関係を にアップグレードして、ノード 8 とノード 10 をサポートしなくなりました。 |
のバージョン 3.x のサポート AWS Encryption SDK for JavaScript は、2024 年 1 月 17 日に終了します。 |
4.x | 4.0 | のバージョン 3 AWS Encryption SDK for JavaScriptで AWS KMS キーリングkms-client を使用する必要があります。 |
一般提供 (GA) |
Python
すべての変更の詳細な説明については、 aws-encryption-sdk-python
メジャーバージョン | 詳細 | SDK メジャーバージョンのライフサイクルフェーズ | |
---|---|---|---|
1.x | 1.0 | 初回リリース。 | End-of-Support フェーズ |
1.3 | 暗号化マテリアルマネージャーとデータキーキャッシュのサポートが追加されました。決定論的 IV 生成に移行しました。 | ||
1.7 | 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレード AWS Encryption SDK するのに役立つ の更新。詳細については、バージョン 1.7.x を参照してください。 | ||
2.x | 2.0 | の更新 AWS Encryption SDK。詳細については、バージョン 2.0.x を参照してください。 | End-of-Support フェーズ |
2.2 | メッセージ復号化プロセスが改善されました。 | ||
2.3 | AWS KMS マルチリージョンキーのサポートが追加されました。 | ||
3.x | 3.0 | は Python 2 または Python 3.4 をサポートし AWS Encryption SDK for Python なくなりました。のメジャーバージョン 3.x では AWS Encryption SDK for Python、Python 3.5 以降のみがサポートされています。 | 一般提供 (GA) |
3.x | 4.0 |
をマテリアルプロバイダーライブラリ () AWS Encryption SDK for Python と統合しますMPL。 https://github.com/aws/aws-cryptographic-material-providers-library |
一般提供 (GA) |
バージョンの詳細
以下のリストでは、 AWS Encryption SDKでサポートされているバージョンの主な相違点を示します。
1.7.x より前のバージョン
注記
のすべての 1.x.x バージョン AWS Encryption SDK は end-of-supportフェーズにあります。可能な限り早く、プログラミング言語で利用可能な最新バージョンの にアップグレード AWS Encryption SDK してください。1.7.x より前の AWS Encryption SDK バージョンからアップグレードするには、まず 1.7.x にアップグレードする必要があります。詳細については、「AWS Encryption SDK の移行」を参照してください。
1.7.x より AWS Encryption SDK 前のバージョンの には、Galois/Counter Mode (AES-GCM) の Advanced Encryption Standard アルゴリズムによる暗号化、 HMACベースの extract-and-expandキー取得関数 (HKDF)、署名、256 ビット暗号化キーなど、重要なセキュリティ機能が用意されています。ただし、これらのバージョンでは、キーコミットメントなど、推奨ベストプラクティスがサポートされません。
バージョン 1.7.x
注記
のすべての 1.x.x バージョン AWS Encryption SDK は end-of-supportフェーズにあります。
バージョン 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 マスターキープロバイダーの更新 (必須)
-
バージョン 1.7.x では、Strict モードまたは Discovery モードで AWS KMS マスターキープロバイダー AWS Encryption SDK for Python を明示的に作成する新しいコンストラクタが AWS Encryption SDK for Java および に導入されています。このバージョンでは、 AWS Encryption SDK コマンドラインインターフェイス () に同様の変更が追加されていますCLI。詳細については、「AWS KMS マスターキープロバイダーの更新」を参照してください。
-
AWS KMS マスターキープロバイダーでは、Strict モードの場合、ラッピングキーのリストが必要で、指定したラッピングキーのみで暗号化と復号化が行われます。これが AWS Encryption SDK のベストプラクティスで、使用を意図したラッピングキーを使用していることが保証されます。
-
AWS KMS マスターキープロバイダーでは、Discovery モードの場合、ラッピングキーが使用されません。ラッピングキーを暗号化に使用することはできません。復号時には、ラッピングキーを使用して、暗号化されたデータキーを復号できます。ただし、復号化に使用するラッピングキーは、特定の AWS アカウントのものに制限できます。アカウントのフィルタリングはオプションですが、お勧めのベストプラクティスです。
以前のバージョンの AWS KMS マスターキープロバイダーを作成するコンストラクタは、バージョン 1.7.x では廃止され、バージョン 2.0.x では削除されます。これらのコンストラクタは、指定したラッピングキーを使用して暗号化するマスターキープロバイダーをインスタンス化します。ただし、指定したラッピングキーに関係なく、暗号化したラッピングキーを使用して、暗号化されたデータキーを復号化します。ユーザーは、 AWS KMS keys 他の AWS アカウント やリージョンなど、使用を意図していないラッピングキーを使用して意図せずにメッセージを復号する場合があります。
AWS KMS マスターキーのコンストラクタに変更はありません。暗号化および復号時に、 AWS KMS マスターキーは AWS KMS key 指定した のみを使用します。
-
- AWS KMS キーリングの更新 (オプション)
-
バージョン 1.7.x では、AWS KMS 検出キーリングを特定の に制限する新しいフィルターが AWS Encryption SDK for C および AWS Encryption SDK for JavaScript 実装に追加されます AWS アカウント。この新しいアカウントフィルターはオプションですが、お勧めのベストプラクティスです。詳細については、「AWS KMS キーリングの更新」を参照してください。
AWS KMS キーリングのコンストラクタに変更はありません。標準 AWS KMS キーリングは、Strict モードでマスターキープロバイダーのように動作します。 AWS KMS discovery キーリングは、discovery モードで明示的に作成されます。
- 復 AWS KMS 号化にキー ID を渡す
-
バージョン 1.7.x 以降では、暗号化されたデータキーを復号するときに、 は AWS KMS Decrypt オペレーションの呼び出し AWS KMS key で AWS Encryption SDK 常に を指定します。は、暗号化された各データキーのメタデータ AWS KMS key から のキー ID 値 AWS Encryption SDK を取得します。この機能では、コードの変更は必要ありません。
対称暗号化キーで暗号化された暗号文を復号化するには、 のKMSキー ID を指定 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 には有効なコミットメントポリシーの値が 1 つしかありませんが、このリリースでAPIs導入された新しい を使用する場合は、この値を明示的に設定する必要があります。値を明示的に設定すると、バージョン 2.1.x へのアップグレード時にコミットメントポリシーが自動的に
require-encrypt-require-decrypt
に変更されなくなります。その代わりに、コミットメントポリシーを段階的に移行できます。 - キーコミットメントを使用するアルゴリズムスイート
-
バージョン 1.7.xには新しい 2 つのアルゴリズムスイートが組み込まれて、キーコミットメントがサポートされます。一方は署名を含み、もう一方は署名を含みません。以前にサポートされたアルゴリズムスイートと同様に、これらの新しいアルゴリズムスイートには、 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.x AWS Encryption SDK for Python AWS Encryption SDK for JavaScript、および AWS 暗号化CLIは end-of-supportフェーズにあります。
任意のプログラミング言語でのこの AWS Encryption SDK バージョンのサポートとメンテナンスについては、GitHubリポジトリの SUPPORT_POLICY.rst
ファイルを参照してください。
- AWS KMS マスターキープロバイダー
-
バージョン 1.7.x で廃止された元の AWS KMS マスターキープロバイダーコンストラクタは、バージョン 2.0.x で削除されます。 AWS KMS マスターキープロバイダーは、Strict モードまたは Discovery モードで明示的に構築する必要があります。
- キーコミットメントによる暗号化テキストの暗号化と復号化
-
バージョン 2.0.x では、キーコミットメントを使用しているかどうかに関係なく、暗号化テキストの暗号化と復号化ができます。その動作は、コミットメントポリシー設定によって決まります。デフォルトでは、常にキーコミットメントで暗号化し、キーコミットメントで暗号化された暗号化テキストのみを復号します。コミットメントポリシーを変更しない限り、 AWS Encryption SDK では、バージョン 1.7.x を含む AWS Encryption SDKの旧バージョンで暗号化された暗号化テキストが復号化されません。
重要
デフォルトの場合、バージョン 2.0.x では、キーコミットメントなしで暗号化された暗号化テキストは復号化されません。キーコミットなしで暗号化された暗号化テキストをアプリケーションで処理する可能性がある場合は、コミットメントポリシーの値を
AllowDecrypt
で設定してください。バージョン 2.0.x の場合、コミットメントポリシー設定には次の 3 つの有効な値があります。
-
ForbidEncryptAllowDecrypt
— AWS Encryption SDK では、キーコミットメントで暗号化することはできません。キーコミットメントが使用されているかどうかにかかわらず、暗号化された暗号化テキストを復号化できます。 -
RequireEncryptAllowDecrypt
— AWS Encryption SDK では、キーコミットメントで暗号化する必要があります。キーコミットメントが使用されているかどうかにかかわらず、暗号化された暗号化テキストを復号化できます。 -
RequireEncryptRequireDecrypt
(デフォルト) — はキーコミットメントで暗号化 AWS Encryption SDK する必要があります。キーコミットメントによる暗号化テキストのみを復号化します。
の以前のバージョンから AWS Encryption SDK バージョン 2.0.x に移行する場合は、コミットメントポリシーを、アプリケーションが遭遇する可能性のある既存の暗号文をすべて復号できる値に設定します。この設定は時間の経過とともに調整することになる可能性があります。
-
バージョン 2.2.x
デジタル署名と暗号化データキーの制限のサポートを追加します。
注記
のバージョン 2.x.x AWS Encryption SDK for Python AWS Encryption SDK for JavaScript、および AWS 暗号化CLIは 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.x 以降のマルチリージョンキーCLIをサポートします。
のバージョン 2.x.x AWS Encryption SDK for Python AWS Encryption SDK for JavaScript、および AWS 暗号化CLIは end-of-supportフェーズにあります。
任意のプログラミング言語でのこの AWS Encryption SDK バージョンのサポートとメンテナンスについては、GitHubリポジトリの SUPPORT_POLICY.rst
ファイルを参照してください。