のバージョン 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 選択したプログラミング言語で の最新バージョンを使用してください。各バージョンの メンテナンスとサポートのポリシー は、プログラミング言語の実装によって異なります。任意のプログラミング言語でサポートされているバージョンの詳細については、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 が含まれます。

新しいセキュリティ機能は、もともと AWS Encryption 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リポジトリにある関連するセキュリティアドバイザリを参照してください GitHub。

次の表は、各プログラミング言語の でサポートされているバージョンの主な違いの概要 AWS Encryption SDK を示しています。

C

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

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
1.x 1.0 初回リリース。 サポート終了フェーズ
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リポジトリの CHANGELOG.md を参照してください GitHub。

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
3.x 3.0 初回リリース。

一般提供 (GA)

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

4.x 4.0 AWS KMS 階層キーリング、必要な暗号化コンテキスト CMM、非対称RSA AWS KMS キーリングのサポートが追加されました。 一般提供 (GA)

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

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

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
1.x 1.0 初回リリース。 サポート終了フェーズ
1.7 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレードする AWS Encryption SDK のに役立つ の更新。詳細については、「 バージョン 1.7.x」を参照してください。
2.x 2.0 の更新 AWS Encryption SDK。詳細については、「 バージョン 2.0.x」を参照してください。 サポート終了フェーズ
2.1

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

AWS 暗号化のバージョン 2.1.0 CLIは、他のプログラミング言語のバージョン 2.0 と同等です。

2.2 メッセージ復号プロセスの改善。
3.x 3.0 AWS KMS マルチリージョンキーのサポートを追加しました。 サポート終了フェーズ
4.x 4.0 AWS Encryption は Python 2 または Python 3.4 をサポートしCLIなくなりました。 AWS Encryption のメジャーバージョン 4.x ではCLI、Python 3.5 以降のみがサポートされています。 一般提供 (GA)
4.1 AWS Encryption は Python 3.5 をサポートしCLIなくなりました。 AWS Encryption のバージョン 4.1.x 以降ではCLI、Python 3.6 以降のみがサポートされています。
4.2 AWS Encryption は Python 3.6 をサポートしCLIなくなりました。 AWS Encryption のバージョン 4.2.x 以降ではCLI、Python 3.7 以降のみがサポートされています。

Java

すべての変更の詳細な説明については、 のリポジトリのCHANGELOG「.rstaws-encryption-sdk-java」を参照してください GitHub。

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
1.x 1.0 初回リリース。 サポート終了フェーズ
1.3 暗号化マテリアルマネージャーとデータキーキャッシュのサポートが追加されました。決定論的 IV 生成に移行しました。
1.6.1

AwsCrypto.encryptString() と を廃止AwsCrypto.decryptString()し、 AwsCrypto.encryptData()と に置き換えますAwsCrypto.decryptData()

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 と統合します。

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

一般提供 (GA)

JavaScript

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

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
1.x 1.0 初回リリース。 サポート終了フェーズ
1.7 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレードする AWS Encryption SDK のに役立つ の更新。詳細については、「 バージョン 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 のサポート AWS Encryption SDK for JavaScript は、2024 年 1 月 17 日に終了します。

4.x 4.0 AWS KMS キーリングkms-clientを使用するには、 のバージョン 3 AWS Encryption SDK for JavaScriptが必要です。 一般提供 (GA)

Python

すべての変更の詳細な説明については、 のリポジトリのCHANGELOG「.rstaws-encryption-sdk-python」を参照してください GitHub。

メジャーバージョン 詳細 SDK メジャーバージョンのライフサイクルフェーズ
1.x 1.0 初回リリース。 サポート終了フェーズ
1.3 暗号化マテリアルマネージャーとデータキーキャッシュのサポートが追加されました。決定論的 IV 生成に移行しました。
1.7 以前のバージョンのユーザーがバージョン 2.0.x 以降にアップグレードする AWS Encryption SDK のに役立つ の更新。詳細については、「 バージョン 1.7.x」を参照してください。
2.x 2.0 の更新 AWS Encryption SDK。詳細については、「 バージョン 2.0.x」を参照してください。 サポート終了フェーズ
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)

バージョンの詳細

以下のリストでは、 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 モードで明示的に作成されます。

キー ID を Decrypt AWS KMS に渡す

バージョン 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 Encryption は、バージョン 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 ファイルを参照してください。