このガイドでは、Cloud Data Loss Preventionを使用して特定の Google Cloud リソースをスキャンし、結果を Data Catalog に送信する方法について説明します。
Data Catalog はスケーラブルなメタデータ管理サービスで、このサービスにより Google Cloud 内のすべてのデータをすばやく検出、管理、把握できます。
Cloud DLP は Data Catalog とネイティブに統合されています。Cloud DLP アクションを使用して BigQuery テーブルの機密データをスキャンすると、タグ テンプレートの形式で結果が直接 Data Catalog に送信されます。
このガイドの手順を完了すると、次のことができるようになります。
- Data Catalog と Cloud DLP を有効にする。
- BigQuery テーブルをスキャンするように Cloud DLP を設定する。
- スキャン結果を Data Catalog に送信するように Cloud DLP スキャンを構成する。
Data Catalog の詳細については、Data Catalog のドキュメントをご覧ください。
費用
このドキュメントでは、Google Cloud の次の課金対象のコンポーネントを使用します。
- Cloud DLP
- BigQuery
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
始める前に
Cloud DLP のスキャン結果を Data Catalog に送信する前に、次の操作を行います。
- 手順 1: 支払い情報を設定する
- 手順 2: 新しいプロジェクトを作成して新しい BigQuery テーブルを追加する(省略可)
- 手順 3: Data Catalog を有効にする
- 手順 4: Cloud DLP を有効にする
以下では、各手順について詳しく説明します。
手順 1: 支払い情報を設定する
請求先アカウントをまだ設定していない場合は、まず設定する必要があります。
手順 2: 新しいプロジェクトを作成して新しい BigQuery テーブルを追加する(省略可)
本番環境用にこの機能を設定する場合や、スキャンする BigQuery テーブルがすでにある場合は、そのテーブルを含む Google Cloud プロジェクトを開いて手順 3 に進みます。
この機能を試したい場合や、「ダミー」のデータセットまたはテスト用のデータセットをスキャンする場合は、新しいプロジェクトを作成します。この手順を完了するには、IAM プロジェクト作成者のロールが必要です。IAM ロールの詳細
- Google Cloud Console の [新しいプロジェクト] ページに移動します。
- [請求先アカウント] プルダウン リストで、プロジェクトの請求先となる請求先アカウントを選択します。
- [組織] プルダウン リストで、プロジェクトを作成する組織を選択します。
- [場所] プルダウン リストで、プロジェクトを作成する組織またはフォルダを選択します。
- [作成] をクリックしてプロジェクトを作成します。
次に、サンプルデータをダウンロードして保存します。
- GitHub の Cloud Functions チュートリアル リポジトリにアクセスします。
- サンプルデータを含む CSV ファイルを 1 つ選択し、ファイルをダウンロードします。
- 次に、Google Cloud コンソールで BigQuery に移動します。
- プロジェクトを選択します。
- [データセットを作成] をクリックします。
- [テーブルを作成] をクリックします。
- [アップロード] をクリックし、アップロードするファイルを選択します。
- テーブルに名前を付けて、[テーブルを作成] をクリックします。
手順 3: Data Catalog を有効にする
次に、Cloud DLP を使用してスキャンする BigQuery テーブルを含むプロジェクトの Data Catalog を有効にします。
Google Cloud コンソールを使用して Data Catalog を有効にするには:
- Data Catalog にアプリケーションを登録します。
- 登録ページの [プロジェクトの作成] プルダウン リストから、Data Catalog で使用するプロジェクトを選択します。
- プロジェクトを選択したら、[続行] をクリックします。
これで、プロジェクトで Data Catalog が有効になりました。
手順 4: Cloud DLP を有効にする
Data Catalog を有効にした同じプロジェクトで、Cloud DLP を有効にします。
Google Cloud コンソールを使用して Cloud DLP を有効にするには:
- Cloud DLP にアプリケーションを登録します。
- 登録ページの [プロジェクトの作成] プルダウンリストから、前の手順で選択したものと同じプロジェクトを選択します。
- プロジェクトを選択したら、[続行] をクリックします。
これで、プロジェクトで Cloud DLP が有効になりました。
Cloud DLP 検査スキャンを構成して実行する
Cloud DLP 検査スキャンを構成して実行するには、Google Cloud コンソールまたは DLP API のいずれかを使用します。
Data Catalog タグ テンプレートは、BigQuery テーブルと同じプロジェクトとリージョンに保存されます。別のプロジェクトのテーブルを検査する場合は、BigQuery があるプロジェクトの Cloud DLP サービス エージェントに Data Catalog TagTemplate オーナー(roles/datacatalog.tagTemplateOwner
)のロールを付与する必要があります。
Google Cloud コンソール
Cloud DLP を使用して BigQuery テーブルのスキャン ジョブを設定するには:
Google Cloud コンソールで Cloud DLP を開きます。
[作成] メニューで [ジョブまたはジョブトリガー] を選択します。
Cloud DLP ジョブ情報を入力して、[続行] をクリックし、以下の各ステップを完了します。
ステップ 1: 入力データを選択では、[名前] フィールドに値を入力して、ジョブに名前を付けます。[ロケーション] で、[ストレージ タイプ] メニューから [BigQuery] を選択して、スキャンするテーブルの情報を入力します。[サンプリング] セクションは、データに対してサンプル スキャンを実行するように事前構成されています。大量のデータがある場合は、[行の制限] と [行の最大数] フィールドを調整してリソースを節約できます。詳細については、入力データの選択をご覧ください。
(省略可)ステップ 2: 検出を構成するでは、「infoTypes」と呼ばれる検索するデータのタイプを構成します。このチュートリアルでは、デフォルトの infoType が選択されたままにします。詳細については、検出の構成をご覧ください。
ステップ 3: アクションを追加するでは、[Data Catalog に保存] を有効にします。
(省略可)ステップ 4: スケジュールでは、このチュートリアルではスキャンを 1 回だけ実行するため、このメニューを [なし] のままにします。繰り返しスキャンのスケジュール設定の詳細については、スケジュール設定をご覧ください。
[作成] をクリックします。ジョブはすぐに実行されます。
DLP API
このセクションでは、Cloud DLP スキャンジョブを構成して実行します。
ここで構成する検査ジョブでは、上記のステップ 2で説明した BigQuery データのサンプルか、独自の BigQuery データのどちらかをスキャンします。指定したジョブ構成は、スキャン結果を Data Catalog に保存するために Cloud DLP に指示する場所でもあります。
ステップ 1: プロジェクト ID をメモする
Google Cloud コンソールに移動します。
[選択] をクリックします。
[選択元] プルダウン リストで、Data Catalog を有効にした組織を選択します。
[ID] で、スキャンするデータを含むプロジェクトのプロジェクト ID をコピーします。これは、前述のストレージ リポジトリの設定手順で説明したプロジェクトです。
[名前] で、プロジェクトをクリックして選択します。
ステップ 2: API Explorer を開いてジョブを構成する
dlpJobs.create
メソッドのリファレンス ページで API Explorer に移動します。次からこの手順を利用できるようにするため、次のリンクを右クリックして新しいタブまたはウィンドウで開きます。[parent] ボックスに、次のように入力します。project-id は、前のステップでメモしたプロジェクト ID です。
projects/project-id
次に、以下の JSON をコピーします。API Explorer で [Request body] フィールドの内容を選択してから、JSON を貼り付けて内容を置き換えます。
project-id
、bigquery-dataset-name
、bigquery-table-name
プレースホルダは、実際のプロジェクト ID、BigQuery データセット、テーブル名にそれぞれ置き換えてください。{ "inspectJob": { "storageConfig": { "bigQueryOptions": { "tableReference": { "projectId": "project-id", "datasetId": "bigquery-dataset-name", "tableId": "bigquery-table-name" } } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" }, { "name": "PERSON_NAME" }, { "name": "US_SOCIAL_SECURITY_NUMBER" }, { "name": "PHONE_NUMBER" } ], "includeQuote": true, "minLikelihood": "UNLIKELY", "limits": { "maxFindingsPerRequest": 100 } }, "actions": [ { "publishFindingsToCloudDataCatalog": {} } ] } }
利用可能なスキャン オプションの詳細については、ストレージとデータベースに含まれる機密データの検査をご覧ください。Cloud DLP がスキャンして検出できる情報の種類の完全なリストについては、InfoTypes リファレンスをご覧ください。
ステップ 3: スキャンジョブの開始をリクエストする
上記のステップに従ってジョブを構成したら、[実行] をクリックしてリクエストを送信します。リクエストが成功すると、成功コードと、作成した Cloud DLP ジョブのステータスを示す JSON オブジェクトがレスポンスに表示されます。
スキャン リクエストへのレスポンスには、検査スキャンジョブのジョブ ID が "name"
キーとして、検査スキャンジョブの現在の状態が "state"
キーとして含まれます。リクエストを送信したばかりなので、この時点でのジョブの状態は "PENDING"
です。
Cloud DLP での検査スキャンの状態を確認する
スキャン リクエストを送信すると、コンテンツのスキャンがすぐに始まります。
Google Cloud コンソール
検査スキャンジョブのステータスを確認するには:
Google Cloud コンソールで Cloud DLP を開きます。
[ジョブとジョブトリガー] タブをクリックしてから、[すべてのジョブ] をクリックします。
実行したばかりのジョブが、おそらくリストの先頭に表示されます。[State] 列で、そのジョブのステータスが [Done] になっていることを確認します。
ジョブの [ジョブ ID] をクリックすると、そのジョブの結果が表示されます。[ジョブの詳細] ページに表示される各 infoType 検出器の後に、コンテンツ内で見つかった一致の数が続きます。
DLP API
検査スキャンジョブのステータスを確認するには:
次のボタンをクリックして、
dlpJobs.get
メソッドのリファレンス ページで API Explorer に移動します。[name] ボックスに、スキャン リクエストに対する JSON レスポンスからのジョブの名前を、次の形式で入力します。
projects/project-id/dlpJobs/job-id
ジョブ ID はi-1234567890123456789
の形式です。リクエストを送信するには、[Execute] をクリックします。
ジョブが "DONE"
であることをレスポンス JSON オブジェクトの "state"
キーが示している場合、スキャンジョブは終了しています。
残りのレスポンス JSON を表示するには、ページを下にスクロールします。["result"
] > ["infoTypeStats"
] に表示されている情報の各種類に、対応する "count"
が表示されているはずです。表示されていない場合、入力した JSON が正確であり、データへのパスまたは場所が正しいことを確認します。
スキャンジョブが完了したら、このガイドの次のセクションに進み、Security Command Center でスキャン結果を表示できます。
Cloud DLP でのスキャン結果を Data Catalog で表示する
検査スキャンジョブの結果を Data Catalog に送信するように Cloud DLP に指示したので、Data Catalog UI で自動的に作成されたタグとタグ テンプレートを表示できます。
- Google Cloud コンソールの [Data Catalog] ページに移動します。
- 検査したテーブルを検索します。
- テーブルと一致する結果をクリックして、テーブルのメタデータを表示します。
次のスクリーンショットは、サンプルテーブルの Data Catalog メタデータ ビューを示しています。

Cloud DLP データ検出
Cloud DLP からの結果は、スキャンしたテーブルの概要フォームに含まれます。この概要には、infoType の合計数と、日付とジョブ リソース ID を含む検査ジョブの概要データが含まれます。
検査されたすべての infoTypes
が一覧表示されます。結果は 0 より大きい数で示されます。
クリーンアップ
このトピックで使用したリソースに対して Google Cloud アカウントに課金されないようにするには、サンプルデータを使用したか、独自データを使用したかに応じて、以下のうちのいずれかを行います。
- サンプルデータ: 作成したプロジェクトを削除します。
- 独自データ: 作成した Cloud DLP ジョブを削除します。
プロジェクトの削除
課金を停止する最も簡単な方法は、このトピックで説明する手順用に作成したプロジェクトを削除することです。
プロジェクトを削除するには:
- Google Cloud コンソールでプロジェクト ページに移動します。
-
プロジェクト リストで、削除するプロジェクトを選択し、[プロジェクトの削除] をクリックします。
- ダイアログにプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
この方法でプロジェクトを削除すると、作成した Cloud DLP ジョブと Cloud Storage バケットも削除されます。次のセクションの手順に従う必要はありません。
Cloud DLP ジョブまたはジョブトリガーの削除
独自データをスキャンした場合は、作成した検査ジョブまたはジョブトリガーを削除します。
Google Cloud コンソール
Google Cloud コンソールで Cloud DLP を開きます。
[ジョブとジョブトリガー] タブをクリックしてから、[ジョブトリガー] タブをクリックします。
削除するジョブトリガーの [操作] 列で、[その他の操作] メニュー(縦に並んだ 3 つの点で表示)
をクリックし、[削除] をクリックします。
必要に応じて、実行したジョブの詳細を削除することもできます。[すべてのジョブ] タブをクリックし、削除するジョブの [操作] 列で、[その他の操作] メニュー(縦に並んだ 3 つの点で表示) をクリックし、[削除] をクリックします。
DLP API
次のボタンをクリックして、
dlpJobs.delete
メソッドのリファレンス ページで API Explorer に移動します。[name] ボックスに、スキャン リクエストへの JSON レスポンスのジョブ名を入力します。形式は次のとおりです。
projects/project-id/dlpJobs/job-id
ジョブ ID はi-1234567890123456789
の形式です。
追加のスキャンジョブを作成した場合や、ジョブを正常に削除したか確認が必要な場合、既存のすべてのジョブを一覧表示できます。
次のボタンをクリックして、
dlpJobs.list
メソッドのリファレンス ページで API Explorer に移動します。[parent] ボックスに、次の形式でプロジェクト ID を入力します。project-id は、プロジェクト ID です。
projects/project-id
[実行] をクリックします。
レスポンスにジョブが表示されていない場合は、すべてのジョブが削除されています。レスポンスにジョブが表示されている場合は、該当するジョブに対して前述の削除手順を繰り返します。
次のステップ
- Cloud DLP の
publishFindingsToCloudDataCatalog
アクションの詳細を確認する。 - Cloud DLP の結果に基づいた Data Catalog でのカスタムタグまたは列レベルのタグの作成についての詳細を確認する。
- Cloud DLP を使用してストレージ リポジトリの機密データをスキャンする方法を学習する。
- Data Catalog の使用方法を学習する。