単一プロジェクトの 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 サーバーはサポートされていません。

料金と割り当て

Cloud SQL 検出では、2024 年 2 月 1 日まで Sensitive Data Protection が無料です。この日付を経過すると、Cloud SQL の検出は、BigQuery の検出と同様に課金されます。

データ プロファイリングに関連する他の Google Cloud サービスの使用には、引き続き課金されます。

  • Secret Manager の料金は、Sensitive Data Protection がシークレットにアクセスするたびに適用されます。アクセス オペレーションは、Sensitive Data Protection でテーブルがプロファイリングされ、更新が定期的にチェックされる場合に発生します。

  • 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. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

      プロジェクト セレクタに移動

    3. Google Cloud プロジェクトで課金が有効になっていることを確認します

    4. 必要な API を有効にします。

      API を有効にする

    5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

      プロジェクト セレクタに移動

    6. Google Cloud プロジェクトで課金が有効になっていることを確認します

    7. 必要な API を有効にします。

      API を有効にする

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

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

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

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

スキャン構成を作成する

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

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

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

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

検出タイプの選択

[Cloud SQL] を選択します。

スコープの選択

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

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

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

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

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

スケジュールを管理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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 を選択した場合、機密データの保護で通知が送信される前に、データリスクと機密性条件の両方が満たされる必要があります。

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

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

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

確認と作成

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

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

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

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

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

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

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

次のステップ

接続を更新する方法について学習する。