L-多様性はデータセットののプロパティです。k-匿名性を拡張したものであり、機密値が発生する各列の多様性を測定します。同一の準識別子を持つ行のすべての集合で、各機密属性について少なくとも l 個の異なる値がある場合、そのデータセットは l-多様性を持っています。
l-多様性の値はデータセットの 1 つ以上の列(フィールド)に基づいて計算できます。このトピックでは、Sensitive Data Protection を使用してデータセットの l-多様性の値を計算する方法を説明します。l-多様性またはリスク分析の概要については、続行する前に、リスク分析のコンセプトのトピックをご覧ください。
はじめる前に
続行する前に、以下を行ってください。
- Google アカウントにログインします。
- Google Cloud コンソールのプロジェクト セレクタページで、 Google Cloud プロジェクトを選択または作成します。 プロジェクト セレクタに移動
- Google Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
- Sensitive Data Protection を有効にします。 Sensitive Data Protection を有効にする
- 分析する BigQuery データセットを選択します。Sensitive Data Protection は、BigQuery テーブルをスキャンして l-多様性指標を計算します。
- 機密フィールド識別子(該当する場合)とデータセット内の少なくとも 1 つの準識別子を決定します。詳細については、リスク分析の用語と手法をご覧ください。
l-多様性の計算
Sensitive Data Protection によるリスク分析は、リスク分析ジョブの実行時に行われます。最初に、Google Cloud コンソールを使用するか、DLP API リクエストを送信するか、Sensitive Data Protection クライアント ライブラリを使用してジョブを作成する必要があります。
コンソール
Google Cloud コンソールで、[リスク分析の作成] ページに移動します。
[入力データを選択] セクションで、テーブルを含むプロジェクトのプロジェクト ID、テーブルのデータセット ID、およびテーブルの名前を入力して、スキャンする BigQuery テーブルを指定します。
[計算するプライバシー指標] で [l-多様性] を選択します。
(省略可)[ジョブ ID] セクションからジョブにカスタム識別子を指定して、Sensitive Data Protection がデータを処理するリソースの場所を選択します。完了したら、[続行] をクリックします。
[フィールドの定義] セクションで、l-多様性リスクジョブの機密フィールドと準識別子を指定します。Sensitive Data Protection は、前の手順で指定した BigQuery テーブルのメタデータにアクセスし、フィールドのリストへの入力を試みます。
- 該当するチェックボックスをオンにして、フィールドを機密フィールド(S)または準識別子(QI)として指定します。機密フィールド 1 つと、準識別子を 1 つ以上選択する必要があります。
- Sensitive Data Protection でフィールドに入力できない場合は、[フィールド名を入力] をクリックして 1 つ以上のフィールドを手動で入力し、各フィールドを機密フィールドまたは準識別子として設定します。完了したら、[続行] をクリックします。
(省略可)[アクションの追加] セクションで、リスクジョブが完了したときに実行するアクションを追加します。使用できるオプションは次のとおりです。
- BigQuery に保存: リスク分析のスキャン結果を BigQuery テーブルに保存します。
Pub/Sub に公開: 通知を Pub/Sub トピックに公開します。
メールで通知: 結果が記載されたメールを送信します。完了したら、[作成] をクリックします。
l-多様性リスク分析ジョブがすぐに開始されます。
C#
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Sensitive Data Protection 用のクライアント ライブラリをインストールして使用する方法については、Sensitive Data Protection のクライアント ライブラリをご覧ください。
Sensitive Data Protection の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
l-多様性を計算するための新しいリスク分析ジョブを実行するには、projects.dlpJobs リソースにリクエストを送信します。ここで、PROJECT_ID はプロジェクト識別子を示します。
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
このリクエストには、次の項目で構成される RiskAnalysisJobConfig オブジェクトが含まれます。
PrivacyMetricオブジェクト。ここでLDiversityConfigオブジェクトを含めることで、l-多様性を計算することを指定します。BigQueryTableオブジェクト。次のすべてを含めることで、スキャンする BigQuery テーブルを指定します。projectId: テーブルを含むプロジェクトのプロジェクト ID。datasetId: テーブルのデータセット ID。tableId: テーブルの名前。
1 つ以上の
Actionオブジェクトのセット。これは、ジョブの完了時に所定の順序で実行するアクションを表します。各Actionオブジェクトには、次のいずれかのアクションを含めることができます。SaveFindingsオブジェクト: リスク分析のスキャン結果を BigQuery テーブルに保存します。PublishToPubSubオブジェクト: 通知を Pub/Sub トピックに公開します。JobNotificationEmailsオブジェクト: 結果が記載されたメールを送信します。
LDiversityConfigオブジェクト内で、次の項目を指定します。
DLP API にリクエストを送信するとすぐに、リスク分析ジョブが開始されます。
計算済みのリスク分析ジョブを一覧表示する
現在のプロジェクトで実行済みのリスク分析ジョブを一覧表示できます。
コンソール
Google Cloud コンソールで実行中および実行済みのリスク分析ジョブを一覧表示するには:
Google Cloud コンソールで Sensitive Data Protection を開きます。
ページ上部の [ジョブとジョブトリガー] タブをクリックします。
[リスクジョブ] タブをクリックします。
リスクジョブの一覧が表示されます。
プロトコル
実行中および実行済みのリスク分析ジョブを一覧表示するには、GET リクエストを projects.dlpJobs リソースに送信します。ジョブタイプ フィルタ(?type=RISK_ANALYSIS_JOB)を追加すれば、リスク分析ジョブのみにレスポンスを絞り込むことができます。
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs?type=RISK_ANALYSIS_JOB
受信するレスポンスには、現在および以前のすべてのリスク分析ジョブの JSON 表現が含まれます。
l-多様性ジョブの結果を表示する
Sensitive Data Protection Google Cloud コンソールには、完了した l-多様性ジョブを可視化できる機能が組み込まれています。前のセクションの指示に沿って、リスク分析ジョブの一覧から、結果を表示するジョブを選択します。ジョブが正常に実行された場合、[リスク分析の詳細] ページの上部は次のようになります。

ページの上部には、l-多様性リスクジョブに関する情報があります。これには、ジョブ ID とコンテナの下のリソースの場所が含まれます。
l-多様性の計算結果を表示するには、[L-多様性] タブをクリックします。リスク分析ジョブの構成を表示するには、[構成] タブをクリックします。
[L-多様性] タブには、最初に機密値と l-多様性の計算に使用される準識別子が一覧表示されます。
リスク チャート
再識別リスクチャートは、特定の行と準識別子の組み合わせでデータが失われる可能性(%)を y 軸とし、l-多様性の値を x 軸としてプロットしたグラフです。グラフの色はリスクの高さを示しています。濃い青色はリスクが高いことを示し、薄い青色はリスクが低いことを示しています。
l-多様性の値が高いほど、値の多様性が少ないことを意味し、データセットの再識別が困難になり、安全性が高まります。ただし、より高い l-多様性の値を実現するためには、行や一意の準識別子の組み合わせをより多く削除する必要があり、これによりデータの有用性が低下する可能性があります。グラフにカーソルを合わせると、その l-多様性の値に対応するデータ損失の可能性(%)の具体的な値を確認できます。スクリーンショットに示されているように、ツールチップがグラフに表示されます。
特定の l-多様性の値の詳細を表示するには、対応するデータポイントをクリックします。グラフの下に詳細な説明が表示され、ページの下にサンプル データテーブルが表示されます。
リスクのサンプル データテーブル
リスクジョブの結果ページの 2 番目のコンポーネントは、サンプル データテーブルです。これは、l-多様性のターゲット値の準識別子の組み合わせを表示します。

テーブルの最初の列には、k-匿名性の値が一覧表示されます。l-多様性の値をクリックすると、その値を達成するために破棄する必要がある、対応するサンプルデータが表示されます。
2 番目の列には、選択した l-多様性の値を達成する場合の、特定の行と準識別子の組み合わせにおけるデータ損失の可能性、少なくとも l 個の機密属性を持つグループの数、レコードの合計数が表示されます。
最後の列には、準識別子の組み合わせを共有するグループのサンプルと、その組み合わせで存在するレコードの数が表示されます。
REST を使用してジョブの詳細を取得する
REST API を使用して l-多様性のリスク分析ジョブの結果を取得するには、次の GET リクエストを projects.dlpJobs リソースに送信します。PROJECT_ID はプロジェクト ID に、JOB_ID は結果を取得するジョブの識別子に置き換えます。ジョブ ID は、ジョブの開始時に返されています。また、すべてのジョブの一覧表示して取得することもできます。
GET https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
リクエストは、ジョブのインスタンスを含む JSON オブジェクトを返します。分析結果は、AnalyzeDataSourceRiskDetails オブジェクトの "riskDetails" キーにあります。詳細については、DlpJob の API リファレンスをご覧ください。