翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチテナンシーデータベースの検索可能な暗号化
クライアント側の暗号化ライブラリの名前が AWS Database Encryption SDK に変更されました。このデベロッパーガイドでは、引き続き DynamoDB Encryption Client に関する情報を提供します。 |
データベースで検索可能な暗号化を実装するには、AWS KMS 階層キーリングを使用する必要があります。 AWS KMS 階層キーリングは、レコードの保護に使用されるデータキーを生成、暗号化、復号します。また、ビーコンを生成するために使用されるビーコンキーも作成します。マルチテナントデータベースで AWS KMS 階層キーリングを使用する場合、テナントごとに個別のブランチキーとビーコンキーがあります。マルチテナンシーデータベース内の暗号化されたデータをクエリするには、クエリしているビーコンを生成するために使用されたビーコンキーマテリアルを特定する必要があります。詳細については、「検索可能な暗号化のための階層キーリングの使用」を参照してください。
マルチテナンシーデータベースのビーコンバージョンを定義する場合は、設定したすべての標準ビーコンのリスト、設定したすべての複合ビーコンのリスト、ビーコンバージョン、および keySource
を指定します。ビーコンキーソースを MultiKeyStore として定義し、keyFieldName
、ローカルビーコンキーキャッシュのキャッシュ Time To Live、およびローカルビーコンキーキャッシュの最大キャッシュサイズを含める必要があります。
署名付きビーコンを設定した場合は、それらを compoundBeaconList
に含める必要があります。署名付きビーコンは、 SIGN_ONLY
および SIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
フィールドに対してインデックスを作成し、複雑なクエリを実行する複合ビーコンの一種です。
- keyFieldName
-
keyFieldName は、特定のテナンシーについて生成されたビーコンに使用されるビーコンキーに関連付けられた
branch-key-id
を格納するフィールドの名前を定義します。新しいレコードをデータベースに書き込むと、そのレコードについてのビーコンを生成するために使用されるビーコンキーを識別する
branch-key-id
がこのフィールドに格納されます。デフォルトでは、
keyField
はデータベースに明示的に格納されない概念的なフィールドです。 AWS Database Encryption SDK は、マテリアルの説明で暗号化されたデータキーbranch-key-id
から を識別し、複合ビーコンと署名付きビーコンで参照keyField
できるように値を概念的に保存します。マテリアルの説明は署名されているため、概念的なkeyField
は署名付きの部分とみなされます。暗号化アクション
keyField
に をSIGN_ONLY
またはSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
フィールドとして含めて、 フィールドをデータベースに明示的に保存することもできます。これを実行するには、データベースにレコードを書き込むたびに、branch-key-id
を手動でkeyField
に含める必要があります。
マルチテナンシーデータベース内のビーコンのクエリ
ビーコンをクエリするには、クエリに keyField
を含めて、ビーコンの再計算に必要となる適切なビーコンキーマテリアルを識別する必要があります。レコードのビーコンを生成するために使用されるビーコンキーに関連付けられた branch-key-id
を指定する必要があります。ブランチキー ID サプライヤーのテナンシーの branch-key-id
を識別するフレンドリ名を指定することはできません。次の方法でクエリに keyField
を含めることができます。
- 複合ビーコン
-
keyField
をレコードに明示的に格納するかどうかにかかわらず、複合ビーコンに署名付きの部分としてkeyField
を直接含めることができます。keyField
の署名付きの部分は必須である必要があります。例えば、
encryptedField
およびsignedField
の 2 つのフィールドから複合ビーコンcompoundBeacon
を構築する場合は、署名付きの部分としてkeyField
も含める必要があります。これにより、compoundBeacon
に対して次のクエリを実行できるようになります。compoundBeacon = E_encryptedFieldValue.S_signedFieldValue.K_
branch-key-id
- 署名付きビーコン
-
AWS Database Encryption SDK は、標準ビーコンと複合ビーコンを使用して、検索可能な暗号化ソリューションを提供します。これらのビーコンには、少なくとも 1 つの暗号化されたフィールドが含まれている必要があります。ただし、 AWS Database Encryption SDK は、プレーンテキスト
SIGN_ONLY
とSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT
フィールドから完全に設定できる署名付きビーコンもサポートしています。署名付きビーコンは単一の部分から構築できます。
keyField
をレコードに明示的に格納するかどうかにかかわらず、keyField
から署名付きビーコンを構築し、それを使用して、keyField
署名付きビーコンに対するクエリと、他のビーコンの 1 つに対するクエリを組み合わせる複合クエリを作成できます。例えば、次のクエリを実行できます。keyField = K_
branch-key-id
AND compoundBeacon = E_encryptedFieldValue.S_signedFieldValue署名付きビーコンの設定については、「署名付きビーコンの作成」を参照してください
keyField
に対する直接的なクエリの実行-
暗号化アクションで
keyField
を指定し、そのフィールドをレコードに明示的に格納した場合は、ビーコンに対するクエリと、keyField
に対するクエリを組み合わせた複合クエリを作成できます。標準ビーコンをクエリする場合は、keyField
に対して直接クエリを実行することを選択できます。例えば、次のクエリを実行できます。keyField =
branch-key-id
AND standardBeacon = S_standardBeaconValue