ビーコン - AWS データベース暗号化 SDK

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

ビーコン

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

ビーコンは、フィールドに書き込まれるプレーンテキストの値と、実際にデータベースに格納される暗号化された値の間のマップを作成する、切り詰められた Hash-Based Message Authentication Code (HMAC) タグです。ビーコンはフィールドの暗号化状態を変更しません。ビーコンは、フィールドのプレーンテキストの値について HMAC を計算し、それを暗号化された値と一緒に格納します。この HMAC 出力は、そのフィールドのプレーンテキストの値と 1 対 1 (1:1) で一致します。HMAC 出力は切り詰められ、複数の個別のプレーンテキストの値が、切り詰められた同じ HMAC タグにマッピングされます。これらの誤検知により、不正ユーザーは、プレーンテキストの値に関する特徴的な情報を識別しにくくなります。

ビーコンは、暗号化アクション SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTENCRYPT_AND_SIGNSIGN_ONLY、または とマークされたフィールドからのみ構築できます。ビーコン自体は署名も暗号化もされません。DO_NOTHING とマークされているフィールドを使用してビーコンを構築することはできません。

設定するビーコンのタイプによって、実行できるクエリのタイプが決まります。検索可能な暗号化をサポートするビーコンには 2 つのタイプがあります。標準ビーコンは、一致検索を実行します。複合ビーコンは、リテラルプレーンテキスト文字列と標準ビーコンを組み合わせて、複雑なデータベースオペレーションを実行します。ビーコンを設定した後、暗号化されたフィールドを検索する前に、各ビーコンについてセカンダリインデックスを設定する必要があります。詳細については、「ビーコンを使用したセカンダリインデックスの設定」を参照してください。

標準ビーコン

標準ビーコンは、データベースで検索可能な暗号化を実装する最も簡単な方法です。単一の暗号化されたフィールドまたは仮想フィールドについてのみ一致検索を実行できます。標準ビーコンの設定方法については、「標準ビーコンの設定」を参照してください。

標準ビーコンが構築されるフィールドは、ビーコンソースと呼ばれます。これは、ビーコンがマッピングする必要があるデータの場所を識別します。ビーコンソースは、暗号化されたフィールドまたは仮想フィールドのいずれかです。各標準ビーコンのビーコンソースは一意である必要があります。同じビーコンソースで 2 つのビーコンを設定することはできません。

標準ビーコンを使用して、暗号化されたフィールドまたは仮想フィールドの等価検索を実行できます。または、複合ビーコンを構築して、より複雑なデータベースオペレーションを実行することもできます。標準ビーコンの整理と管理に役立つように、 AWS Database Encryption SDK では、標準ビーコンの使用目的を定義する以下のオプションビーコンスタイルが用意されています。詳細については、「ビーコンスタイルの定義」を参照してください。

単一の暗号化されたフィールドに対して等価検索を実行する標準ビーコンを作成することも、仮想フィールドを作成して複数の ENCRYPT_AND_SIGN、、SIGN_ONLYおよび SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTフィールドの連結に対して等価検索を実行する標準ビーコンを作成することもできます。

仮想フィールド

仮想フィールドは、1 つ以上のソースフィールドから構築された概念的なフィールドです。仮想フィールドを作成しても、レコードに新しいフィールドは書き込まれません。仮想フィールドは、データベースに明示的に格納されません。これは、フィールドの特定のセグメントを識別する方法、またはレコード内の複数のフィールドを連結して特定のクエリを実行する方法についてビーコンに指示を与えるために、標準ビーコン設定で使用されます。仮想フィールドには少なくとも 1 つの暗号化されたフィールドが必要です。

注記

次の例は、仮想フィールドを使用して実行できる変換とクエリのタイプを示しています。アプリケーションでは、この例で使用されているフィールド例は、ビーコンの分布および相関の一意性に関する推奨事項を満たしていない可能性があります。

例えば、FirstName および LastName フィールドの連結に対して一致検索を実行する場合は、次のいずれかの仮想フィールドを作成することが考えられます。

  • FirstName フィールドの最初の文字と、それに続く LastName フィールドから構築される仮想 NameTag フィールド (すべて小文字)。この仮想フィールドを使用すると、NameTag=mjones をクエリできます。

  • LastName フィールドと、それに続く FirstName フィールドから構築される仮想 LastFirst フィールド。この仮想フィールドを使用すると、LastFirst=JonesMary をクエリできます。

または、暗号化されたフィールドの特定のセグメントに対して一致検索を実行する場合は、クエリを実行するセグメントを識別する仮想フィールドを作成します。

例えば、IP アドレスの最初の 3 つのセグメントを使用して暗号化された IPAddress フィールドをクエリする場合は、次の仮想フィールドを作成します。

  • Segments(‘.’, 0, 3) から構築された仮想 IPSegment フィールド。この仮想フィールドを使用すると、IPSegment=192.0.2 をクエリできます。クエリは、「192.0.2」で始まる IPAddress の値を持つすべてのレコードを返します。

仮想フィールドは一意である必要があります。2 つの仮想フィールドをまったく同じソースフィールドから構築することはできません。

仮想フィールドとそれらを使用するビーコンの設定については、「仮想フィールドの作成」を参照してください。

複合ビーコン

複合ビーコンは、クエリのパフォーマンスを改善するインデックスを作成し、より複雑なデータベースオペレーションを実行できるようにします。複合ビーコンを使用して、リテラルプレーンテキスト文字列と標準ビーコンを組み合わせて、単一のインデックスから 2 つの異なるレコードタイプをクエリしたり、ソートキーを使用してフィールドの組み合わせをクエリしたりするなど、暗号化されたレコードに対して複雑なクエリを実行できます。複合ビーコンソリューションの例については、「ビーコンタイプを選択する」を参照してください。

複合ビーコンは、標準ビーコン、または標準ビーコンと署名付きフィールドの組み合わせから構築できます。これらは部分のリストから構築されます。すべての複合ビーコンには、ビーコンに含まれる ENCRYPT_AND_SIGN フィールドを識別する暗号化された部分のリストが含まれている必要があります。すべての ENCRYPT_AND_SIGN フィールドは、標準ビーコンによって識別される必要があります。より複雑な複合ビーコンには、ビーコンに含まれるプレーンテキストSIGN_ONLYまたはSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTフィールドを識別する署名付き部分のリストと、複合ビーコンがフィールドをアセンブルできるすべての可能な方法を識別するコンストラクター部分のリストが含まれる場合があります。

注記

AWS Database Encryption SDK は、プレーンテキストSIGN_ONLYSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXTフィールドから完全に設定できる署名付きビーコンもサポートしています。署名付きビーコンは複合ビーコンの一種で、署名されたが暗号化されていないフィールドに対してインデックスを作成し、複雑なクエリを実行します。詳細については、「署名付きビーコンの作成」を参照してください。

複合ビーコンの設定については、「複合ビーコンの設定」を参照してください。

複合ビーコンを設定する方法によって、実行できるクエリのタイプが決まります。例えば、一部の暗号化および署名付きの部分をオプションにして、クエリの柔軟性を高めることができます。複合ビーコンが実行できるクエリのタイプの詳細については、「ビーコンのクエリ」を参照してください。