AWS Database Encryption SDK とは - AWS データベース暗号化 SDK

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

AWS Database Encryption SDK とは

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

AWS Database Encryption SDK は、データベース設計にクライアント側の暗号化を含めることができる一連のソフトウェアライブラリです。 AWS Database Encryption SDK は、レコードレベルの暗号化ソリューションを提供します。どのフィールドを暗号化し、データの真正性を保証する署名にどのフィールドを含めるかを指定します。伝送中および保管時の機密データを暗号化することで、 AWSなどのサードパーティーがお客様のプレーンテキストデータを使用することはできません。 AWS Database Encryption SDK は、Apache 2.0 ライセンスに基づいて、無償で提供されています。

このデベロッパーガイドでは、 AWS Database Encryption SDK の概念的な概要を説明します。これには、アーキテクチャの概要データを保護する方法の詳細、サーバー側の暗号化との違い、使用開始に役立つアプリケーションの重要なコンポーネントの選択に関するガイダンスが含まれます。

AWS Database Encryption SDK は、属性レベルの暗号化で Amazon DynamoDB をサポートします。 DynamoDB 用の Java クライアント側の暗号化ライブラリのバージョン 3.x は、DynamoDB Encryption Client for Java を大幅に書き直したものです。これには、新しい構造化データ形式、マルチテナンシーのサポートの改善、検索可能な暗号化、シームレスなスキーマ変更のサポートなど、多くの更新が含まれています。

AWS Database Encryption SDK には次の利点があります。

データベースアプリケーション向けに特別に設計

AWS Database Encryption SDK を使用するために、暗号化のエキスパートである必要はありません。この実装には、既存のアプリケーションで動作するように設計されたヘルパーメソッドが含まれます。

必要なコンポーネントを作成して設定すると、暗号化クライアントは、データベースへの追加時にレコードを透過的に暗号化して署名し、取得時に検証および復号します。

セキュアな暗号化と署名を含む

AWS Database Encryption SDK には、一意のデータ暗号化キーを使用して各レコードのフィールド値を暗号化し、レコードに署名して、フィールドの追加や削除、暗号化された値のスワップなどの不正な変更から保護する安全な実装が含まれています。

ソースの暗号化マテリアルを使用する

AWS Database Encryption SDK は、キーリングを使用して、レコードを保護する一意のデータ暗号化キーを生成、暗号化、復号します。キーリングは、そのデータキーを暗号化するラッピングキーを決定します。

AWS Key Management Service (AWS KMS) や AWS CloudHSM などの暗号化サービスを含む、任意のソースからのラッピングキーを使用できます。 AWS Database Encryption SDK には、 AWS アカウント や のサービスは必要ありません AWS 。

暗号マテリアルのキャッシュのサポート

AWS KMS 階層キーリングは、Amazon DynamoDB テーブルに保持されている AWS KMS 保護されたブランチキーを使用して AWS KMS 呼び出しの数を減らし、暗号化および復号オペレーションで使用されるブランチキーマテリアルをローカルにキャッシュする暗号化マテリアルキャッシュソリューションです。これにより、レコードを暗号化または復号する AWS KMS たびに を呼び出すことなく、対称暗号化 KMS キーで暗号化マテリアルを保護できます。 AWS KMS 階層キーリングは、 への呼び出しを最小限に抑える必要があるアプリケーションに適しています AWS KMS。

検索可能な暗号化

データベース全体を復号せずに、暗号化されたレコードを検索できるデータベースを設計できます。脅威モデルとクエリ要件に応じて、検索可能な暗号化を使用して、暗号化されたデータベースに対して完全一致検索やよりカスタマイズされた複雑なクエリを実行できます。

マルチテナンシーデータベーススキーマのサポート

AWS Database Encryption SDK を使用すると、各テナントを個別の暗号化マテリアルで分離することで、共有スキーマを使用してデータベースに保存されているデータを保護できます。データベース内で暗号化オペレーションを実行するユーザーが複数いる場合は、いずれかの AWS KMS キーリングを使用して、暗号化オペレーションで使用する個別のキーを各ユーザーに提供します。詳細については、「マルチテナンシーデータベースの使用」を参照してください。

シームレスなスキーマ更新のサポート

AWS Database Encryption SDK を設定するときは、暗号化および署名するフィールド、署名する (暗号化しない) フィールド、無視するフィールドをクライアントに伝える暗号化アクションを指定します。 AWS Database Encryption SDK を使用してレコードを保護した後でも、データモデルを変更できます。暗号化されたフィールドの追加や削除などの暗号化アクションを単一のデプロイで更新できます。

オープンソースリポジトリで開発

AWS Database Encryption SDK は、 のオープンソースリポジトリで開発されています GitHub。これらのリポジトリを使用して、コードを表示したり、問題を読んで送信したりできるほか、実装に固有の情報を検索することもできます。

AWS Database Encryption SDK for DynamoDB
  • aws-database-encryption-sdk-dynamodb リポジトリは、Java および .NET の AWS Database Encryption SDK for DynamoDB のバージョン 3.x 以降 GitHub をサポートしています。

    AWS Database Encryption SDK for DynamoDB のバージョン 3.xDafny の製品です。Dafny は、仕様、実装するコード、およびテストする証明を記述する検証対応言語です。その結果、機能の正確性を保証するフレームワークで AWS Database Encryption SDK for DynamoDB の機能を実装するライブラリが作成されます。

サポートとメンテナンス

AWS Database Encryption SDK は、バージョニングフェーズやライフサイクルフェーズを含め、 AWS SDK とツールが使用するのと同じメンテナンスポリシーを使用します。ベストプラクティスとして、データベースの実装には AWS Database Encryption SDK の利用可能な最新バージョンを使用し、新しいバージョンがリリースされたらアップグレードすることをお勧めします。

詳細については、AWS SDKs とツールのリファレンスガイド」の「 SDK とツールのメンテナンスポリシー AWS SDKs 」を参照してください。

フィードバックを送る

当社では、お客様からのフィードバックをお待ちしております。質問、コメント、ご報告いただく問題がある場合は、以下のリソースをご利用ください。

AWS Database Encryption SDK で潜在的なセキュリティ脆弱性を発見した場合は、AWS セキュリティ に通知してください。パブリックな GitHub 問題を作成しないでください。

このドキュメントに関するフィードバックを提供するには、任意のページのフィードバックリンクを使用します。