暗号コンピューティングパラメータ - AWS Clean Rooms

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

暗号コンピューティングパラメータ

暗号コンピューティングパラメータは、コラボレーションの作成時に、Cryptographic Computing for Clean Rooms (C3R) を使用してコラボレーションに指定できます。 AWS Clean Rooms コンソールまたは CreateCollaboration API オペレーションを使用してコラボレーションを作成できます。コンソールでは、{暗号コンピューティングをサポート} オプションをオンにすると、[暗号コンピューティングパラメータ] のパラメータ値を設定できます。詳細については、以下のトピックを参照してください。

[cleartext 列を許可] パラメータ

コンソールでは、コラボレーションの作成時に [cleartext 列を許可] パラメータを設定して、暗号化されたデータを含むテーブルで cleartext データを許可するかどうかを指定できます。

次の表で、[cleartext 列を許可] パラメータの値について説明します。

パラメータ値 説明
いいえ

暗号化されたテーブルでCleartext 列を使用できません。すべてのデータは暗号で保護されます。

はい

暗号化されたテーブルでCleartext 列を使用できます。

Cleartext 列は暗号化によって保護されず、cleartext として含まれます。行の cleartext データによって、テーブル内の他のデータについて明らかになるおそれがある情報をメモしておく必要があります。

特定の列で SUM または AVG を実行するには、その列が cleartext である必要があります。

CreateCollaboration API オペレーションを使用して、dataEncryptionMetadata パラメータの allowCleartext 値を true または false に設定できます。API オペレーションの詳細については、「AWS Clean Rooms API リファレンス」を参照してください。

Cleartext 列は、テーブル固有のスキーマで cleartext に分類される列に対応します。これらの列のデータは暗号化されておらず、どのような方法でも使用できます。Cleartext 列は、データの機密性が低い場合や、暗号化された sealed 列や fingerprint 列で許容される以上の柔軟性が必要な場合に役立ちます。

[複製を許可] パラメータ

コンソールでは、コラボレーションの作成時に [複製を許可] パラメータを設定して、暗号化された列の JOIN クエリで NULL 値以外の重複する値を含めるかどうかを指定できます。

重要

[複製を許可][名前の異なる列の JOIN を許可][NULL 値を保存] の各パラメータには、別々でありながら関連する効果があります。

次の表で、[複製を許可] パラメータの値について説明します。

パラメータ値 説明
いいえ

1 つの fingerprint 列で値の繰り返しは許可されません。1 つの fingerprint 列の値は、すべて一意でなければなりません。

はい

1 つの fingerprint 列で値の繰り返しが許可されます。

値が繰り返される列を結合する必要がある場合は、この値を [はい] に設定します。[はい] に設定すると、C3R テーブルまたは結果の fingerprint 列に示される頻度パターンによって、cleartext データの構造に関するその他の情報が推察可能になるおそれがあります。

CreateCollaboration API オペレーションを使用して、dataEncryptionMetadata パラメータの allowDuplicates 値を true または false に設定できます。API オペレーションの詳細については、「AWS Clean Rooms API リファレンス」を参照してください。

デフォルトでは、暗号化されたデータを JOIN クエリで使用する必要がある場合、C3R 暗号化クライアントでは、それらの列に重複する値がないことが求められます。この要件は、データ保護を強化するためのものです。この動作によって、データ内で繰り返されるパターンが観測可能になることを防止できます。ただし、JOIN クエリで暗号化されたデータを処理するにあたって、値の重複を気にしない場合は、[複製を許可] パラメータでこの保守的なチェックを無効にできます。

[名前の異なる列の JOIN を許可] パラメータ

コンソールでは、コラボレーションの作成時に [名前の異なる列の JOIN を許可] パラメータを設定して、異なる名前の列間の JOIN ステートメントをサポートするかどうかを指定できます。

詳細については、「列ヘッダー名の正規化 」を参照してください。

次の表で、[名前の異なる列の JOIN を許可] パラメータの値について説明します。

パラメータ値 説明
いいえ

名前の異なる fingerprint 列の結合はサポートされません。JOIN ステートメントでは、同じ名前の列でのみ正確な結果が得られます。

重要

[いいえ] を指定すると情報セキュリティは強化されますが、列名について事前にコラボレーション参加者の合意が必要になります。fingerprint列として暗号化したときに 2 つの列の名前が異なり、[名前の異なる列の JOIN を許可][いいえ] に設定されていると、それらの列の JOIN ステートメントは結果を生成しません。これは、暗号化後の値が 2 つの列の間で共有されないためです。

はい

名前の異なるfingerprint列の結合がサポートされます。柔軟性を高めるために、ユーザーはこの値を [はい] に設定できます。これにより、名前に関係なく列に対して JOIN ステートメントを実行できます。

[はい] に設定すると、C3R 暗号化クライアントは fingerprint 列を保護する際に列名を考慮しません。その結果、C3R テーブルの異なる fingerprint 列で共通する値が観測可能になります。

例えば、ある行の City 列と State 列の両方に暗号化された同一の JOIN 値が存在する場合、その値は New York であると合理的に推測できます。

CreateCollaboration API オペレーションを使用して、dataEncryptionMetadata パラメータの allowJoinsOnColumnsWithDifferentNames 値を true または false に設定できます。API オペレーションの詳細については、「AWS Clean Rooms API リファレンス」を参照してください。

デフォルトでは、fingerprint 列の暗号化は、「ステップ 4: 表形式ファイルの暗号化スキーマを生成する 」で設定されたその列の targetHeader 設定の影響を受けます。そのため、同じ cleartext 値でも、暗号化対象の fingerprint 列ごとに暗号化表現は異なります。

このパラメータは、cleartext 値が推測されるのを防ぐのに役立つ場合があります。例えば、fingerprint 列 CityState に暗号化された同一の値が表示されている場合、その値は New York であると合理的に推測できます。ただし、このパラメータを使用するには、クエリで結合されるすべての列が共通の名前になるように、事前に追加の調整が必要になります。

[名前の異なる列の JOIN を許可] パラメータを使用すると、この制限を緩和できます。パラメータ値を Yes に設定すると、名前に関係なく、暗号化されたすべての列を JOIN で一緒に使用できます。

[NULL 値を保存] パラメータ

コンソールでは、コラボレーションの作成時に [NULL 値を保存] パラメータを設定して、その列に値がないことを示すことができます。

次の表で、[NULL 値を保存] パラメータの値について説明します。

パラメータ値 説明
いいえ

NULL 値は保持されません。NULL 値は暗号化されたテーブルで NULL として表示されません。NULL 値は C3R テーブルに一意のランダム値として表示されます。

はい NULL値は保持されます。NULL 値は暗号化されたテーブルで NULL として表示されます。NULL 値の SQL セマンティックが必要な場合は、この値を [はい] に設定できます。その結果、列が暗号化されているかどうか、および [複製を許可] パラメータの設定に関係なく、NULL エントリは C3R テーブルで NULL として表示されます。

CreateCollaboration API オペレーションを使用して、dataEncryptionMetadata パラメータの preserveNulls 値を true または false に設定できます。API オペレーションの詳細については、「AWS Clean Rooms API リファレンス」を参照してください。

コラボレーションの [NULL 値を保存] パラメータが [いいえ] に設定されている場合の動作は以下の通りです。

  1. cleartext 列の NULL エントリは変更されません。

  2. 暗号化されたfingerprint 列の NULL エントリは、内容を隠すためにランダムな値として暗号化されます。暗号化された列をそのcleartext列の NULL エントリと結合しても、どの NULL エントリとも一致しません。それぞれが一意のランダムコンテンツを受け取るため、一致は生じません。

  3. 暗号化されたsealed 列の NULL エントリは暗号化されます。

コラボレーションの [NULL 値を保存] パラメータ値が [はい] に設定されている場合、列が暗号化されているかどうかに関係なく、すべての列の NULL エントリは NULL のままとなります。

[NULL 値を保存] パラメータは、データエンリッチメントなどのシナリオにおいて、情報が欠落し、NULL で表されているエントリを共有する場合に便利です。また、[NULL 値を保存] パラメータは、JOIN または GROUP BY を実行する列に NULL がある場合に、fingerprint または HMAC 形式でも役立ちます。

[複製を許可] パラメータと [NULL 値を保存] パラメータの値が [いいえ] に設定されている場合、1 つのfingerprint 列に複数の NULL エントリがあると、エラーが発生して暗号化が停止します。いずれかのパラメータ値が [はい] に設定されていれば、そのようなエラーは発生しません。