単一プロジェクトの Cloud SQL データをプロファイリングする

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

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

仕組み

Cloud SQL データのプロファイリングの概要的なワークフローは次のとおりです。

  1. スキャン構成を作成する

    スキャン構成を作成すると、Sensitive Data Protection によって Cloud SQL インスタンスの識別と各インスタンスへのデフォルトの接続の作成が開始します。検出の対象となるインスタンスの数によっては、このプロセスに数時間かかることがあります。Google Cloud コンソールを終了し、後で接続を確認できます。

  2. スキャン構成に関連付けられたサービス エージェントに、必要な IAM ロールを付与します

  3. デフォルトの接続の準備ができたら、適切なデータベース ユーザー認証情報で各接続を更新し、Sensitive Data Protection のCloud SQL インスタンスへのアクセスを許可します。既存のデータベース ユーザー アカウントを指定することも、データベース ユーザーを作成することもできます。

  4. 推奨: Sensitive Data Protection がデータのプロファイリングに使用できる接続の最大数を増やします。接続数を引き上げると、検出の高速化が可能になります。

サポート対象のサービス

この機能は次のサービスをサポートしています。

  • Cloud SQL for MySQL
  • Cloud SQL for PostgreSQL

Cloud SQL for SQL サーバーはサポートされていません。

処理と保存のリージョン

Sensitive Data Protection はリージョン サービスとマルチリージョン サービスであり、ゾーンは区別されません。Sensitive Data Protection が Cloud SQL インスタンスをプロファイリングすると、データは現在のリージョンで処理されますが、必ずしも現在のゾーンで処理されるわけではありません。たとえば、Cloud SQL インスタンスが us-central1-a ゾーンに保存されている場合、機密データの保護はデータ プロファイルを処理し、us-central1 リージョンに保存します。

詳細については、データ所在地に関する検討事項をご覧ください。

始める前に

  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 トピックを作成する必要があります。

  5. リソースにタグを自動的に適用するように Sensitive Data Protection を構成できます。この機能を使用すると、計算された機密性レベルに基づいて、これらのリソースへのアクセスを条件付きで付与できます。この機能を使用するには、まずデータの機密性に基づいてリソースへの IAM アクセスを制御するの説明に記載されているタスクを完了する必要があります。

スキャン構成を作成する

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

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

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

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

検出タイプの選択

[Cloud SQL] を選択します。

スコープの選択

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

  • 単一テーブルをスキャンする場合は、[Scan one table] を選択します。

    テーブルごとに設定できる単一リソースのスキャン構成は 1 つのみです。詳細については、単一のデータリソースのプロファイリングをご覧ください。

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

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

スケジュールを管理

デフォルトのプロファイリング頻度がニーズを満たしている場合は、[スキャン構成の作成] ページのこのセクションをスキップできます。

このセクションは、次の理由で構成します。

  • すべてのデータまたはデータの特定のサブセットのプロファイリング頻度を細かく調整する。
  • プロファイリングしないテーブルを指定します。
  • 1 回以上プロファイリングしないテーブルを指定します。

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

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

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

    • 1 つ以上のプロジェクトを指定するプロジェクト ID または正規表現。
    • インスタンス ID または 1 つ以上のインスタンスを指定する正規表現。
    • データベース ID または 1 つ以上のデータベースを指定する正規表現。
    • テーブル ID または 1 つ以上のテーブルを指定する正規表現。この値を [データベース リソース名または正規表現] フィールドに入力します。

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

    たとえば、データベース内のすべてのテーブルをフィルタに含めるには、[データベース ID] フィールドにデータベース ID を入力します。

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

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

  4. [頻度] セクションで、検出サービスが選択したテーブルをプロファイリングするかどうかを指定します。プロファイリングする場合はその頻度も指定します。

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

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

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

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

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

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

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

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

      5. たとえば、us-west1 リージョンの検査テンプレートを設定し、その検査テンプレートを更新すると、us-west1 リージョンのデータのみが再プロファイリングされます。

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

    [条件] セクションで、プロファイリングするデータベース リソースのタイプを指定します。デフォルトでは、Sensitive Data Protection は、サポートされているすべてのデータベース リソースタイプをプロファイリングするように設定されています。Sensitive Data Protection によって追加のデータベース リソースタイプのサポートが追加されると、それらも自動的にプロファイリングされます。

  6. 省略可: プロファイリングするデータベース リソースのタイプを明示的に設定する場合は、次の操作を行います。

    1. [データベース リソースタイプ] フィールドをクリックします。
    2. プロファイリングするデータベース リソースタイプを選択します。

    後で Cloud SQL データベースのリソースタイプに対する検出サポートを Sensitive Data Protection によって追加した場合、このリストに戻ってそれらを選択した場合にのみ、それらのタイプがプロファイリングされます。

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

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

  9. スケジュールの優先度を指定するには、 上矢印と 下矢印を使用して並べ替えます。

    スケジュールの順序は、スケジュール間の競合を解決する方法を示します。テーブルが 2 つの異なるスケジュールのフィルタと一致する場合、スケジュール リストでより上位のスケジュールがそのテーブルのプロファイリング頻度を決定します。

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

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

検査テンプレートの選択

検査構成の指定方法に応じて、次のいずれかのオプションを選択します。どのオプションを選択しても、データが保存されているリージョンで 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. 別のリージョンの検査テンプレートを追加するには、[検査テンプレートを追加] をクリックして、テンプレートの完全なリソース名を入力します。専用の検査テンプレートがあるリージョンごとに、上記の手順を繰り返します。
  4. 省略可: global リージョンに保存されている検査テンプレートを追加します。機密データの保護では、専用の検査テンプレートがないリージョンのデータに、このテンプレートが自動的に使用されます。

アクションの追加

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

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

Security Command Center に公開する

データ プロファイルの検出結果は、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 つのビューに表示できます。このオプションをオフにしても、Google Cloud コンソールでデータ プロファイルを表示できます。ただし、Google Cloud コンソールで一度に 1 つのリージョンを選択すると、選択したリージョンのデータ プロファイルのみが表示されます。

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

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

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

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

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

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

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

リソースにタグを適用する

[リソースにタグを適用する] をオンにすると、計算された機密レベルに応じてデータに自動的にタグが付けられます。このセクションでは、まずデータの機密性に基づいてリソースへの IAM アクセスを制御するのタスクを完了する必要があります。

計算された機密性レベルに応じてリソースに自動的にタグを付けるには、次の操作を行います。

  1. [リソースにタグを付ける] オプションをオンにします。
  2. 感度レベル(高、中、低、不明)ごとに、その感度レベル用に作成したタグ値のパスを入力します。

    機密レベルをスキップすると、そのレベルのタグは適用されません。

  3. 機密レベルのタグが存在する場合にリソースのデータリスク レベルを自動的に下げるには、[リソースにタグを適用する場合、そのプロファイルのデータリスクを「低」に下げる] を選択します。このオプションを使用すると、データ セキュリティとプライバシー対策の改善を測定できます。

  4. 次のいずれかまたは両方を選択します。

    • 初めてプロファイリングされるリソースにタグを付ける。
    • プロファイルの更新時にリソースにタグを付ける。次の検出実行で Sensitive Data Protection が機密レベルのタグ値を上書きする場合は、このオプションを選択します。そのため、リソースに対するプリンシパルのアクセス権は、そのリソースのデータ機密性レベルの計算値が増減するにつれて自動的に変更されます。

      検出サービスがリソースに適用した機密レベルのタグ値を手動で更新する場合は、このオプションを選択しないでください。このオプションを選択すると、機密データの保護によって手動で更新したデータが上書きされる可能性があります。

Pub/Sub に公開

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

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

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

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

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

    [プロファイルが更新されるたびに Pub/Sub 通知を送信する] を選択した場合、プロファイルの機密性レベル、データ リスクレベル、検出された infoType、公開アクセス、その他の重要な指標が変更されると、機密データの保護で通知が送信されます。

  3. 選択したイベントごとに、次の手順を行います。

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

      projects/PROJECT_ID/topics/TOPIC_ID
      

      以下を置き換えます。

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

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

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

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

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

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

確認と作成

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

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

  2. 設定を確認し、[作成] をクリックします。

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

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

Sensitive Data Protection は、Cloud SQL インスタンスを識別し、インスタンスごとにデフォルトの接続を作成します。検出の対象となるインスタンスの数によっては、このプロセスに数時間かかることがあります。Google Cloud コンソールを終了し、後で接続を確認できます。

デフォルトの接続の準備ができたら、Sensitive Data Protection を使用して Cloud SQL インスタンスのプロファイルを作成するデータベース ユーザー認証情報で接続を更新します。詳細については、検出で使用する接続を管理するをご覧ください。

次のステップ

接続を更新する方法をご確認ください。