概要
データレイクコンピューティング DLC 製品は列レベルのデータマスキングをサポートしており、データマスキング機能を使用して、機密データを含む列にマスキングルールを関連付け、さまざまなユーザーグループ向けに一連のマスキングアルゴリズムを設定し、ロールベースのきめ細かいマスキング適用を実現できます。例えば、電話番号データの場合、カスタマーサービス担当者グループには完全なアクセス権を付与し、分析担当者グループには下4桁のみを表示する権限を付与し、財務担当者グループにはNULLとして表示する厳格なマスキング権限を適用することが可能です。
制約と制限
DLC データマスキング機能の現在の制約と制限は以下の通りです。
サポートされているエンジンタイプ
現在、2024年10月1日以降のカーネルバージョンを搭載したSpark標準エンジン、SuperSQL Sparkジョブエンジン、SuperSQL SparkSQLエンジンのみをサポートしています。なお、SuperSQL SparkSQLエンジンのデータマスキングはホワイトリスト機能となっており、利用するにはチケットを提出して申請する必要があります。DLCエンジンのカテゴリについては、データエンジンの紹介をご参照ください。 有効範囲
1. データマスキング機能はDLCすべてのユーザー(管理者を含む)に対してのみ有効です。DLCのユーザータイプについては、DLC権限の概要を参照してください。 2. データマスキングポリシータグの設定が完了してから、約1分程度の有効化時間が必要です。
3. デフォルトのデータディレクトリDataLakeCatalogのメタデータに対してのみ有効です。
特別な制限
1. SuperSQL SparkSQLエンジンを使用する場合、データマスキングポリシーはビューをサポートしていません。
2. ユーザー/ワークグループがテーブルに対するSELECT権限を持っている必要があります。そうでない場合、ユーザー/ワークグループがそのテーブルをクエリするとエラーが表示されます。DLCの権限タイプについては、サブアカウント権限管理を参照してください。 サポートされている匿名化方法
現在のDLCでは以下の列値データ匿名化方法をサポートしています:
デフォルト値
列のデータ型に基づいて列のデフォルト匿名化値を返します。列値を非表示にしつつデータ型を表示したい場合、このルールの使用を検討できます。
サポートされているデータ型: STRING BINARY INT BIGINT DOUBLE FLOAT DECIMAL BOOLEAN TIMESTAMP DATE ARRAY
|
STRING | "" |
BINARY | [] |
INT | 0 |
DECIMAL | 0 |
BIGINT | 0 |
FLOAT | 0 |
DOUBLE | 0 |
BOOLEAN | false |
TIMESTAMP | 1970-01-01 08:00:00 |
DATE | 1970-01-01 |
ARRAY | [] |
「設定-一般」
列値の最初の4文字を返し、文字列の残りの部分をXXXXXに置き換えます。列値の長さが4文字以下の場合、SHA-256ハッシュ関数で処理された列値を返します。このルールはSTRINGデータ型の列にのみ使用できます。
サポートされているデータ型: STRING
|
abcd@example.com | abcdxxxxxxxxxx |
abc | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
後四文字を残す
列値の最後の4文字を返し、文字列の残りの部分をXXXXXに置き換えます。列値の長さが4文字以下の場合、SHA-256ハッシュ関数で処理された列値を返します。このルールはSTRINGデータ型の列にのみ使用できます。
サポートされているデータ型: STRING
|
abcd@example.com | xxxxxxxxxx.com |
abc | ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad |
ハッシュ
SHA-256ハッシュ関数で処理された列値を返します。クエリのJOIN操作でこの列を最終ユーザーが使用できるようにしたい場合、このルールを使用できます。このルールはSTRINGまたはBYTESデータ型の列にのみ使用できます。
サポートされているデータ型: STRING BYTES
|
abcd@example.com | 3f7768839b5bcba43f589cc3af54efaea18bceb1df8b05a7dffaec3e7b43b269 |
NULLに設定
列のデータタイプに関係なく、NULLを返します。列の値とそのデータタイプを非表示にする場合は、このルールを使用してください。
サポートされているデータ型: 制限なし
日付脱敏
日付文字列の年の部分のみを表示し、月と日をデフォルトで01/01に設定します。このルールは、DATE、TIMESTAMPデータ型の列にのみ適用できます。
サポートされているデータ型: TIMESTAMP DATE
|
2015-03-05T09:32:05.359 | 2015-01-01 00:00:00 |
匿名化しない
列値の平文を表示し、いかなる匿名化処理も行いません。
サポートされているデータ型: 制限なし
匿名化方法の選択に関するアドバイス
以下のアドバイスに基づいて、列値に必要な匿名化方法を柔軟に選択できます:
|
デフォルト値 | 列の値を非表示にしたいが、ユーザーにそのデータ型を表示する必要がある |
「設定-一般」 | 列の値を平文で非表示にしたいが、情報確認のために一部の文字を表示する。例えば、カスタマーサービスが顧客に電子メールの最初の4文字を確認する場合など。 |
私が作成したレコーディングは、デフォルトで「{assistant_name}」をオンにします | 列の値を平文で非表示にしたいが、情報確認のために一部の文字を表示する。例えば、カスタマーサービスが顧客に携帯電話番号の最後の4桁を確認する場合など。 |
ハッシュ | ユーザーがクエリのJOIN操作でこの列を使用したり、GROUP BYで統計を行ったりできるようにしたい場合は、このルールを使用できます |
NULLに設定 | 列の値とそのデータ型を非表示にする場合は、このルールを使用します |
日付脱敏 | 年のみを表示し、残りの日付情報を非表示にするシナリオに使用します。生年月年の確認など。 |
匿名化しない | 平文を使用する必要があるユーザー向け |
データ匿名化ワークフロー
以下の手順に従ってDLCデータ匿名化を設定できます:
脱敏ポリシータグの概要
脱敏策略タグとは、ユーザーがカスタマイズして機密データ列に関連付けるためのタグであり、1つの脱敏策略タグ内で複数のユーザーグループに対する詳細な脱敏方法を設定できます。例えば、「携帯電話番号」という名前の脱敏策略タグを設定し、3つのDLCワークグループに対する脱敏方法を以下のように設定します:
脱敏ポリシータグの名称:電話番号の匿名化
ワークグループの匿名化方法の設定:
|
カスタマーサポートスタッフグループ | 匿名化しない |
アナリストグループ | 下4桁を表示 |
財務担当者グループ | NULLに設定 |
効果:
上記の匿名化ポリシータグをPhone_number1、Phone_number2の2つの列に関連付けると、カスタマーサービス担当者グループのDLCユーザーがPhone_number1、Phone_number2をクエリすると平文が表示されます。分析担当者グループのDLCユーザーがクエリすると*********4320のような結果が得られます。財務担当者グループのDLCユーザーがクエリするとNULLが表示されます。
脱敏ポリシーの有効優先度
DLCユーザーが複数の作業グループに追加され、異なる作業グループに異なる脱敏方法が関連付けられている場合、特定のユーザーには複数の脱敏ポリシーが存在します。ユーザーに複数の脱敏方法の競合がある場合、システムは所属する作業グループの中で最も優先度の高い方法を有効にします。作業グループの順序が上位であるほど優先度が高くなります。
例えば上記の脱敏ポリシータグの場合、張三が分析担当者グループと財務担当者グループの両方に属している場合、張三のクエリ結果は*********4320のように表示されます。
手順1:新しいマスキングポリシータグを作成
脱敏ポリシータグの作成
2. 「データマスキング方法の設定」で、対応するワークグループをチェックして「選択済み」ダイアログに追加し、各ワークグループにデータマスキング方法を設定します。
3. 設定が完了したら、ワークグループモジュールを上下にドラッグして、ポリシーの優先順位を上から下に並べ替えることができます。ワークグループが上にあるほど優先度が高くなります。ドラッグして並べ替えない場合、デフォルトでは上から下に向かって優先度が適用されます。
4. 確定をクリックし、作成を完了します。
注意:
1. DLC データ脱敏機能は、現在、脱敏方法が設定されているユーザーグループ内のユーザーにのみ適用されます。脱敏方法が設定されていないユーザーグループや、いずれのユーザーグループにも追加されていないユーザーには適用されません。
2. すべてのDLCユーザーに適用するには、以下のことをお勧めします:
2.1 すべてのユーザーグループに脱敏方法を設定します。
2.2 すべてのDLCユーザーをユーザーグループに追加します。
ステップ2:データ列にタグをバインドする
2. 脱敏が必要なフィールドを見つけるか、右上の検索ボックスでフィールド名を検索し、脱敏ポリシータグでをクリックして、ダイアログでバインドする脱敏ポリシータグを選択します。 3. 適切な脱敏ポリシータグが見つからない場合は、ダイアログの脱敏ポリシータグを作成をクリックして迅速に作成できます。
注意:
1. DLCに組み込まれた各種匿名化方法にはフィールドタイプの制限があります。例えば、日付の匿名化はTIMESTAMPやDATEデータタイプの列にのみ関連付けることができます。詳細はサポートされている匿名化方法をご参照ください。 2. 1つのフィールドには1つのマスキングポリシータグのみを関連付けることができ、マスキングポリシータグは複数のデータ列で再利用できます。
有効開始日:
脱敏ポリシータグの設定を完了し、列にバインドした後、約1分程度の適用時間が必要です。その間、ユーザーのクエリではまだ平文の結果が返される可能性がありますが、しばらく待てば反映されます。
ステップ3:クエリを実行する
脱敏ポリシータグを匿名化が必要な列にバインドした後、その列のデータタイプがこの脱敏ポリシータグ内のすべての匿名化方法をサポートしている場合、設定は成功します。関連ユーザーが該当列のデータをクエリする際、ユーザーが属するユーザーグループの匿名化方法に応じて、対応する匿名化後の結果が表示されます。以下に、DLCデータ匿名化機能が実現できる効果を仮想ケースでさらに詳しく説明します。
ケース説明
A社が機密顧客情報テーブルcustomer_listを所有していると仮定します。詳細なフィールドは以下の通りです:
|
123456789 | High | 45,600 | abc@example.com |
234567891 | Medium | 15,000 | bcd@example.com |
345678912 | Low | 2,000 | cde@example.com |
456789123 | Low | 1,000 | def@example.com |
A社内部には、カスタマーサービス担当者グループ、財務担当者グループ、分析担当者グループの3つのユーザーグループがあります。現在、電話番号とメールアドレスという2つのPII(個人識別情報)に該当する機微なフィールドは、カスタマーサービス担当者グループのみが使用可能にし、消費額フィールドは財務担当者のみが使用可能、顧客等級タグは財務担当者のみが使用可能ですが、分析担当者は顧客等級のハッシュ値を確認できるため、顧客層別の統計分析が可能です。
上記の要件に基づいて、以下の3つのマスキングポリシータグを作成できます:
|
カスタマーサービス担当者グループ:匿名化しない 財務担当者グループ:NULL アナリストグループ:NULL | カスタマーサービス担当者グループ:NULL 財務担当者グループ:匿名化しない アナリストグループ:NULL | カスタマーサービス担当者グループ:NULL 財務担当者グループ:匿名化しない アナリストグループ:ハッシュ |
上記の表に対応する列にバインドされた匿名化ラベルを仮定すると:
1. 特定のワークグループにのみ存在するユーザーが、SELECT * FROM customer_list; を実行すると、以下の結果が得られます:
カスタマーサポートスタッフグループ:このワークグループには、連絡先情報を匿名化しないルールが付与されています。以下の結果が返されます:
|
123456789 | NULL | NULL | abc@example.com |
234567891 | NULL | NULL | bcd@example.com |
345678912 | NULL | NULL | cde@example.com |
456789123 | NULL | NULL | def@example.com |
財務担当者グループ:この作業グループには、利用額+顧客ランクの非マスキングルールが付与されています。以下の結果が返されます:
|
NULL | High | 45,600 | NULL |
NULL | Medium | 15,000 | NULL |
NULL | Low | 2,000 | NULL |
NULL | Low | 1,000 | NULL |
アナリストグループ:この作業グループには、顧客レベルのハッシュマスキングが許可されています。以下の結果が返されますが、実際の顧客レベルを把握することはできません。ただし、ハッシュ値を使用して統計分析を行うことができます:
|
NULL | 4fa3c0d004d0750fc7bf8631993bd7c668fd33f8d089e0103ad8ef3fc1d9f4bb | 45,600 | NULL |
NULL | 35d8f8d59e2630de970e35271547d087278074addd61ce31940da69d82d19929 | 15,000 | NULL |
NULL | 49542bc83b9d59935686144f352b6acb2264992720d0dbe780be50b56b87fef7 | 2,000 | NULL |
NULL | 49542bc83b9d59935686144f352b6acb2264992720d0dbe780be50b56b87fef7 | 1,000 | NULL |
2. あるユーザーがカスタマーサポートスタッフグループと財務担当者グループの両方に存在する場合、上から下への優先順位でマスキングルールが適用され、そのユーザーに適用されるマスキングルールは以下の通りです:
|
カスタマーサービス担当者グループ:匿名化しない | カスタマーサービス担当者グループ:NULL | カスタマーサービス担当者グループ:NULL |
SELECT * FROM customer_list; を実行すると、以下の結果が生成されます:
|
123456789 | NULL | NULL | abc@example.com |
234567891 | NULL | NULL | bcd@example.com |
345678912 | NULL | NULL | cde@example.com |
456789123 | NULL | NULL | def@example.com |