Cloud DLP スキャンの結果を Security Command Center に送信する

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

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

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

次の動画では、Security Command Center にスキャン結果を送信するように Cloud DLP を設定する方法について説明しています。設定手順の詳細については、このガイドで後述します。

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

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

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

費用

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

  • Cloud Data Loss Prevention(DLP)
  • Cloud Storage
  • BigQuery
  • Datastore

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

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

始める前に

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

  • 手順 1: Google Cloud Storage リポジトリを設定する
  • 手順 2: Cloud Identity and Access Management(Cloud IAM)のロールを設定する
  • 手順 3: Security Command Center を有効にする
  • 手順 4: Cloud DLP を有効にする
  • 手順 5: Security Command Center のセキュリティ ソースとして Cloud DLP を有効にする

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

手順 1: Google Cloud Storage リポジトリを設定する

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

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

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

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

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

「ダミー」のデータセットまたはテスト データセットをスキャンする場合は、まず請求先アカウントを設定してから、新しいプロジェクトを作成します。この手順を完了するには、Cloud IAM プロジェクト作成者のロールが必要です。詳しくは、Cloud IAM のロールの詳細をご覧ください。

  1. 請求先アカウントをまだ設定していない場合は、設定します。
    課金を有効にする方法について
  2. Cloud Console の [新しいプロジェクト] ページに移動します。
    [新しいプロジェクト] ページ
  3. [請求先アカウント] プルダウン リストで、プロジェクトの請求先となる請求先アカウントを選択します。
  4. [組織] プルダウン リストで、プロジェクトを作成する組織を選択します。
  5. [場所] プルダウン リストで、プロジェクトを作成する組織またはフォルダを選択します。

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

  1. GitHub の Cloud Functions チュートリアル リポジトリにアクセスします。
  2. [Clone or download] をクリックし、[Download ZIP] をクリックします。
  3. ダウンロードした ZIP ファイルを解凍します。
  4. Cloud Console の [ストレージ ブラウザ] ページに移動します。
    Cloud Storage に移動
  5. [バケットを作成] をクリックします。
  6. [バケットの作成] ページでバケットに一意の名前を付けて、[作成] をクリックします。
  7. [バケットの詳細] ページで、[フォルダをアップロード] をクリックします。
  8. 先ほど解凍した dlp-cloud-functions-tutorials-master フォルダに移動して開き、sample_data フォルダを選択します。[アップロード] をクリックして、フォルダのコンテンツを Cloud Storage にアップロードします。

    新しい Cloud Storage バケット

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

手順 2: Cloud IAM のロールを設定する

Cloud DLP を使用してスキャン結果を Security Command Center に送信するには、セキュリティ センター管理者DLP ジョブ編集者の Cloud IAM ロールが必要です。このセクションでは、ロールを追加する方法について説明します。このセクションを完了するには、組織管理者の Cloud IAM ロールが必要です。

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

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

  2. [メンバー] で、ユーザー名の横にある [編集] をクリックします。
  3. [権限の編集] パネルで、[別のロールを追加] をクリックします。
  4. [ロールを選択] プルダウン リストで、[Security Command Center] > [セキュリティ センター管理者] の順に選択します。
  5. 次に、同じプルダウン リストで [Cloud DLP] > [DLP ジョブ編集者] の順に選択し、[保存] をクリックします。

これで、組織の DLP ジョブ編集者とセキュリティ センター管理者のロールが付与されました。これらのロールにより、このトピックの残りの部分でタスクを完了できます。

手順 3: Security Command Center を有効にする

  1. Cloud Console の [Security Command Center] ページに移動します。
    [Security Command Center] に移動
  2. [組織] プルダウン リストで、Cloud DLP を有効にする組織を選択し、[選択] をクリックします。
  3. 表示される [アセット ディスカバリの有効化] ページで、[現在と将来のすべてのプロジェクト] を選択し、[有効にする] をクリックします。Cloud DLP がアセット ディスカバリを開始していることを示すメッセージが表示されます。

アセット ディスカバリが完了すると、サポートされている Google Cloud アセットが Cloud DLP に表示されます。アセット ディスカバリには数分かかることがあり、ページを更新してアセットを表示する必要がある場合もあります。

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

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

スキャンするプロジェクトに対して Cloud DLP を有効にします。プロジェクトは、Security Command Center を有効にした同じ組織内にある必要があります。Cloud Console を使用して Cloud DLP を有効にするには:

  1. Cloud Console ページに移動して、Cloud DLP にアプリケーションを登録します。

    [Cloud DLP へのアプリケーション登録] ページに移動

  2. [プロジェクトの作成] プルダウン リストで、このガイドの手順 1 で選択したプロジェクトを選択します。プロジェクトには、スキャンする Cloud Storage バケット、BigQuery テーブル、または Datastore の種類が含まれている必要があります。
  3. 使用するプロジェクトを選択したら、[続行] をクリックします。

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

手順 5: Security Command Center のセキュリティ ソースとして Cloud DLP を有効にする

Security Command Center のダッシュボードで Cloud DLP のスキャン結果を表示するには、Cloud DLP をセキュリティ ソースとして有効にします。

  1. Cloud Console の Security Command Center から [セキュリティ ソース] ページに移動します。
    [セキュリティ ソース] ページに移動
  2. セキュリティ ソースとして Cloud DLP を有効にする組織を選択します。
  3. [有効にする] で、[Cloud DLP データ検出] をクリックして有効にします。

Cloud DLP の検出結果は、Security Command Center ダッシュボードの [検出結果] ページに表示されます。Security Command Center のセキュリティ ソースの管理方法については、Security Command Center のドキュメントをご覧ください。

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

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

ここで構成する検査ジョブは、このページのストレージ リポジトリの設定手順ですでに説明したように Cloud Storage に保存されているサンプルデータをスキャンするか、Cloud Storage、Datastore、BigQuery に保存されている独自のデータをスキャンするかを Cloud DLP に指示します。指定したジョブ構成では、スキャン結果を Security Command Center に保存するように Cloud DLP に指示することもできます。

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

  1. Cloud Console に移動します。

    Cloud Console に移動

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

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

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

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

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

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

    API Explorer を開く

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

    projects/project-id

[Request body] フィールドの内容を、使用するデータの種類(Cloud Storage バケット内のサンプルデータ、Cloud Storage、Datastore、BigQuery に保存された独自のデータ)の 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 データ

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

datastore-kind は Datastore の種類の名前で置き換えます。また、namespace-idproject-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-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": "LOCATION"
        },
        {
          "name": "PHONE_NUMBER"
        }
      ],
      "includeQuote": true,
      "minLikelihood": "UNLIKELY",
      "limits":
      {
        "maxFindingsPerRequest": 100
      }
    },
    "actions":
    [
      {
        "publishSummaryToCscc":
        {
        }
      }
    ]
  }
}

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

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

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

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

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

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

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

  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 でスキャン結果を表示できます。

Security Command Center で Cloud DLP のスキャン結果を表示する

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

  1. Cloud Console の [Security Command Center] ページに移動します。
    [Security Command Center] ページに移動
  2. 先ほど Security Command Center を有効にした組織を選択します。

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

Cloud SCC での DLP の詳細

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

知見の概要

検出結果が Cloud DLP に送信された場合は、ソースの [Cloud DLP データ検出] に行が表示されます。その行が [知見の概要] に表示されない場合、Cloud DLP は Security Command Center に結果を送信していません。

Cloud DLP データ検出

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

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

CSCC の DLP の詳細

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

CSCC の DLP の詳細

クリーンアップ

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

プロジェクトの削除

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

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

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

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

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

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

Cloud DLP ジョブの削除

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

  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 を次の形式で入力します。

    projects/project-id

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

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

Cloud Storage バケットの削除

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

  1. Cloud Storage ブラウザを開く

    Cloud Storage を開く

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

次のステップ