翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS KMS ECDH キーリング
クライアント側の暗号化ライブラリの名前が AWS Database Encryption に変更されましたSDK。このデベロッパーガイドでは、引き続き DynamoDB Encryption Client に関する情報を提供します。 |
重要
AWS KMS ECDH キーリングは、マテリアルプロバイダーライブラリのバージョン 1.5.0 でのみ使用できます。
AWS KMS ECDH キーリングは、非対称キーアグリーメントAWS KMS keysを使用して、2 者間で共有対称ラッピングキーを取得します。まず、キーリングは楕円曲線 Diffie-Hellman (ECDH) キー契約アルゴリズムを使用して、送信者のKMSキーペアのプライベートキーと受信者のパブリックキーから共有シークレットを取得します。次に、キーリングは共有シークレットを使用して、データ暗号化キーを保護する共有ラッピングキーを取得します。 AWS Database Encryption が (KDF_CTR_HMAC_SHA384
) SDKを使用して共有ラッピングキーを取得するキー取得関数は、NISTキー取得の推奨事項に準拠しています
キー取得関数は、64 バイトのキーマテリアルを返します。両者が正しいキーマテリアルを使用するように、 AWS Database Encryption SDKは最初の 32 バイトをコミットメントキーとして使用し、最後の 32 バイトを共有ラッピングキーとして使用します。復号時に、キーリングが暗号化されたレコードのマテリアルの説明フィールドに保存されているのと同じコミットメントキーと共有ラッピングキーを再現できない場合、オペレーションは失敗します。例えば、Alice のプライベートキーと Bob のパブリックキーで設定されたキーリングを使用してレコードを暗号化する場合、Bob のプライベートキーと Alice のパブリックキーで設定されたキーリングは、同じコミットメントキーと共有ラッピングキーを再現し、レコードを復号化できます。Bob のパブリックキーがKMSキーペアからでない場合、Bob は Raw ECDHキーリングを作成してレコードを復号できます。
AWS KMS ECDH キーリングは、AES- を使用して対称キーでレコードを暗号化しますGCM。次に、データキーは、 AES- を使用して派生した共有ラッピングキーでエンベロープ暗号化されますGCM。各 AWS KMS ECDHキーリングには共有ラッピングキーを 1 つだけ含めることができますが、マルチ AWS KMS ECDHキーリング には、単独で、または他のキーリングとともに複数のキーリングを含めることができます。
AWS KMS ECDH キーリングに必要なアクセス許可
AWS Database Encryption SDK には AWS アカウントは必要なく、どの AWS サービスにも依存しません。ただし、 キーリングを使用するには AWS KMS ECDH、 AWS アカウントと、キーリング AWS KMS keys の に対する以下の最小限のアクセス許可が必要です。アクセス許可は、使用するキーアグリーメントスキーマによって異なります。
-
KmsPrivateKeyToStaticPublicKey
キーアグリーメントスキーマを使用してレコードを暗号化および復号するには、送信者の非対称KMSキーペアに kms:GetPublicKey および kms:DeriveSharedSecret が必要です。 キーリングをインスタンス化するときに送信者の DERエンコードされたパブリックキーを直接指定する場合、必要なのは送信者の非対称KMSキーペアに対する kms:DeriveSharedSecret アクセス許可のみです。 -
KmsPublicKeyDiscovery
キーアグリーメントスキーマを使用してレコードを復号するには、指定された非対称KMSキーペアに対する kms:DeriveSharedSecret および kms:GetPublicKey アクセス許可が必要です。
AWS KMS ECDH キーリングの作成
データを暗号化および復号する キーリングを作成するには AWS KMS ECDH、KmsPrivateKeyToStaticPublicKey
キーアグリーメントスキーマを使用する必要があります。キーアグリーメントスキーマを使用して KmsPrivateKeyToStaticPublicKey
キーリングを初期化 AWS KMS ECDHするには、次の値を指定します。
-
送信者の AWS KMS key ID
KeyUsage
値が の非対称 NIST- 推奨楕円曲線 (ECC)KMS キーペアを識別する必要がありますKEY_AGREEMENT
。送信者のプライベートキーは、共有シークレットを取得するために使用されます。 -
(オプション) 送信者のパブリックキー
5280 で定義されているように、
SubjectPublicKeyInfo
(SPKI) DERとも呼ばれる エンコードされた X.509 パブリックキーである必要があります。 RFCオペレーションは AWS KMS GetPublicKey、非対称キーペアのパブリックKMSキーを、必要な DERエンコード形式で返します。
キーリングが行う AWS KMS 呼び出しの数を減らすには、送信者のパブリックキーを直接指定できます。送信者のパブリックキーに値が指定されていない場合、キーリングは AWS KMS を呼び出して送信者のパブリックキーを取得します。
-
受信者のパブリックキー
5280 で定義されているように、受信者の DERでエンコードされた X.509 パブリックキーを指定する必要があります。これは
SubjectPublicKeyInfo
(SPKI) とも呼ばれます。 RFCオペレーションは AWS KMS GetPublicKey、非対称キーペアのパブリックKMSキーを、必要な DERエンコード形式で返します。
-
曲線仕様
指定されたキーペアの楕円曲線仕様を識別します。送信者と受信者の両方のキーペアは、同じ曲線仕様である必要があります。
有効な値:
ECC_NIST_P256
、ECC_NIS_P384
、ECC_NIST_P512
-
(オプション) 許可トークンのリスト
許可 を使用してキーリング内のKMS AWS KMS ECDHキーへのアクセスを制御する場合は、キーリングを初期化するときに必要なすべての許可トークンを提供する必要があります。
検出キーリングの作成 AWS KMS ECDH
復号するときは、 AWS Database Encryption がSDK使用できるキーを指定することがベストプラクティスです。このベストプラクティスに従うには、キーアグリーメントスキーマで KmsPrivateKeyToStaticPublicKey
キーリングを使用します AWS KMS ECDH。ただし、検出キーリング、 AWS KMS ECDHつまり、 AWS KMS ECDH指定されたキーペアのパブリックキーが、暗号化されたレコードのマテリアル説明フィールドに保存されている受信者のパブリックキーと一致するレコードを復号できる KMS キーリングを作成することもできます。
重要
KmsPublicKeyDiscovery
キーアグリーメントスキーマを使用してレコードを復号するときは、所有者に関係なく、すべてのパブリックキーを受け入れます。
キーアグリーメントスキーマを使用して KmsPublicKeyDiscovery
キーリングを初期化 AWS KMS ECDHするには、次の値を指定します。
-
受信者の AWS KMS key ID
KeyUsage
値が の非対称 NIST- 推奨楕円曲線 (ECC)KMS キーペアを識別する必要がありますKEY_AGREEMENT
。 -
曲線仕様
受信者のKMSキーペアの楕円曲線仕様を識別します。
有効な値:
ECC_NIST_P256
、ECC_NIS_P384
、ECC_NIST_P512
-
(オプション) 許可トークンのリスト
権限 を使用してキーリング内のKMS AWS KMS ECDHキーへのアクセスを制御する場合は、キーリングを初期化するときに必要なすべての付与トークンを提供する必要があります。