Data Catalog への Cloud DLP のスキャン結果の送信

このガイドでは、Cloud Data Loss Prevention(DLP)を使用して特定の 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

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。

新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

始める前に

Cloud DLP のスキャン結果を Data Catalog に送信する前に、次の操作を行います。

  • 手順 1: 支払い情報を設定する
  • 手順 2: 新しいプロジェクトを作成して新しい BigQuery テーブルを追加する(省略可)
  • 手順 3: Data Catalog を有効にする
  • 手順 4: Cloud DLP を有効にする

以下では、各手順について詳しく説明します。

手順 1: 支払い情報を設定する

請求先アカウントをまだ設定していない場合は、まず設定する必要があります。

課金を有効にする方法について

手順 2: 新しいプロジェクトを作成して新しい BigQuery テーブルを追加する(省略可)

本番環境用にこの機能を設定する場合や、スキャンする BigQuery テーブルがすでにある場合は、そのテーブルを含む Google Cloud プロジェクトを開いて手順 3 に進みます。

この機能を試したい場合や、「ダミー」のデータセットまたはテスト用のデータセットをスキャンする場合は、新しいプロジェクトを作成します。この手順を完了するには、IAM プロジェクト作成者のロールが必要です。IAM ロールの詳細

  1. Google Cloud Console の [新しいプロジェクト] ページに移動します。

    新しいプロジェクト

  2. [請求先アカウント] プルダウン リストで、プロジェクトの請求先となる請求先アカウントを選択します。
  3. [組織] プルダウン リストで、プロジェクトを作成する組織を選択します。
  4. [場所] プルダウン リストで、プロジェクトを作成する組織またはフォルダを選択します。
  5. [作成] をクリックしてプロジェクトを作成します。

次に、サンプルデータをダウンロードして保存します。

  1. GitHub の Cloud Functions チュートリアル リポジトリにアクセスします。
  2. サンプルデータを含む CSV ファイルを 1 つ選択し、ファイルをダウンロードします。
  3. 次に、Cloud Console の BigQuery に移動します。
  4. プロジェクトを選択します。
  5. [データセットを作成] をクリックします。
  6. [テーブルを作成] をクリックします。
  7. [アップロード] をクリックし、アップロードするファイルを選択します。
  8. テーブルに名前を付けて、[テーブルを作成] をクリックします。

手順 3: Data Catalog を有効にする

次に、Cloud DLP を使用してスキャンする BigQuery テーブルを含むプロジェクトの Data Catalog を有効にします。

Cloud Console を使用して Data Catalog を有効にするには:

  1. Data Catalog にアプリケーションを登録します

    Data Catalog にアプリケーションを登録する

  2. 登録ページの [プロジェクトの作成] プルダウン リストから、Data Catalog で使用するプロジェクトを選択します。この機能のみをテストする場合は、メニューの下部にある [プロジェクトを作成] を選択して新しいプロジェクトを作成します。
  3. プロジェクトを選択したら、[続行] をクリックします。

これで、プロジェクトで Data Catalog が有効になりました。

手順 4: Cloud DLP を有効にする

Data Catalog を有効にした同じプロジェクトで、Cloud DLP を有効にします。

Cloud Console を使用して Cloud DLP を有効にするには:

  1. Cloud DLP にアプリケーションを登録します

    Cloud DLP にアプリケーションを登録する

  2. 登録ページの [プロジェクトの作成] プルダウンリストから、前の手順で選択したものと同じプロジェクトを選択します。
  3. プロジェクトを選択したら、[続行] をクリックします。

これで、プロジェクトで Cloud DLP が有効になりました。

Cloud DLP 検査スキャンを構成して実行する

Cloud DLP 検査スキャンを構成して実行するには、Cloud Console または DLP API のいずれかを使用します。

Cloud Console

Cloud DLP を使用して BigQuery テーブルのスキャン ジョブを設定するには:

  1. Cloud Console で、Cloud DLP を開きます。

    Cloud DLP に移動

  2. [作成] メニューで [ジョブまたはジョブトリガー] を選択します。

    新しいジョブまたはジョブトリガーの作成メニューの選択のスクリーンショット

  3. Cloud DLP ジョブ情報を入力して、[続行] をクリックし、以下の各ステップを完了します。

    • ステップ 1: 入力データを選択では、[名前] フィールドに値を入力して、ジョブに名前を付けます。[ロケーション] で、[ストレージ タイプ] メニューから [BigQuery] を選択して、スキャンするテーブルの情報を入力します。[サンプリング] セクションは、データに対してサンプル スキャンを実行するように事前構成されています。大量のデータがある場合は、[行の制限] と [行の最大数] フィールドを調整してリソースを節約できます。詳細については、入力データの選択をご覧ください。

    • (省略可)ステップ 2: 検出を構成するでは、「infoTypes」と呼ばれる検索するデータのタイプを構成します。このチュートリアルでは、デフォルトの infoType が選択されたままにします。詳細については、検出の構成をご覧ください。

    • ステップ 3: アクションを追加するでは、[Data Catalog に保存] を有効にします。

    • (省略可)ステップ 4: スケジュールでは、このチュートリアルではスキャンを 1 回だけ実行するため、このメニューを [なし] のままにします。繰り返しスキャンのスケジュール設定の詳細については、スケジュール設定をご覧ください。

  4. [作成] をクリックします。ジョブはすぐに実行されます。

DLP API

このセクションでは、Cloud DLP スキャンジョブを構成して実行します。

ここで構成する検査ジョブでは、上記のステップ 2で説明した BigQuery データのサンプルか、独自の BigQuery データのどちらかをスキャンします。指定したジョブ構成は、スキャン結果を Data Catalog に保存するために Cloud DLP に指示する場所でもあります。

ステップ 1: プロジェクト ID をメモする

  1. Cloud Console に移動します。

    Cloud Console に移動

  2. [選択] をクリックします。

  3. [選択元] プルダウン リストで、Data Catalog を有効にした組織を選択します。

  4. [ID] で、スキャンするデータを含むプロジェクトのプロジェクト ID をコピーします。これは、前述のストレージ リポジトリの設定手順で説明したプロジェクトです。

  5. [名前] で、プロジェクトをクリックして選択します。

ステップ 2: API Explorer を開いてジョブを構成する

  1. dlpJobs.create メソッドのリファレンス ページで API Explorer に移動します。次からこの手順を利用できるようにするため、次のリンクを右クリックして新しいタブまたはウィンドウで開きます。

    API Explorer を開く

  2. [parent] ボックスに、次のように入力します。project-id は、前のステップでメモしたプロジェクト ID です。

    projects/project-id

    次に、以下の JSON をコピーします。API Explorer で [Request body] フィールドの内容を選択してから、JSON を貼り付けて内容を置き換えます。project-idbigquery-dataset-namebigquery-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 での検査スキャンの状態を確認する

スキャン リクエストを送信すると、コンテンツのスキャンがすぐに始まります。

Cloud Console

検査スキャンジョブのステータスを確認するには:

  1. Cloud Console で、Cloud DLP を開きます。

    Cloud DLP に移動

  2. [ジョブとジョブトリガー] タブをクリックしてから、[すべてのジョブ] をクリックします。

実行したばかりのジョブが、おそらくリストの先頭に表示されます。[State] 列で、そのジョブのステータスが [Done] になっていることを確認します。

ジョブの [ジョブ ID] をクリックすると、そのジョブの結果が表示されます。[ジョブの詳細] ページに表示される各 infoType 検出器の後に、コンテンツ内で見つかった一致の数が続きます。

DLP API

検査スキャンジョブのステータスを確認するには:

  1. 次のボタンをクリックして、dlpJobs.get メソッドのリファレンス ページで API Explorer に移動します。

    API Explorer を開く

  2. [name] ボックスに、スキャン リクエストに対する JSON レスポンスからのジョブの名前を、次の形式で入力します。

    projects/project-id/dlpJobs/job-id
    ジョブ ID は i-1234567890123456789 の形式です。

  3. リクエストを送信するには、[Execute] をクリックします。

ジョブが "DONE" であることをレスポンス JSON オブジェクトの "state" キーが示している場合、スキャンジョブは終了しています。

残りのレスポンス JSON を表示するには、ページを下にスクロールします。["result"] > ["infoTypeStats"] に表示されている情報の各種類に、対応する "count" が表示されているはずです。表示されていない場合、入力した JSON が正確であり、データへのパスまたは場所が正しいことを確認します。

スキャンジョブが完了したら、このガイドの次のセクションに進み、Security Command Center でスキャン結果を表示できます。

Cloud DLP でのスキャン結果を Data Catalog で表示する

検査スキャンジョブの結果を Data Catalog に送信するように Cloud DLP に指示したので、Data Catalog UI で自動的に作成されたタグとタグ テンプレートを表示できます。

  1. Cloud Console で [Data Catalog] ページに移動します。

    Data Catalog に移動

  2. 検査したテーブルを検索します。
  3. テーブルと一致する結果をクリックして、テーブルのメタデータを表示します。

次のスクリーンショットは、サンプルテーブルの Data Catalog メタデータ ビューを示しています。

Data Catalog の DLP の詳細。.

Cloud DLP データ検出

Cloud DLP からの結果は、スキャンしたテーブルの概要フォームに含まれます。この概要には、infoType の合計数と、日付とジョブ リソース ID を含む検査ジョブの概要データが含まれます。

検査されたすべての infoTypes が一覧表示されます。結果は 0 より大きい数で示されます。

クリーンアップ

このトピックで使用したリソースに対して Google Cloud アカウントに課金されないようにするには、サンプルデータを使用したか、独自データを使用したかに応じて、以下のうちのいずれかを行います。

プロジェクトの削除

課金を停止する最も簡単な方法は、このトピックで説明する手順用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. Cloud Console で、プロジェクト ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[プロジェクトの削除] をクリックします。 プロジェクト名の横にあるチェックボックスをオンにし、[プロジェクトの削除] をクリックします。
  3. ダイアログにプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

この方法でプロジェクトを削除すると、作成した Cloud DLP ジョブと Cloud Storage バケットも削除されます。次のセクションの手順に従う必要はありません。

Cloud DLP ジョブまたはジョブトリガーの削除

独自データをスキャンした場合は、作成した検査ジョブまたはジョブトリガーを削除します。

Cloud Console

  1. Cloud Console で、Cloud DLP を開きます。

    Cloud DLP に移動

  2. [ジョブとジョブトリガー] タブをクリックしてから、[ジョブトリガー] タブをクリックします。

  3. 削除するジョブトリガーの [操作] 列で、[その他の操作] メニュー(縦に並んだ 3 つの点で表示) をクリックし、[削除] をクリックします。

必要に応じて、実行したジョブの詳細を削除することもできます。[すべてのジョブ] タブをクリックし、削除するジョブの [操作] 列で、[その他の操作] メニュー(縦に並んだ 3 つの点で表示) をクリックし、[削除] をクリックします。

DLP API

  1. 次のボタンをクリックして、dlpJobs.delete メソッドのリファレンス ページで API Explorer に移動します。

    API Explorer を開く

  2. [name] ボックスに、スキャン リクエストへの JSON レスポンスのジョブ名を入力します。形式は次のとおりです。

    projects/project-id/dlpJobs/job-id
    ジョブ ID は i-1234567890123456789 の形式です。

追加のスキャンジョブを作成した場合や、ジョブを正常に削除したか確認が必要な場合、既存のすべてのジョブを一覧表示できます。

  1. 次のボタンをクリックして、dlpJobs.list メソッドのリファレンス ページで API Explorer に移動します。

    API Explorer を開く

  2. [parent] ボックスに、次の形式でプロジェクト ID を入力します。project-id は、プロジェクト ID です。

    projects/project-id

  3. [実行] をクリックします。

レスポンスにジョブが表示されていない場合は、すべてのジョブが削除されています。レスポンスにジョブが表示されている場合は、該当するジョブに対して前述の削除手順を繰り返します。

次のステップ