単一プロジェクトの BigQuery データのプロファイリング

このページでは、BigQuery データ検出をプロジェクト レベルで構成する方法について説明します。組織またはフォルダをプロファイリングする場合は、組織またはフォルダの BigQuery データのプロファイリングをご覧ください。

検出サービスの詳細については、データ プロファイルをご覧ください。

プロファイリングを開始するには、スキャン構成を作成します。

準備

  1. プロジェクトで Cloud Data Loss Prevention API が有効になっていることを確認します。

    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the required API.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    6. Make sure that billing is enabled for your Google Cloud project.

    7. Enable the required API.

      Enable the API

  2. プロジェクトレベルでデータ プロファイルを構成するために必要な IAM 権限があることを確認します。

  3. プロファイリングするデータがある各リージョンに検査テンプレートが必要です。複数のリージョンで 1 つのテンプレートを使用する場合は、global リージョンに保存されているテンプレートを使用します。組織のポリシーで global 検査テンプレートの作成が妨げられている場合、リージョンごとに専用の検査テンプレートを設定する必要があります。詳細については、データ所在地に関する検討事項をご覧ください。

    このタスクによって、global リージョンでのみ検査テンプレートを作成できます。1 つ以上のリージョン専用の検査テンプレートが必要な場合は、このタスクを実行する前にそれらのテンプレートを作成する必要があります。

  4. 機密データの保護が新しいテーブルをプロファイリングする場合など、特定のイベントが発生したときに Pub/Sub に通知を送信するように機密データの保護を構成できます。この機能を使用するには、まず Pub/Sub トピックを作成する必要があります。

スキャン構成を作成する

  1. [スキャン構成の作成] ページに移動します。

    [スキャン構成の作成] に移動

  2. プロジェクトに移動します。ツールバーで、プロジェクト セレクタをクリックしてプロジェクトを選択します。

以降のセクションでは、[スキャン構成の作成] ページの手順について詳しく説明します。各セクションの最後で、[続行] をクリックします。

検出タイプの選択

[BigQuery] を選択します。

スコープの選択

次のいずれかを行います。

  • テストモードで単一テーブルをスキャンする場合は、[1 つのテーブルをスキャン(テストモード)] を選択します。

    利用可能な空きテーブルのスキャン回数が表示されます。空きテーブルのスキャンは、サイズが 1 TB 以下のテーブルにのみ適用されます。テーブルレベルのスキャン構成はテーブルごとに 1 つのみです。詳細については、テストモードでテーブルをプロファイリングするをご覧ください。

    プロファイリングするテーブルの詳細を入力します。

  • 標準のプロジェクト レベルのプロファイリングを実行する場合は、[プロジェクト全体をスキャン] を選択します。

スケジュールを管理

デフォルトのプロファイリング頻度がニーズを満たしている場合は、[スキャン構成の作成] ページのこのセクションをスキップできます。このセクションは、すべてのデータまたはデータの特定サブセットのプロファイリング頻度を細かく調整する場合に役立ちます。また、特定のテーブルをプロファイリングしない場合や、1 回プロファイリングした後に再度プロファイリングしない場合にも役立ちます。

このセクションでは、フィルタを作成して、目的のデータのサブセットを指定します。これらのサブセットでは、Sensitive Data Protection がテーブルをプロファイリングするかどうか、およびその頻度を定義します。ここでは、テーブルを再プロファイリングすることを必要とする変更の種類も指定します。最後に、Sensitive Data Protection がプロファイリングを開始する前に、サブセット内の各テーブルが満たす必要がある条件を指定します。

プロファイリングの頻度を詳細に調整するには、次の手順を行います。

  1. [スケジュールを追加] をクリックします。
  2. [フィルタ] セクションで、テーブルがスケジュールのスコープに含まれる 1 つ以上のフィルタを定義します。

    次のうち少なくとも 1 つを指定します。

    • 1 つ以上のプロジェクトを指定するプロジェクト ID または正規表現。
    • 1 つ以上のデータセットを指定するデータセット ID または正規表現。
    • 1 つ以上のテーブルを指定するテーブル ID または正規表現。

    正規表現は RE2 構文に基づく必要があります。

    たとえば、データセット内のすべてのテーブルをフィルタに含めるには、そのデータセットの ID を指定し、他の 2 つのフィールドを空白のままにします。

    さらにフィルタを追加する場合は、[フィルタを追加] をクリックし、前述の手順を繰り返します。

  3. [頻度] をクリックします。

  4. [頻度] セクションで、フィルタで定義したテーブルを Sensitive Data Protection でプロファイリングするかどうかを指定します。プロファイリングする場合はその頻度も指定します。

    • テーブルをプロファイリングしない場合は、[テーブルをプロファイリング] をオフにします。

    • 少なくとも 1 回テーブルをプロファイリングする場合は、[テーブルをプロファイリング] をオンのままにします。

      このセクションの以降のフィールドでは、システムがデータを再プロファイリングするかどうか、および再プロファイリング操作をトリガーするイベントを指定します。詳細については、データ プロファイル生成の頻度をご覧ください。

      1. [スキーマが変更された場合] で、選択したテーブルに最後にプロファイリングが行われた後にスキーマが変更された場合に、Sensitive Data Protection が確認を行う頻度を指定します。スキーマが変更されたテーブルのみが再プロファイリングされます。
      2. [スキーマの変更の種類] では、再プロファイリング操作をトリガーするスキーマの変更の種類を指定します。次のいずれかを選択します。
        • 新しい列: 新しい列を取得したテーブルを再プロファイリングします。
        • 削除された列: 列が削除されたテーブルを再プロファイリングします。

        たとえば、毎日新しい列を取得するテーブルがあり、それらの内容を毎回プロファイリングする必要があるとします。[スキーマの変更時] を [毎日再プロファイリング] に設定し、[スキーマ変更の種類] を [新しい列] に設定します。

      3. [テーブルが変更された時間] で、選択したテーブルが最後にプロファイリングされた後に変更があったかどうかを Sensitive Data Protection が確認する頻度を指定します。変更されたテーブルのみが再プロファイリングされます。テーブル変更の例としては、行の削除やスキーマの変更があります。

        [スキーマの変更時] フィールドで設定した値と同じ値か、それよりも小さい値を選択する必要があります。

      4. [検査テンプレートの変更] で、関連する検査テンプレートが更新されたときにデータを再プロファイリングするか、再プロファイリングする場合は、その頻度も指定します。

        検査テンプレートの変更は、次のいずれかが発生すると検出されます。

        • スキャン構成内の検査テンプレートの名前が変更されます。
        • 検査テンプレートの updateTime が変更されます。

      5. たとえば、us-west1 リージョンの検査テンプレートを設定して、その検査テンプレートを更新した場合、us-west1 リージョン内のデータのみが再プロファイリングされます。ただし、その検査テンプレートを削除した場合は、再プロファイリングに使用する検査テンプレートがないため、us-west1 のデータは再プロファイリングされません。

  5. [条件] をクリックします。

  6. [条件] セクションで、機密データの保護でプロファイリングを行う前に、フィルタで定義されたテーブルが満たす必要がある条件を指定します。最小条件時間条件を設定した場合、機密データの保護は両方のタイプの条件を満たすテーブルのみをプロファイリングします。

    • 最小条件: これらの条件は、テーブルの行数が十分な数に達するまで、またはある年齢に達するまで、プロファイリングが遅延することを必要とする場合に活用できます。適用する条件を有効にし、最小行数または期間を指定します。
    • 時間条件: この条件は、以前のテーブルをプロファイリングしない場合に便利です。時間条件をオンにして、日時を選択します。その日付以前に作成されたテーブルは、プロファイリングから除外されます。

    次の構成があるとします。

    • 最小条件

      • 最小行数: 10 行
      • 最小期間: 24 時間
    • 時間条件

      • タイムスタンプ: 2022 年 5 月 4 日午後 11 時 59 分

    この場合、機密データの保護は、2022 年 5 月 4 日午後 11 時 59 分以前に作成されたテーブルを除外します。この日時の後に作成されたテーブルのうち、10 行または 24 時間以上経過したテーブルのみが機密データの保護によってプロファイリングされます。

  7. [プロファイリングするテーブル] セクションで、プロファイリングするテーブルの種類に応じて、次のいずれかを選択します。

    • すべてのテーブルをプロファイリングする: Sensitive Data Protection がフィルタと条件に一致するすべてのタイプのテーブルをプロファイリングする場合は、このオプションを選択します。

      サポートされていないテーブルタイプの場合、機密データの保護は部分的に入力されたプロファイルのみを生成します。このようなプロファイルには、関連するテーブルがサポートされていないことを示すエラーが示されます。エラー メッセージにもかかわらずプロファイルの一部を表示する場合は、このオプションを選択します。

      機密データの保護によって新しいテーブルタイプのサポートが追加されると、次回の予定実行時にそのタイプのテーブルが完全にプロファイリングされます。

    • サポートされるテーブルをプロファイリングする: Sensitive Data Protection が、フィルタと条件に一致する、サポートされるテーブルのみをプロファイリングする場合は、このオプションを選択します。サポートされていないテーブルには部分的なプロファイルはありません。

    • 特定のテーブルタイプをプロファイリングする: Sensitive Data Protection が、選択したテーブルタイプのみをプロファイリングする場合は、このオプションを選択します。表示されたリストで、1 つ以上のタイプを選択します。

      機密データの保護で新しいテーブルタイプのサポートが追加されても、そのタイプのテーブルは自動的にプロファイリングされません。新しくサポートされているテーブルタイプをプロファイリングするには、スキャン構成を編集してそのタイプを選択する必要があります。

    オプションを選択しない場合、機密データの保護は BigQuery テーブルのみをプロファイリングし、サポートされていないテーブルに対してエラーを表示します。

    データ プロファイリングの料金は、プロファイリングされるテーブルのタイプによって異なります。詳しくは、データ プロファイリングの料金をご覧ください。

  8. [完了] をクリックします。

  9. さらにスケジュールを追加する場合は、[スケジュールを追加] をクリックして前の手順を繰り返します。

  10. 優先度に従ってスケジュールを並べ替えるには、 上矢印と 下矢印を使用します。たとえば、2 つの異なるスケジュールのフィルタがテーブル A と一致する場合、優先度リストでより高位のスケジュールが優先されます。

    リストの最後のスケジュールには、常に [デフォルトのスケジュール] というラベルが付加されます。このデフォルト スケジュールは、作成したスケジュールのいずれとも一致しないプロジェクト内のテーブルに対応します。このデフォルト スケジュールは、システムのデフォルト プロファイリング頻度に沿って実行されます。

  11. デフォルトのスケジュールを調整する場合は、[ スケジュールを編集] をクリックして、必要に応じて設定を調整します。

検査テンプレートの選択

検査構成の指定方法に応じて、次のいずれかのオプションを選択します。どのオプションを選択しても、データが保存されているリージョンで Sensitive Data Protection がデータをスキャンします。つまり、データは元のリージョンから離れません。

オプション 1: 検査テンプレートを作成する

global リージョンに新しい検査テンプレートを作成する場合は、このオプションを選択します。

  1. [新しい検査テンプレートを作成] をクリックします。
  2. 省略可: infoType のデフォルトの選択を変更するには、[infoType を管理] をクリックします。

    このセクションで説明されている組み込みとカスタムの infoType を管理する方法について詳しくは、Google Cloud コンソールを使用して infoType を管理するをご覧ください。

    続行するには、少なくとも 1 つの infoType が選択されている必要があります。

  3. 省略可: ルールセットを追加して信頼度のしきい値を設定し、検査テンプレートをさらに構成します。詳細については、検出の構成をご覧ください。

    機密データの保護でスキャン構成を作成するときに、この新しい検査テンプレートが global リージョンに保存されます。

オプション 2: 既存の検査テンプレートを使用する

使用したい既存の検査テンプレートがある場合は、このオプションを選択します。

  1. [既存の検査テンプレートを選択] をクリックします。

  2. 使用する検査テンプレートの完全なリソース名を入力します。[リージョン] フィールドには、検査テンプレートが保存されているリージョンの名前が自動入力されます。

    入力する検査テンプレートは、プロファイリングするデータと同じリージョンに存在する必要があります。データ所在地を考慮するため、機密データの保護は、それ自体のリージョン外の検査テンプレートを使用しません。

    検査テンプレートの完全なリソース名を確認する手順は次のとおりです。

    1. 検査テンプレート リストに移動します。このページは別のタブで開きます。

      検査テンプレートに移動

    2. 使用する検査テンプレートを含むプロジェクトに切り替えます。

    3. [テンプレート] タブで、使用するテンプレートのテンプレート ID をクリックします。

    4. 開いたページで、テンプレートの完全なリソース名をコピーします。完全なリソース名の形式は次のとおりです。

      projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID
    5. [スキャン構成の作成] ページに戻り、[テンプレート名] フィールドにテンプレートの完全なリソース名を貼り付けます。

  3. 別のリージョンにデータがあり、そのリージョンに使用する検査テンプレートがある場合は、次の手順を行います。

    1. [検査テンプレートを追加] をクリックします。
    2. 検査テンプレートの完全なリソース名を入力します。

    専用の検査テンプレートがあるリージョンごとに、前述の手順を繰り返します。

  4. 省略可: global リージョンに保存されている検査テンプレートを追加します。機密データの保護では、専用の検査テンプレートがないリージョンのデータに、このテンプレートが自動的に使用されます。

アクションの追加

次のセクションでは、データ プロファイルを生成した後に機密データの保護で行うアクションを指定します。

他の Google Cloud サービスでのアクションの構成に対する課金については、データ プロファイルのエクスポートの料金をご覧ください。

Security Command Center に公開

このアクションにより、テーブルデータ プロファイルの計算されたデータのリスクと機密性レベルを Security Command Center に送信できます。

Security Command Center は、脆弱性と脅威の報告を一元的に行う Google Cloud のサービスです。 Security Command Center での脆弱性と脅威の検出結果に対するレスポンス プランの優先順位付けと開発を行う際に、データ プロファイルの分析情報を使用できます。

このアクションを使用する前に、Security Command Center を組織レベルで有効にする必要があります。組織レベルで Security Command Center を有効にすると、統合サービス(Sensitive Data Protection など)の検出結果のフローが有効になります。Sensitive Data Protection は、Security Command Center スタンダードとプレミアムの両方で機能します。

Security Command Center が組織レベルで有効になっていない場合、機密データの保護の検出結果は Security Command Center に表示されません。詳細については、Security Command Center の有効化レベルを確認するをご覧ください。

データ プロファイルの結果を Security Command Center に送信するには、[Security Command Center に公開] オプションがオンになっていることを確認します。

詳細については、Security Command Center にデータ プロファイルを公開するをご覧ください。

データ プロファイルのコピーを BigQuery に保存する

[データ プロファイルのコピーを BigQuery に保存する] を有効にすると、生成された全プロファイルの保存済みコピーまたは履歴を保持できます。これは、監査レポートの作成やデータ プロファイルの可視化に役立ちます。この情報は他のシステムに読み込むこともできます。

また、このオプションを使用すると、データが配置されているリージョンに関係なく、すべてのデータ プロファイルを 1 つのビューで表示できます。このオプションを無効にしても、ダッシュボードにデータ プロファイルを表示できます。ただし、ダッシュボードで一度に 1 つのリージョンを選択すると、選択したリージョンのデータ プロファイルのみが表示されます。

データ プロファイルのコピーを BigQuery テーブルにエクスポートするには、次の手順を行います。

  1. [データ プロファイルのコピーを BigQuery に保存する] を有効にします。

  2. データ プロファイルを保存する BigQuery テーブルの詳細を入力します。

    • [プロジェクト ID] に、データ プロファイルをエクスポートする既存のプロジェクトの ID を入力します。

    • [データセット ID] に、データ プロファイルをエクスポートするプロジェクト内にある既存のデータセット名を入力します。

    • [テーブル ID] に、データ プロファイルをエクスポートする BigQuery テーブルの名前を入力します。このテーブルを作成していない場合は、指定した名前を使用して、機密データの保護によって自動的に作成されます。

このオプションを有効にした時点から、機密データの保護はプロファイルのエクスポートを開始します。エクスポートを有効にする前に生成されたプロファイルは、BigQuery に保存されません。

Pub/Sub に公開

[Pub/Sub に公開] を有効にすると、プロファイリング結果に基づいて、プログラムによるアクションを実行できます。Pub/Sub 通知を使用して、重大なデータリスクや機密性が高い検出結果を把握し、修正するワークフローを開発できます。

Pub/Sub トピックに通知を送信する手順は次のとおりです。

  1. [Pub/Sub に公開] を有効にします。

    オプションのリストが表示されます:各オプションでは、Sensitive Data Protection によって Pub/Sub に通知を送信するイベントが記述されます。

  2. Pub/Sub 通知をトリガーするように設定するイベントを選択します。

    [プロファイルが更新されるたびに Pub/Sub 通知を送信する] を選択した場合、以下のテーブルレベルの指標が変更されると機密データの保護で通知が送信されます。

    • データリスク
    • 機密性
    • 予測される infoType
    • その他の infoType
    • 公開
    • 暗号化
  3. 選択したイベントごとに、次の手順を行います。

    1. トピックの名前を入力します。名前は次の形式にする必要があります。

      projects/PROJECT_ID/topics/TOPIC_ID
      

      以下を置き換えます。

      • PROJECT_ID: Pub/Sub トピックに関連付けられたプロジェクトの ID。
      • TOPIC_ID: Pub/Sub トピックの ID。
    2. 通知にテーブル プロファイル全体を含めるか、プロファイリングされたテーブルの完全なリソース名のみを含めるかを指定します。

    3. 機密データの保護で通知が送信されるようにするために、満たす必要がある最小データのリスクと機密性レベルを設定します。

    4. データリスクと機密性条件の一方または両方のみを満たす必要があるかどうかを指定します。たとえば、AND を選択した場合、機密データの保護で通知が送信される前に、データリスクと機密性条件の両方が満たされる必要があります。

タグとして Dataplex に送信する

このアクションにより、データ プロファイルの分析情報に基づいて Dataplex でタグを作成できます。このアクションは、新しいプロファイルと更新されたプロファイルにのみ適用されます。更新されていない既存のプロファイルは、Dataplex に送信されません。

Dataplex は分散データを統合し、そのデータのデータ管理とガバナンスを自動化する Google Cloud サービスです。このアクションを有効にすると、データ プロファイルから収集された分析情報に従って、プロファイリングするテーブルが自動的に Dataplex でタグ付けされます。組織とプロジェクトで特定のタグ値を持つテーブルを検索できます。

データ プロファイルを Dataplex に送信するには、[タグとして Dataplex に送信する] オプションがオンになっていることを確認してください。

詳細については、データ プロファイルの分析情報に基づいて Dataplex でテーブルにタグ付けするをご覧ください。

構成を保存するロケーションの設定

[リソース ロケーション] リストをクリックし、このスキャン構成を保存するリージョンを選択します。後で作成するすべてのスキャン構成も、このロケーションに保存されます。

いずれのスキャン構成の保存先を選択しても、スキャンするデータには影響しません。また、データ プロファイルの保存場所にも影響しません。データは、データが保存されているリージョンと同じリージョンでスキャンされます。詳細については、データ所在地に関する検討事項をご覧ください。

確認と作成

  1. スキャン構成の作成後にプロファイリングが自動的に開始されないようにするには、[一時停止モードでスキャンを作成する] を選択します。

    この構成は、次のような場合に利用できます。

    • データ プロファイルを BigQuery に保存することを検討しており、サービス エージェントが出力テーブルへの書き込みアクセス権を持っていることを確認する。
    • Pub/Sub 通知を構成し、サービス エージェントに公開アクセス権を付与します。
  2. 設定を確認し、[作成] をクリックします。

    Sensitive Data Protection により検出スキャン構成が作成され、これが検出スキャン構成リストに追加されます。

スキャン構成を表示または管理するには、スキャン構成を管理するをご覧ください。

データにアクセスしてプロファイリングするために必要なロールがサービス エージェントに付与されている場合、Sensitive Data Protection によって、スキャン構成の作成後または一時停止された構成を再開した直後に、データのスキャンが開始されます。それ以外の場合は、スキャン構成の詳細を表示すると、Sensitive Data Protection によってエラーが表示されます。

次のステップ

  • 単一プロジェクトのプロファイリング データの費用を見積もる方法を学習する。
  • データ プロファイルを表示する方法を確認する。
  • スキャン構成を管理する方法を学習する。
  • データ プロファイラによってパブリッシュされた Pub/Sub メッセージを受信して解析する方法を確認する。
  • データ プロファイルに関する問題をトラブルシューティングする方法を学習する。