翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Encryption SDK のバージョン
AWS Encryption SDK の言語実装ではセマンティックバージョニング
可能な場合は、選択したプログラミング言語で AWS Encryption SDK の最新バージョンを使用してください。-メンテナンス各バージョンは、プログラミング言語の実装によって異なります。使用しているプログラミング言語でサポートされているバージョンの詳細については、「」を参照してください。SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
アップグレードに、暗号化や復号化のエラーを避けるために特別な設定を必要とする新機能が含まれる場合は、中間バージョンとその使用方法の詳細な説明を提供します。バージョン 1.7 に更新。xそして1.8xの 1.7 より前のバージョンからのアップグレードに役立つ移行バージョンとして設計されています。xをバージョン 2.0 に更新。x以降 詳細については、「移行するAWS Encryption SDK」を参照してください。
使用しているプログラミング言語の各バージョンの変更の詳細については、各リポジトリの変更履歴を参照してください。
-
AWS Encryption SDK for C—changelog.md
-
C#/.NET —changelog.md
-
AWS Encryption CLI — AWS Encryption CLI のバージョン および CHANGELOG.rst
-
AWS Encryption SDK for Java—changelog.md
-
AWS Encryption SDK for JavaScript—changelog.md
-
AWS Encryption SDK for Python—changelog.rst
バージョン番号の 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 でサポートされているバージョンの主な相違点を示します。
トピック
1.7 より前のバージョン。x
すべて 1.x。xのバージョンAWS Encryption SDKにいるend-of-support段階。利用可能な最新バージョンへのアップグレードAWS Encryption SDKすぐにあなたのプログラミング言語に合わせて。からアップグレードするにはAWS Encryption SDK1.7 より前のバージョン。xでは、まず 1.7 にアップグレードする必要があります。x。詳細については、「移行するAWS Encryption SDK」を参照してください。
のバージョンAWS Encryption SDK1.7 より前の。xHMAC ベースのGalois/Counter Mode の Advanced Encryption Standard アルゴリズム (AES-GCM)、など、重要なセキュリティ機能を提供する extract-and-expand キー取得関数 (HKDF)、署名、および 256 ビットの暗号化キー。ただし、これらのバージョンでは、キーコミットメントなど、推奨ベストプラクティスがサポートされません。
バージョン 1.7. 1.7.x
すべて 1.x。xのバージョンAWS Encryption SDKにいるend-of-support段階。
バージョン 1.7. 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 値を取得します。この機能では、コードの変更は必要ありません。
のキー ID の指定AWS KMS key対称暗号化 KMS キーで暗号化された暗号化テキストを復号化する必要はありませんが、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 あなたのためのリポジトリプログラミング言語。
バージョン 1.8.x
すべて 1.x。xのバージョンAWS Encryption SDKにいるend-of-support段階。
AWS Encryption CLI の場合、バージョン 1.8.xは、1.7.x より前のバージョンとバージョン 2.1.x 以降の間の移行バージョンです。AWS Encryption CLI の場合、バージョン 1.8.x には完全な下位互換性があり、重大な変更の導入や AWS Encryption SDK の動作の変更はありません。上位互換性もあり、バージョン 2.0.x と互換性があるようにコードを更新できます。これには新機能が含まれますが、完全に有効になるわけではありません。準備が整うまで、すべての新機能をすぐには採用できないようにする設定値が必要です。
AWS Encryption CLI のバージョン 1.8.x の詳細については、バージョン 1.7. 1.7.x を参照してください。
バージョン 1.9.x
すべて 1.x。xのバージョンAWS Encryption SDKにいるend-of-support段階。
バージョン 1.9.xは、バージョン 2.2 にあるデジタル署名によるセキュリティの改善をサポートします。x。現在アプリケーションでデジタル署名を使用しており、AWS Encryption SDKバージョン 2.0 より前のバージョン。xでは、バージョン 1.9 にアップグレードする必要があります。xその改善を活かすため。
バージョン 1.9.x では、信頼できないソースから復号するメッセージ内の暗号化されたデータキーの数の制限もサポートされます。このベストプラクティス機能を使用すると、メッセージを暗号化するときに誤って構成されたマスターキープロバイダーまたはキーリングを検出し、メッセージの復号化時には悪意のある暗号テキストを検出できます。
バージョン 1.7 に更新。x、バージョン 1.9.x1.7 より前のバージョンとの下位互換性を確保する。xバージョン 2.0 と前方互換性を確保する。x以降 バージョン 2.0 にある新機能が含まれています。x以降ですが、安全なデフォルトを実装しています。バージョン 1.9 を使っている場合。xでは、バージョン 2.2 に安全にアップグレードできます。x。コミットメントポリシー設定を移行する方法については、「」を参照してください。コミットメントポリシーの設定。
バージョン 2.0.x
バージョン 2.0.x では、指定されたラッピングキーとキーコミットメントなど、AWS Encryption SDK で提供される新しいセキュリティ機能がサポートされます。バージョン 2.0.x では、これらの機能をサポートするため、前バージョンの AWS Encryption SDK が大きく変更されています。バージョン 1.7.x をデプロイすれば、これらの変更に備えることができます。バージョン 2.0.x には、バージョン 1.7.x で導入されたすべての新機能が含まれており、以下の追加・変更点もあります。
バージョン 2x。xのAWS Encryption SDK for PythonとAWS暗号化 CLI はend-of-support段階。
詳細情報の内容サポートとメンテナンスこれのAWS Encryption SDKお好みのプログラミング言語のバージョンについては、SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
- 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.1. 2.1.x
バージョン 2x。xのAWS Encryption SDK for PythonとAWS暗号化 CLI はend-of-support段階。
詳細情報の内容サポートとメンテナンスこれのAWS Encryption SDKお好みのプログラミング言語のバージョンについては、SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
AWS Encryption CLI の場合、バージョン 2.1.x は、指定されたラッピングキーとキーコミットメントを含むバージョンです。その他のプログラミング言語では、バージョン 2.0.x と同等です。
AWS Encryption CLI のバージョン 2.1.x の詳細については、バージョン 2.0.x を参照してください。
バージョン 2.2.x
デジタル署名のサポートと暗号化されたデータキーの制限を追加します。
バージョン 2.x。xのAWS Encryption SDK for PythonとAWS暗号化 CLI はend-of-support段階。
詳細情報の内容サポートとメンテナンスこれのAWS Encryption SDKお好みのプログラミング言語のバージョンについては、SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
- デジタル署名
復号化時のデジタル署名の取り扱いを改善するため、AWS Encryption SDK には次の機能が含まれます。
-
非ストリーミングモード— デジタル署名が存在する場合の検証を含め、すべての入力を処理した後にのみプレーンテキストを返します。この機能を使用すると、デジタル署名を検証するまでプレーンテキストを使用できなくなります。この機能は、デジタル署名 (デフォルトのアルゴリズムスイート) で暗号化されたデータを復号化するときに使用します。例えば、AWS Encryption CLI は常にストリーミングモードでデータを処理するため、デジタル署名による暗号化テキストを復号化するときは
--buffer
パラメータを使用します。 -
署名なしのみの復号化モード— この機能では署名なし暗号化テキストのみをのみにのみをのみをのみをします。復号化で暗号化テキスト内にデジタル署名が検出されると、オペレーションは失敗します。この機能を使用して、署名を検証する前に、署名付きメッセージのプレーンテキストを意図せずに処理しないようにします。
-
- 暗号化されたデータキーの制限
-
暗号化されたメッセージ内の暗号化されたデータキーの数を制限できます。この機能は、暗号化時に誤って構成されたマスターキープロバイダーまたはキーリングを検出したり、復号時に悪意のある暗号化テキストを特定したりするのに役立ちます。
信頼できない送信元からのメッセージを復号する場合は、暗号化されたデータキーを制限してください。不必要でコストがかかり、潜在的に網羅的な方法によって、キーインフラストラクチャを呼び出すことを防止できます。
バージョン 2.3. 2.3.x
AWS KMS マルチリージョンキーがサポートされるようになりました。詳細については、「マルチリージョン AWS KMS keys を使用する」を参照してください。
AWS Encryption CLI では、バージョン 3.0.x からマルチリージョンキーがサポートされます。
バージョン 2.x。xのAWS Encryption SDK for PythonとAWS暗号化 CLI はend-of-support段階。
詳細情報の内容サポートとメンテナンスこれのAWS Encryption SDKお好みのプログラミング言語のバージョンについては、SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
バージョン 2.4. 2.4.x
バージョン 2.x。xのAWS Encryption SDK for PythonとAWS暗号化 CLI はend-of-support段階。
-AWS Encryption SDK for Javaバージョン 2.4.4.4.4.4.4.4.4.4.4.4AWS SDK for Java 2.x。バージョン 2.4.4.4.4.4.4.4.4.4.4.4.AWS Encryption SDK for JavaサポートするAWS SDK for Javaバージョン 1.xとバージョン 2 とバージョン 2.x。の使用AWS SDK for Javaは省略可能です。-AWS Encryption SDK for Javaにはが必要です。AWS SDK for Java使用している場合のみAWS Key Management Service(AWS KMS) をマスターキープロバイダーとして使用します。
詳細については、「前提条件」を参照してください。
バージョン 3.0.x
バージョン 3.x。xのAWSEncryption は存在するend-of-support段階。
詳細情報の内容サポートとメンテナンスこれのAWS Encryption SDKお好みのプログラミング言語のバージョンについては、SUPPORT_POLICY.rst
その中のファイルGitHub倉庫。
AWS Encryption CLI バージョン 3.0.x から、AWS KMS マルチリージョンキーがサポートされます。詳細については、AWS Key Management Service デベロッパーガイドを参照してください。(その他の AWS Encryption SDK プログラミング言語では、マルチリージョンキーがバージョン 2.3.x からサポートされます。)
が導入されたAWS Encryption SDK.NET 用。