クライアント側とサーバー側の暗号化 - AWS データベース暗号化 SDK

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

クライアント側とサーバー側の暗号化

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

Database AWS Encryption SDK for DynamoDB は、クライアント側の暗号化 をサポートしています。この暗号化では、テーブルデータをデータベースに送信する前に暗号化します。ただし、DynamoDB では、ディスクに保管されているテーブルを透過的に暗号化するサーバー側の保管時の暗号化機能を提供しており、ユーザーがテーブルにアクセスすると復号します。

選択するツールは、データの重要度と、アプリケーションのセキュリティ要件に応じて異なります。Database Encryption SDK for AWS DynamoDB と保管時の暗号化の両方を使用できます。暗号化されて署名された項目を DynamoDB に送信しても、保護されている項目は DynamoDB によって認識されません。バイナリ属性値を含む従来のテーブル項目を検出します。

サーバー側の保管時の暗号化

DynamoDB では、保管時の暗号化がサポートされています。これは、テーブルがディスクに保持されるときに DynamoDB がテーブルを透過的に暗号化し、ユーザーがテーブルデータにアクセスするときにテーブルを復号するサーバー側の暗号化機能です。

を使用して AWS SDK DynamoDB を操作する場合、デフォルトでは、データは HTTPS接続を介して転送中に暗号化され、DynamoDB エンドポイントで復号され、DynamoDB に保存される前に再暗号化されます。

  • デフォルトでの暗号化。DynamoDB は、書き込まれる際に、すべてのテーブルを透過的に暗号化および復号します。保管時の暗号化を有効または無効にするオプションはありません。

  • DynamoDB は暗号化キーを作成および管理します。各テーブルの一意のキーは、AWS KMS key で保護されるため、AWS Key Management Service (AWS KMS) が未暗号化のままになることはありません。デフォルトでは、DynamoDB は DynamoDB サービス アカウントの AWS 所有のキー を使用しますが、一部またはすべてのテーブルを保護するために、自分のアカウントの AWS マネージドキー またはカスタマーマネージドキーを選択することもできます。

  • テーブルデータはすべて、ディスク上で暗号化されます。暗号化されたテーブルがディスクに保存されると、DynamoDB は、プライマリキーおよびローカルとグローバルのセカンダリインデックスなど、すべてのテーブルデータを暗号化します。テーブルにソートキーが存在する場合、範囲の境界線を示すソートキーの一部が、プレーンテキスト形式でテーブルメタデータに保存されます。

  • テーブルに関連するオブジェクトも暗号化されます。保管時の暗号化は、永続的なメディアに書き込まれるたびに、DynamoDBストリームグローバルテーブルバックアップを保護します。

  • アクセスすると、項目は復号されます。テーブルがアクセスされるとき、DynamoDB は、ターゲット項目を含むテーブル部分を復号し、プレーンテキスト形式で項目を返します。

AWS DynamoDB SDKのデータベース暗号化

クライアント側の暗号化は、転送中および保管中のデータをソースから DynamoDB のストレージに end-to-end 保護します。プレーンテキストのデータは、 を含むサードパーティーに公開されることはありません AWS。Database Encryption SDK for DynamoDB AWS を新しい DynamoDB テーブルで使用するか、既存の Amazon DynamoDB テーブルを DynamoDB 用の Java クライアント側の暗号化ライブラリのバージョン 3.x に移行できます。

  • 転送時と保管時のデータは保護されます。を含むサードパーティーに公開されることはありません AWS。

  • テーブル項目に署名できます。Database AWS Encryption SDK for DynamoDB に、プライマリキー属性を含むテーブル項目の全部または一部の署名を計算するように指示できます。この署名により、属性の追加や削除、属性値のスワップなど、項目全体への不正な変更を検出することができます。

  • キーリングを選択することで、データを保護する方法を決定します。キーリングは、データキー、そして最終的にはデータを保護するラッピングキーを決定します。タスクに実用的で、最も安全なラッピングキーを使用してください。

  • Database AWS Encryption SDK for DynamoDB はテーブル全体を暗号化しません。項目内でどの属性を暗号化するかを選択します。Database AWS Encryption SDK for DynamoDB は項目全体を暗号化しません。属性名、プライマリキー (パーティションキーおよびソートキー) 属性の名前または値は暗号化されません。

AWS Encryption SDK

DynamoDB に保存しているデータを暗号化する場合は、DynamoDB SDKの AWS データベース暗号化 をお勧めします。

AWS Encryption SDK は、クライアント側暗号化ライブラリで、汎用データの暗号化および復号に役立ちます。任意のタイプのデータを保護することはできますが、データベースレコードなどの構造化データは操作できません。DynamoDB SDKの AWS Database Encryption とは異なり、 は項目レベルの整合性チェックを提供 AWS Encryption SDK できず、属性を認識したり、プライマリキーの暗号化を防ぐロジックもありません。

を使用してテーブルの要素を AWS Encryption SDK 暗号化する場合は、DynamoDB SDKの AWS Database Encryption と互換性がないことに注意してください。1 つのライブラリで暗号化し、もう 1 つのライブラリを使用して復号することはできません。