どのフィールドが暗号化および署名されますか? - AWS データベース暗号化 SDK

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

どのフィールドが暗号化および署名されますか?

クライアント側の暗号化ライブラリの名前が AWS Database Encryption SDK に変更されました。このデベロッパーガイドでは、引き続き DynamoDB Encryption Client に関する情報を提供します。

AWS Database Encryption SDK for DynamoDB は、Amazon DynamoDB アプリケーション用に特別に設計されたクライアント側の暗号化ライブラリです。Amazon DynamoDB は、項目のコレクションであるテーブルにデータを格納します。各項目は、属性の集合です。各属性には名前と値があります。 AWS Database Encryption SDK for DynamoDB は、属性の値を暗号化します。次に、属性に対する署名を計算します。暗号化される属性値、および署名に含めるか指定できます。

暗号化は、属性値の機密保持を保護します。署名は、署名されたすべての属性とその相互の関係を保全し、認証を提供します。これにより、属性の追加や削除、暗号化された値の別の値への置換など、項目全体への不正な変更を検出することができます。

暗号化された項目では、テーブル名、すべての属性名、暗号化していない属性値、プライマリキー (パーティションキーとソートキー) 属性の名前と値、属性タイプなど、一部のデータはプレーンテキストで残ります。これらのフィールドに機密データを保存しないでください。

AWS Database Encryption SDK for DynamoDB の仕組みの詳細については、「」を参照してくださいAWS Database Encryption SDK の仕組み

注記

AWS Database Encryption SDK for DynamoDB トピックの属性アクションに関するすべての言及は、暗号化アクション を参照しています。

暗号化の属性値

AWS Database Encryption SDK for DynamoDB は、指定した属性の値 (属性名またはタイプではありません) を暗号化します。どの属性値が暗号化されているかを確認するには、属性アクションを使用します。

たとえば、この項目には example および test 属性が含まれます。

'example': 'data', 'test': 'test-value', ...

example 属性を暗号化し、test 属性を暗号化しない場合、結果は次のようになります。暗号化された example 属性値は、文字列ではなくバイナリデータです。

'example': Binary(b"'b\x933\x9a+s\xf1\xd6a\xc5\xd5\x1aZ\xed\xd6\xce\xe9X\xf0T\xcb\x9fY\x9f\xf3\xc9C\x83\r\xbb\\"), 'test': 'test-value' ...

各項目のプライマリキー属性 (パーティションキーおよびソートキー) を使用して DynamoDB はテーブル内の項目を検索するため、それらの属性はプレーンテキストのままである必要があります。署名は必要ですが、暗号化の必要はありません。

AWS Database Encryption SDK for DynamoDB は、プライマリキー属性を識別し、その値が署名されているが暗号化されていないことを確認します。また、プライマリキーを特定してそれを暗号化しようとすると、クライアントは例外をスローします。

クライアントは、項目に追加する新しい属性 (aws_dbe_head) にマテリアルの説明を格納します。マテリアルの説明は、項目がどのように暗号化および署名されたかを説明するものです。クライアントは、この情報を使用して項目の検証と復号を行います。マテリアルの説明を格納するフィールドは暗号化されません。

項目の署名

指定された属性値を暗号化した後、 AWS Database Encryption SDK for DynamoDB は、マテリアルの説明、暗号化コンテキスト 、および属性アクション SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTENCRYPT_AND_SIGN、、SIGN_ONLYまたは とマークされた各フィールドの正規化にわたって、ハッシュベースのメッセージ認証コード (HMACs ) とデジタル署名を計算します。ECDSA 署名はデフォルトで有効になっていますが、必須ではありません。クライアントは、項目に追加する新しい属性 (aws_dbe_foot) に HMAC と署名を格納します。