Cloud DLP のスキャン結果を Cloud SCC に送信

このガイドでは、Cloud Data Loss Prevention(Cloud DLP)を使用して特定の Google Cloud Platform(GCP)リソースをスキャンし、そのデータを Cloud Security Command Center(Cloud SCC)に送信する方法について説明します。

Cloud SCC を使用すると、データを収集して脅威を特定し、ビジネス上の損害や損失に発展する前に処理できます。Cloud SCC では、一元化された 1 つのダッシュボードから、複数のセキュリティ関連のアクションを行えます。

Cloud Data Loss Prevention は Cloud SCC とネイティブに統合されています。Cloud DLP アクションを使用して GCP ストレージ リポジトリの機密データをスキャンすると、結果が Cloud SCC ダッシュボードに直接送信され、他のセキュリティ指標の横に表示されます。

このガイドを完了すると、次のことができるようになります。

  • Cloud SCC と Cloud DLP を有効にする。
  • GCP ストレージ リポジトリ(Cloud Storage バケット、BigQuery テーブル、Cloud Datastore のいずれか)をスキャンするように Cloud DLP を設定する。
  • スキャン結果を Cloud SCC に送信するように Cloud DLP スキャンを構成する。

Cloud SCC の詳細については、Cloud Security Command Center のドキュメントをご覧ください。

料金

このトピックの手順では、以下を含む GCP の課金対象となるコンポーネントを使用しています。

  • Cloud Data Loss Prevention
  • Cloud Storage
  • BigQuery
  • Cloud Datastore

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

GCP を初めて使用される方は、無料トライアルをご利用いただけます。

始める前に

Cloud DLP のスキャン結果を Cloud SCC に送信する前に、次のコンポーネントを設定する必要があります。

  • 手順 1: GCP ストレージ リポジトリを設定する
  • 手順 2: Cloud Identity and Access Management(Cloud IAM)の役割を設定する
  • 手順 3: Cloud SCC を有効にする
  • 手順 4: Cloud DLP を有効にする

こうしたコンポーネントを設定する手順については、次のセクションで説明します。

手順 1: GCP ストレージ リポジトリを設定する

独自の GCP ストレージ リポジトリとサンプル リポジトリのどちらをスキャンするかを選択します。このトピックでは、両方のシナリオについて説明します。

独自のデータをスキャンする

既存の独自の Cloud Storage バケット、BigQuery テーブル、または Cloud Datastore をスキャンする場合は、まずリポジトリがあるプロジェクトを開きます。以下の手順では、このプロジェクトとその組織に対して Cloud SCC と Cloud DLP の両方を有効にします。

使用するプロジェクトを開いたら、Cloud IAM の役割の設定に進みます。

サンプルデータをスキャンする

「ダミー」データセットまたはテスト用データセットをスキャンする場合は、まず新しいプロジェクトを作成します。

  1. GCP Console で、ウィンドウの上部にあるポップアップ メニューをクリックします。
  2. [選択元 [ORG_NAME]] ウィンドウで、[新しいプロジェクト] をクリックします。
  3. [新しいプロジェクト] 画面で、[場所] ボックスに正しい組織が表示されていることを確認します。表示されていない場合は、変更します。
  4. [作成] をクリックします。

プロジェクトに対して課金が有効になっていることを確認します。

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

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

  1. GitHub の Cloud Functions チュートリアル リポジトリにアクセスします。
  2. 緑色の [Clone or download] ボタンをクリックし、[Download ZIP] をクリックします。
  3. ダウンロードした ZIP ファイルを解凍します。
  4. Google Cloud Platform Console で Cloud Storage に移動します。

    Cloud Storage に移動

    このページで Cloud Storage バケットを構成できます。

  5. Cloud Storage ブラウザで [バケットを作成] をクリックします。
  6. [バケットの作成] ページでバケットに一意の名前を付けて、[作成] をクリックします。
  7. バケットを作成したら、[バケットの詳細] ページで [フォルダをアップロード] をクリックします。
  8. 先に解凍した dlp-cloud-functions-tutorials-master フォルダに移動してそれを開き、sample_data フォルダを選択します。[アップロード] をクリックして、フォルダのコンテンツを Cloud Storage にアップロードします。

    新しい Cloud Storage バケット

後で使用できるように、Cloud Storage バケットに付けた名前をメモしておきます。ファイルのアップロードが完了したら、次の手順に進みます。

手順 2: Cloud IAM の役割を設定する

Cloud DLP を使用してスキャン結果を Cloud SCC に送信する前に、いくつかの Cloud IAM の役割を有効にする必要があります。このセクションでは、組織管理者という Cloud IAM の役割が必要です。

  1. GCP Console の [IAM と管理] ページに移動します。

    [IAM と管理] ページに移動

  2. [メンバー] 列で自分のユーザー名を見つけ、編集アイコン 編集アイコン をクリックします。

  3. [権限の編集] パネルで、[別の役割を追加] をクリックします。
  4. [役割を選択] プルダウン リストで、[セキュリティ コマンド センター] > [セキュリティ センター管理者] の順に選択します。
  5. 次に、同じプルダウン リストで [Cloud DLP] > [DLP ジョブ編集者] の順に選択し、[保存] をクリックします。

これで、組織の Cloud DLP ジョブ編集者と Cloud SCC 管理者の役割が割り当てられました。これらの役割により、このトピックの残りの部分でタスクを完了できます。

手順 3: Cloud SCC ダッシュボードを有効にする

  1. GCP Console の Cloud Security Command Center Marketplace ページに移動します。

    Cloud Security Command Center Marketplace ページに移動

  2. Cloud SCC を有効にする組織が選択されていない場合は、ポップアップ メニューから選択します。
  3. [現在と将来のすべてのプロジェクト] で、[有効にする] をクリックします。Cloud SCC がアセット ディスカバリを開始することを示すメッセージが表示されます。

GCP Console の Cloud SCC ページが自動的に読み込まれ、このページに、サポートされている GCP アセットが表示されます。

Cloud SCC の有効化の詳細については、Cloud SCC のドキュメントをご覧ください。

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

スキャンするプロジェクトに対して Cloud DLP を有効にします。プロジェクトは、Cloud SCC を有効にしたのと同じ組織内に存在する必要があります。GCP Console を使用して Cloud DLP を有効にするには、次の操作を行います。

  1. GCP Console の [リソースの管理] ページに移動して、プロジェクトを選択します。

    [リソースの管理] ページに移動

    ここで選択または作成するプロジェクトには、スキャン対象の Cloud Storage バケット、BigQuery テーブル、または Cloud Datastore を含める必要があります。

  2. 次のボタンをクリックして Cloud DLP を有効にします。

    Cloud DLP を有効にする

アプリケーションの登録先としてプロジェクトを選択するように求められるプロンプトが表示されたら、メニュー内からプロジェクトを選択し、[続行] をクリックします。これで Cloud DLP が有効になりました。

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

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

ここで構成する検査ジョブでは、(前述のように)Cloud Storage に保存されているサンプルデータをスキャンするか、Cloud Storage、Cloud Datastore、BigQuery などに保存されている独自のデータをスキャンするかを Cloud DLP に指示します。指定するジョブ構成では、スキャン結果を Cloud SCC に保存するように Cloud DLP に指示することもできます。

手順 1: プロジェクト ID をメモする

  1. GCP Console で、ウィンドウの上部にあるポップアップ メニューをクリックします。
  2. [選択元 [ORG_NAME]] ウィンドウで、ウィンドウの上部にあるメニューの組織名が Cloud SCC を有効にした組織名であることを確認します。
  3. サンプルデータがある Cloud Storage バケットの格納先であるプロジェクトを見つけます。後で参照できるように、プロジェクト ID をメモしておきます。
  4. プロジェクト名をクリックして開きます。

手順 2: API Explorer を開いてジョブを構成する

  1. Google APIs Explorer を開きます。
  2. ページの上部にある検索ボックスに、「dlp.projects.dlpJobs.create」と入力します。
  3. 表示される [Methods] リストで、dlp.projects.dlpJobs.create をクリックします。
  4. 表示されるメソッドページで、[Authorize requests using OAuth 2.0] スイッチをクリックします。
  5. 表示される [Select OAuth 2.0 scopes] ダイアログで [Authorize] をクリックして、Cloud DLP へのデフォルトのアクセスレベルを承認します。プロンプトが表示されたら、アカウントにログインします。
  6. [parent] ボックスに、「projects/[PROJECT_ID]」と入力します。ここで、[PROJECT_ID] は上記の手順 1 でメモしておいたプロジェクト ID です。
  7. [fields] ボックスは空白のままにします。
  8. [Request body] ボックスをクリックします。ボックスの右側にある矢印をクリックします。表示されるプルダウン リストで、[Freeform editor] をクリックします。

Cloud Storage バケット内のサンプルデータや、Cloud Storage、Cloud Datastore、BigQuery に保存されている独自のデータなど、使用するデータの種類に応じて [Request body] フィールドの内容を次の JSON コードに置き換えます。

サンプルデータ

前述のようにサンプルデータを保存するための Cloud Storage バケットを作成した場合は、次の JSON コードをコピーして [Request body] フィールドに貼り付けます。[BUCKET_NAME] は、Cloud Storage バケットの名前に置き換えます。

{
  "inspectJob":{
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://[BUCKET_NAME]/**"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

Cloud Storage データ

独自の Cloud Storage バケットをスキャンするには、次の JSON コードをコピーして [Request body] フィールドに貼り付けます。

[PATH_NAME] は、スキャンする場所のパスに置き換えます。スキャンを再帰的に行うには、パスの末尾に 2 つのアスタリスクを付けます(gs://path_to_files/**)。特定のディレクトリだけをスキャンするには、パスの末尾に 1 つのアスタリスクを付けます(gs://path_to_files/*)。

{
  "inspectJob":{
    "storageConfig":{
      "cloudStorageOptions":{
        "fileSet":{
          "url":"gs://[PATH_NAME]"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

利用可能なスキャン オプションの詳細については、ストレージとデータベースに含まれる機密データの検査をご覧ください。

Datastore データ

Cloud Datastore に保存されている独自のデータをスキャンするには、次の JSON コードをコピーして [Request body] フィールドに貼り付けます。

[DATASTORE_KIND] は、Cloud Datastore の種類の名前に置き換えます。[NAMESPACE_ID][PROJECT_ID] については、それぞれを名前空間 ID とプロジェクト ID に置き換えるか、"partitionID" 項目と一緒に削除することもできます。

{
  "inspectJob":{
    "storageConfig":{
      "datastoreOptions":{
        "kind":{
          "name":"[DATASTORE_KIND]"
        },
        "partitionId":{
          "namespaceId":"[NAMESPACE_ID]",
          "projectId":"[PROJECT_ID]"
        }
      }
    },
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"EMAIL_ADDRESS"
        },
        {
          "name":"PERSON_NAME"
        },
        {
          "name": "LOCATION"
        },
        {
          "name":"PHONE_NUMBER"
        }
      ],
      "includeQuote":true,
      "minLikelihood":"UNLIKELY",
      "limits":{
        "maxFindingsPerRequest":100
      }
    },
    "actions":[
      {
        "publishSummaryToCscc":{

        }
      }
    ]
  }
}

利用可能なスキャン オプションの詳細については、ストレージとデータベースに含まれる機密データの検査をご覧ください。

BigQuery データ

独自の BigQuery テーブルをスキャンするには、次の JSON コードをコピーして [Request body] フィールドに貼り付けます。

[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": "LOCATION"
        },
        {
          "name": "PHONE_NUMBER"
        }
      ],
      "includeQuote": true,
      "minLikelihood": "UNLIKELY",
      "limits":
      {
        "maxFindingsPerRequest": 100
      }
    },
    "actions":
    [
      {
        "publishSummaryToCscc":
        {
        }
      }
    ]
  }
}

利用可能なスキャン オプションの詳細については、ストレージとデータベースに含まれる機密データの検査をご覧ください。

手順 3: スキャンジョブの開始をリクエストする

前述の手順に従ってジョブを構成したら、[Execute] をクリックしてリクエストを送信します。リクエストが成功すると、リクエストの下にレスポンスが表示されます。レスポンスの内容には、成功コードと、作成したばかりの Cloud DLP ジョブのステータスを示す JSON オブジェクトが含まれます。

Cloud DLP での検査スキャンの状態を確認する

スキャン リクエストへのレスポンスには、検査スキャンジョブのジョブ ID("name" キー)と検査スキャンジョブの現在の状態("state" キー)が含まれています。リクエストを送信したばかりなので、この時点でのジョブの状態は "PENDING" です。

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

検査スキャンジョブの状態を確認するには、別のブラウザタブを開いて、もう一度 Google API Explorer を開きます。検索ボックスに「dlp.projects.dlpJobs.get」と入力し、dlp.projects.dlpJobs.get メソッドをクリックします。メソッドページで、次の操作を行います。

  1. [Authorize requests using OAuth 2.0] スイッチが [ON] になっていることを確認します。そうでない場合は、スイッチをクリックして Cloud DLP へのデフォルトのアクセスレベルを承認します。
  2. [name] ボックスに、スキャン リクエストへの JSON レスポンスのジョブ名を入力します。形式は次のとおりです。
    projects/[PROJECT_ID]/dlpJobs/[JOB_ID]
    ジョブ ID の形式は i-1234567890123456789 です。
  3. リクエストを送信するには、[Execute] をクリックします。

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

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

スキャンジョブが完了したら、このガイドの「Cloud Security Command Center」セクションに進めます。

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

検査スキャンジョブの結果を Cloud SCC に送信するように Cloud DLP に指示したので、Cloud SCC ダッシュボードでスキャンの概要を表示できるようになりました。

Cloud SCC メイン ダッシュボードの下に表示されているスクリーンショットには、Cloud DLP でスキャンされたデータを表示する 2 枚のカード、[知見の概要] と [Cloud DLP データ検出] が表示されています。

CSCC の DLP の詳細

LOCATION infoType は表示されていません。これは、Cloud DLP で LOCATION infoType に一致するものがなかったためです。Cloud DLP での検出結果は集計されて [知見の概要] で他の図と一緒に表示され、[Cloud DLP データ検出] で情報の種類別に表示されます。

知見の概要

検出結果が Cloud DLP に送信された場合は、ソースの [Cloud DLP データ検出] に行が表示されます。[知見の概要] に行が表示されない場合は、Cloud DLP から Cloud SCC に送信された検出結果はありません。

Cloud DLP データ検出

スキャンされたデータと一致した infoTypes は、[知見] 列に表示されます。[] 列に表示される数は、infoType と一致したデータを検出したスキャン回数に対応しています。ジョブで複数のソースをスキャンしている場合、この数にスキャン対象の各ソースが含まれることがあります。

特定のカテゴリの個々の検出結果を表示するには、行をクリックします(例: EMAIL_ADDRESS)。次のスクリーンショットに示すように、1 つ以上の EMAIL_ADDRESS が検出された各スキャンの一覧が [検出] タブで表示されます。

CSCC の DLP の詳細

特定の検出結果に関する詳細を表示するには、EMAIL_ADDRESS 行のいずれかをクリックします。次のような詳細ページが表示されます。

CSCC の DLP の詳細

クリーンアップ

このトピックで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

プロジェクトの削除

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

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

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

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

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

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

Cloud DLP ジョブの削除

独自のデータをスキャンした場合は、作成した検査スキャンジョブを削除するだけで済みます。

  1. Google APIs Explorer を開きます。検索ボックスに「dlp.projects.dlpJobs.delete」と入力し、[dlp.projects.dlpJobs.delete] メソッドをクリックします。
  2. メソッドページで、[Authorize requests using OAuth 2.0] スイッチが [ON] になっていることを確認します。そうでない場合は、スイッチをクリックして Cloud DLP へのデフォルトのアクセスレベルを承認します。
  3. [name] ボックスに、スキャン リクエストへの JSON レスポンスのジョブ名を入力します。形式は次のとおりです。
    projects/[PROJECT_ID]/dlpJobs/[JOB_ID]
    ジョブ ID の形式は i-1234567890123456789 です。

追加のスキャンジョブを作成した場合、またはジョブを正常に削除したことを確認する場合は、既存のすべてのジョブを一覧表示できます。戻る矢印をクリックし、[dlp.projects.dlpJobs.list] メソッドをクリックします。[parent] ボックスに、プロジェクト ID を次の形式で入力します。

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

Cloud Storage バケットの削除

サンプルデータを保持するために新しい Cloud Storage バケットを作成した場合は、そのバケットを削除します。

  1. Cloud Storage ブラウザを開きます。

    Cloud Storage を開く

  2. Cloud Storage ブラウザで、作成したバケットの名前の横に表示されているチェックボックスをオンにして、[削除] をクリックします。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Data Loss Prevention