

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

# DynamoDB 暗号化クライアントの仕組み
<a name="DDBEC-legacy-how-it-works"></a>

**注記**  
クライアント側の暗号化ライブラリの名前が [AWS Database Encryption SDK](DDBEC-rename.md) に変更されました。次のトピックには、DynamoDB Encryption Client for Java のバージョン 1.x～2.x および DynamoDB Encryption Client for Python のバージョン 1.x～3.x に関する情報が記載されています。詳細については、「[AWS Database Encryption SDK for DynamoDB バージョンのサポート](legacy-dynamodb-encryption-client.md#legacy-support)」を参照してください。

DynamoDB 暗号化クライアントは、DynamoDB に保存されているデータを保護するように特別に設計されています。ライブラリには、拡張が可能でまた変更なしで使用できる安全な実装が含まれています。また、ほとんどの要素は抽象要素で表されるため、互換性のあるカスタムコンポーネントを作成して使用できます。

**テーブル項目の暗号化と署名**

DynamoDB 暗号化クライアントの中核には、テーブル項目を暗号化、署名、検証、復号する*項目エンクリプタ*があります。テーブル項目に関する情報と、暗号化して署名する項目に関する指示が取り込まれます。選択して設定した[暗号化マテリアルプロバイダー](DDBEC-legacy-concepts.md#concept-material-provider)から、暗号化マテリアルとその使用方法に関する指示が取得されます。

次の図は、このプロセスの高レベルのビューを示しています。

![\[DynamoDB 暗号化クライアントでの項目の暗号化と署名\]](http://docs.aws.amazon.com/ja_jp/database-encryption-sdk/latest/devguide/images/arch-encrypt.png)


テーブル項目を暗号化して署名するには、DynamoDB 暗号化クライアントに次のものが必要です。
+ **テーブルについての情報。**お客様が提供する [DynamoDB 暗号化コンテキスト](concepts.md#encryption-context)からテーブルに関する情報を取得します。一部のヘルパーは、DynamoDB から必要な情報を取得し、DynamoDB 暗号化コンテキストを作成します。
**注記**  
*DynamoDB 暗号化クライアントの DynamoDB 暗号化コンテキスト*は、 AWS Key Management Service (AWS KMS) および の*暗号化コンテキスト*とは関係ありません AWS Encryption SDK。 DynamoDB 
+ **暗号化して署名する属性。**この情報は、指定した[属性アクション](DDBEC-legacy-concepts.md#legacy-attribute-actions)から取得されます。
+ **暗号化および署名キーを含む、暗号化マテリアル。**これらは、お客様が選択して設定する[暗号化マテリアルプロバイダー](DDBEC-legacy-concepts.md#concept-material-provider) (CMP) から取得されます。
+ **項目の暗号化と署名の手順**。CMP は、暗号化および署名アルゴリズムを含む、暗号化マテリアルを使用するための指示を[実際のマテリアル説明](DDBEC-legacy-concepts.md#legacy-material-description)に追加します。

[項目エンクリプタ](DDBEC-legacy-concepts.md#item-encryptor)は、これらの要素のすべてを使用して項目を暗号化して署名します。項目エンクリプタは、暗号化と署名の指示 (実際のマテリアル説明) を含む[マテリアル説明属性](DDBEC-legacy-concepts.md#legacy-material-description)と、その署名を含む属性を項目に追加します。項目エンクリプタと直接やり取りすることができます。また、項目エンクリプタとやり取りするヘルパー機能を使用して、安全なデフォルトの動作を実装することもできます。

結果は、暗号化された署名済みデータを含む DynamoDB 項目です。

**テーブル項目の検証と復号**

これらのコンポーネントは、次の図に示すように、項目を検証および復号するために一緒に機能します。

![\[DynamoDB 暗号化クライアントでの項目の検証と復号\]](http://docs.aws.amazon.com/ja_jp/database-encryption-sdk/latest/devguide/images/arch-decrypt.png)


項目を検証し、復号するためには、DynamoDB 暗号化クライアントには、次のように、同じコンポーネント、同じ設定のコンポーネント、または項目を復号するために特に設計されたコンポーネントが必要です。
+ [DynamoDB 暗号化コンテキスト](concepts.md#encryption-context)からの**テーブルに関する情報**。
+ **検証および復号する属性。**これらは[属性アクション](DDBEC-legacy-concepts.md#legacy-attribute-actions)から取得されます。
+ **選択し、設定した**[暗号化マテリアルプロバイダー](DDBEC-legacy-concepts.md#concept-material-provider) (CMP) からの検証キーおよび復号キーを含む復号マテリアル。

  暗号化された項目には、暗号化に使用された CMP のレコードは含まれません。同じ CMP、同じ設定の CMP、または項目を復号するように設計された CMP 指定する必要があります。
+ 暗号化アルゴリズムと署名アルゴリズムを含む、**項目の暗号化と項目の署名に関する情報**。クライアントは、項目の[マテリアル説明属性](DDBEC-legacy-concepts.md#legacy-material-description)からこれらを取得します。

[項目エンクリプタ](DDBEC-legacy-concepts.md#item-encryptor)は、これらの要素のすべてを使用して項目の検証と復号を行います。また、マテリアル記述と署名属性も削除されます。結果はプレーンテキスト DynamoDB 項目です。