AWS Encryption SDK のバージョン - AWS Encryption SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Encryption SDK のバージョン

AWS Encryption SDK の言語実装ではセマンティックバージョニングを使用し、各リリースの変更の規模を識別しやすくしています。1.x.x から 2.x.x のようなメジャーバージョン番号の変更は、コードの変更と計画的デプロイが必要になる可能性のある重大な変更を示します。新しいバージョンでの重大な変更は、すべてのユースケースに影響するわけではありません。リリースノートを確認して、影響を受けるかどうかを確認してください。x.1.x から x.2.x のようなマイナーバージョンの変更では、常に下位互換性がありますが、非推奨の要素が含まれている可能性があります。

可能な場合は、選択したプログラミング言語で AWS Encryption SDK の最新バージョンを使用してください。各バージョンの メンテナンスとサポートのポリシー は、プログラミング言語の実装によって異なります。ご使用のプログラミング言語でサポートされるバージョンの詳細については、SUPPORT_POLICY.rstGitHubリポジトリ内のファイルを参照してください

アップグレードに暗号化や復号化エラーを回避するための特別な設定を必要とする新機能が含まれる場合は、中間バージョンとその使用方法の詳細な説明を提供します。例えば、バージョン 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 が含まれます。

新しいセキュリティ機能は、AWS Encryption CLI バージョン 1.7.x および 2.0.x で最初にリリースされました。ただし、AWS Encryption CLI バージョン 1.7.x はバージョン 1.8.x に、AWS Encryption CLI 2.0.x は 2.1.x に置き換わります。詳細については、aws-encryption-sdk-cliのリポジトリにある関連するセキュリティアドバイザリを参照してください GitHub。

以下の表は、各プログラミング言語のサポート対象バージョン間の主な相違点をまとめたものです。AWS Encryption SDK

C

すべての変更の詳細な説明については、のリポジトリにある CHANGELOG.md を参照してください。aws-encryption-sdk-c GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
1.x 1.0 Initial release. Support 終了フェーズ
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.
2.x 2.0 Updates to the AWS Encryption SDK. For more information, see バージョン 2.0。 x. 一般提供 (GA)
2.2 Improvements to the message decryption process.
2.3 Adds support for AWS KMS multi-Region keys.

C#/.NET

すべての変更の詳細な説明については、のリポジトリにある CHANGELOG.md を参照してください。aws-encryption-sdk-net GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
3.x 3.0 Initial release.

一般提供 (GA)

.NET AWS Encryption SDK 用のバージョン 3.x は 2024 年 5 月 13 日にメンテナンスモードに入ります。

4.x 4.0 Adds support for the AWS KMS Hierarchical keyring, the required encryption context CMM, and asymmetric RSA AWS KMS keyrings. 一般提供 (GA)

CLI (コマンド・ライン・インタフェース)

すべての変更の詳細な説明については、AWS Encryption CLI のバージョンおよびのリポジトリにある Changelog.rst を参照してください。aws-encryption-sdk-cli GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
1.x 1.0 Initial release. Support 終了フェーズ
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.
2.x 2.0 Updates to the AWS Encryption SDK. For more information, see バージョン 2.0。 x. Support 終了フェーズ
2.1

--discoveryパラメータを削除し、discoveryパラメータの属性に置き換えます。--wrapping-keys

AWS暗号化 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. Support 終了フェーズ
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. 一般提供 (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

すべての変更の詳細な説明については、のリポジトリにある Changelog.rst を参照してください。aws-encryption-sdk-java GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
1.x 1.0 Initial release. Support 終了フェーズ
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.
2.x 2.0 Updates to the AWS Encryption SDK. For more information, see バージョン 2.0。 x.

一般提供 (GA)

のバージョン 2.x AWS Encryption SDK for Java は 2024 年にメンテナンスモードに移行します。

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

AWS Encryption SDK for Javaをマテリアルプロバイダーライブラリと統合します。

対称および非対称 RSA AWS KMS キーリング、AWS KMS階層型キーリング、RAW AES キーリング、Raw RSA キーリング、マルチキーリング、および必要な暗号化コンテキスト CMM のサポートを追加します。

一般提供 (GA)

JavaScript

すべての変更の詳細な説明については、のリポジトリにある CHANGELOG.md を参照してください。aws-encryption-sdk-javascript GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
1.x 1.0 Initial release. Support 終了フェーズ
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.
2.x 2.0 Updates to the AWS Encryption SDK. For more information, see バージョン 2.0。 x. Support 終了フェーズ
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.

メンテナンス

のバージョン 3.x Support 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. 一般提供 (GA)

Python

すべての変更の詳細な説明については、のリポジトリにある Changelog.rst を参照してください。aws-encryption-sdk-python GitHub

メジャーバージョン 詳細 SDK、メジャーバージョン、ライフサイクルフェーズ
1.x 1.0 Initial release. Support 終了フェーズ
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.
2.x 2.0 Updates to the AWS Encryption SDK. For more information, see バージョン 2.0。 x. Support 終了フェーズ
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. 一般提供 (GA)

バージョンの詳細

以下のリストでは、AWS Encryption SDK でサポートされているバージョンの主な相違点を示します。

1.7.x より前のバージョン

注記

すべて 1. xx AWS Encryption SDK end-of-support 個のバージョンがフェーズに入っています。できる限り早く、ご使用のプログラミング言語対応した AWS Encryption SDK の最新のバージョンにアップグレードしてください。1.7.x 以前の AWS Encryption SDK バージョンからアップグレードするには、まず 1.7.x にアップグレードする必要があります。詳細については、 AWS Encryption SDK の移行 を参照してください。

1.7 AWS Encryption SDK より前のバージョン。 x には、ガロア/カウンターモードの高度暗号化標準アルゴリズム (AES-GCM) による暗号化、HMAC extract-and-expand ベースの鍵導出関数 (HKDF)、署名、256 ビットの暗号化鍵など、重要なセキュリティ機能が搭載されています。ただし、これらのバージョンでは、キーコミットメントなど、推奨ベストプラクティスがサポートされません。

バージョン 1.7.x

注記

すべて 1. xx AWS Encryption SDK end-of-support 個のバージョンがフェーズに入っています

バージョン 1.7.x は、AWS Encryption SDK の旧バージョンのユーザーがバージョン 2.0.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 Encryption SDK for Python に新しいコンストラクタが導入され、Strict モードか Discovery モードで AWS KMS マスターキープロバイダーが明示的に作成されます。このバージョンでは、同様の変更が 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 アカウント とリージョンの 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 キーリングは、Strict モードでマスターキープロバイダーのように動作します。AWS KMS 探索キーリングは探索モードで明示的に作成されます。

キー ID を AWS KMS 復号化に渡す

バージョン 1.7.x 以降、暗号化されたデータキーを復号化する場合、AWS Encryption SDK では AWS KMS復号化オペレーションの呼び出しで AWS KMS key を常に指定します。AWS Encryption SDK は、暗号化された各データキーのメタデータから AWS KMS key のキー ID 値を取得します。この機能では、コードの変更は必要ありません。

対称暗号化 KMS キーで暗号化された暗号文を復号化するために、AWS KMS key のキー ID を指定する必要はありませんが、これが 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 つしかありませんが、このリリースで導入された新しい API を使用する場合は、この値を明示的に設定してください。値を明示的に設定すると、バージョン 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 で導入されたすべての新機能が含まれており、以下の追加・変更点もあります。

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

デジタル署名と暗号化データキーの制限のサポートを追加します。

デジタル署名

復号化時のデジタル署名の取り扱いを改善するため、AWS Encryption SDK には次の機能が含まれます。

  • 非ストリーミングモード — デジタル署名が存在する場合の検証を含め、すべての入力を処理した後にのみプレーンテキストを返します。  この機能を使用すると、デジタル署名を検証するまでプレーンテキストを使用できなくなります。この機能は、デジタル署名 (デフォルトのアルゴリズムスイート) で暗号化されたデータを復号化するときに使用します。例えば、AWS Encryption CLI は常にストリーミングモードでデータを処理するため、デジタル署名による暗号化テキストを復号化するときは - -buffer パラメータを使用します。

  • 署名なし専用復号モード — この機能では署名されていない暗号文のみを復号化します。復号化で暗号化テキスト内にデジタル署名が検出されると、オペレーションは失敗します。この機能を使用して、署名を検証する前に、署名付きメッセージのプレーンテキストを意図せずに処理しないようにします。

暗号化されたデータキーの制限

暗号化されたメッセージ内の暗号化されたデータキーの数を制限できます。この機能は、暗号化時に誤って構成されたマスターキープロバイダーまたはキーリングを検出したり、復号時に悪意のある暗号化テキストを特定したりするのに役立ちます。

信頼できない送信元からのメッセージを復号する場合は、暗号化されたデータキーを制限してください。不必要でコストがかかり、潜在的に網羅的な方法によって、キーインフラストラクチャを呼び出すことを防止できます。

バージョン 2.3.x

AWS KMS マルチリージョンキーがサポートされるようになりました。詳細については、 マルチリージョン AWS KMS keys の使用 を参照してください。

注記

AWS暗号化 CLI は、バージョン 3.0 以降のマルチリージョンキーをサポートします。 x

バージョン 2。 x。 AWS Encryption SDK for Python、の x AWS Encryption SDK for JavaScript、AWSおよび暗号化 CLI end-of-supportはフェーズにあります

AWS Encryption SDKお好みのプログラミング言語でのこのバージョンのサポートとメンテナンスについてはSUPPORT_POLICY.rstGitHubリポジトリ内のファイルを参照してください