組織またはフォルダ内の Cloud Storage データをプロファイリングする

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

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

始める前に

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

    組織管理者(roles/resourcemanager.organizationAdmin)またはセキュリティ管理者(roles/iam.securityAdmin)のロールを付与されていなくても、スキャン構成を作成できます。ただし、スキャン構成を作成した後、これらのいずれかのロールを持つユーザーが、サービス エージェントにデータ プロファイリングのアクセス権を付与する必要があります。

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

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

  3. 機密データの保護が新しいバケットをプロファイリングする場合など、特定のイベントが発生したときに Pub/Sub 通知をトピックに送信するには、このタスクを実行する前に Pub/Sub トピックを作成します。

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

データ プロファイルを生成するには、サービス エージェント コンテナとその内部のサービス エージェントが必要です。こちらのタスクにより、これらは自動的に作成できます。

スキャン構成を作成する

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

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

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

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

検出タイプの選択

[Cloud Storage] を選択します。

スコープの選択

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

  • 組織レベルでプロファイリングを構成するには、[組織全体をスキャン] を選択します。
  • フォルダレベルでプロファイリングを構成するには、[選択したフォルダをスキャン] を選択します。[参照] をクリックしてフォルダを選択します。

スケジュールを管理

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

このセクションを構成する理由は次のとおりです。

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

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

  1. [スケジュールを追加] をクリックします。
  2. 選択したバケットを検出サービスでプロファイリングするか、プロファイリングから除外するかを指定します。

    • フィルタに一致するバケットをプロファイリングしない場合は、[このデータをプロファイリングする] をオフにします。

    • フィルタと条件に一致するバケットを少なくとも 1 回プロファイリングする場合は、[このデータをプロファイリングする] をオンのままにします。

  3. [フィルタ] セクションで、バケットがスケジュールのスコープに含まれる 1 つ以上のフィルタを定義します。バケットは、定義されたフィルタの少なくとも 1 つに一致する場合、スケジュールのスコープに含まれると見なされます。

    フィルタを構成するには、次のうち少なくとも 1 つを指定します。

    • 1 つ以上のプロジェクトを指定するプロジェクト ID または正規表現
    • 1 つ以上のバケットを指定するバケット名または正規表現

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

    たとえば、プロジェクト内のすべてのバケットをフィルタに含めるには、[プロジェクト ID] フィールドにプロジェクト ID を入力します。

    フィルタに一致するには、バケットがそのフィルタ内で指定されたすべての正規表現を満たしている必要があります。

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

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

  5. [頻度] セクションで、検出サービスでデータを再プロファイリングするかどうかと、再プロファイリング オペレーションをトリガーするイベントを指定します。詳細については、データ プロファイル生成の頻度をご覧ください。

    1. [On a schedule] の場合、バケットを再プロファイリングする頻度を指定します。バケットは、変更があったかどうかに関係なく再プロファイルされます。
    2. [検査テンプレートの変更] で、関連する検査テンプレートが更新されたときにデータを再プロファイリングするか、再プロファイリングする場合は、その頻度も指定します。

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

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

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

  6. 省略可: [条件] をクリックします。

    [条件] セクションで、機密データの保護でプロファイリングを行う前に、フィルタで定義されたバケットが満たす必要がある条件を指定します。

    必要に応じて、次の設定を行います。

    • 最小条件: バケットがある年齢に達するまでプロファイリングを遅らせる場合は、このオプションをオンにします。最小期間を入力します。

    • バケット属性の条件: デフォルトでは、Sensitive Data Protection は Autoclass が有効になっているバケットをスキャンしません。これらのバケットをスキャンする場合は、[Autoclass が有効になっているバケットをスキャンする] をクリックします。

    • オブジェクト属性の条件: デフォルトでは、Sensitive Data Protection は Standard ストレージ クラスのオブジェクトのみをスキャンします。他のストレージ クラスのオブジェクトをスキャンする場合は、それらのストレージ クラスを個別に選択するか、[属性に関係なくすべてのオブジェクトをスキャンします] をクリックします。

    • 時間条件: 以前のバケットをプロファイリングしない場合は、このオプションをオンにします。次に、日付選択ツールを使用して日付と時刻を選択します。選択したタイムスタンプ以前に作成されたバケットは、プロファイリングから除外されます。

    条件の例

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

    • 最小条件

      • 最小期間: 24 時間
    • バケット属性の条件

      • 何も選択されていません
    • オブジェクト属性の条件

      • Standard Storage クラスのオブジェクトをスキャンする
      • Nearline Storage クラスのオブジェクトをスキャンします
    • 時間条件

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

    この場合、Sensitive Data Protection は 2022 年 5 月 4 日午後 11 時 59 分以前に作成されたバケットを除外します。この日時の後に作成されたバケットのうち、24 時間以上経過し、Autoclass が無効になっているバケットのみが Sensitive Data Protection によってプロファイリングされます。これらのバケット内で、Sensitive Data Protection は Standard Storage クラスと Nearline Storage クラスのオブジェクトのみをプロファイリングします。

  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 サービスに送信する場合に便利です。

Google Security Operations に公開する

データ プロファイルから収集された指標によって、Google Security Operations の検出結果にコンテキストが追加されます。コンテキストが追加されることで、最も重要なセキュリティ問題の特定に役立ちます。

たとえば、特定のサービス エージェントを調査する場合、Google Security Operations は、サービス エージェントがアクセスしたリソースと、それらのリソースに機密性の高いデータが含まれているかどうかを判断できます。

データ プロファイルを Google Security Operations インスタンスに送信するには、[Google Security Operations にパブリッシュ] をオンにします。

組織で Google Security Operations インスタンスが有効になっていない場合(スタンドアロン プロダクトまたは Security Command Center Enterprise を使用)、このオプションをオンにしても効果はありません。

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 テーブルに保存します。優先テーブルの詳細を指定しない場合、機密データの保護はサービス エージェント コンテナにデータセットとテーブルを作成します。デフォルトでは、データセットの名前は sensitive_data_protection_discovery、テーブルの名前は discovery_profiles です。

このアクションを使用すると、生成されたすべてのプロファイルの履歴を保持できます。この履歴は、監査レポートの作成やデータ プロファイルの可視化に役立ちます。この情報は他のシステムに読み込むこともできます。

また、このオプションを使用すると、データが存在するリージョンに関係なく、すべてのデータ プロファイルを 1 つのビューで表示できます。Google Cloud コンソールでデータ プロファイルを表示することもできますが、コンソールには一度に 1 つのリージョンのプロファイルしか表示されません。

Sensitive Data Protection でバケットのプロファイリングに失敗すると、定期的に再試行されます。エクスポートされるデータのノイズを最小限に抑えるため、機密データの保護では正常に生成されたプロファイルのみを BigQuery にエクスポートします。

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

データ プロファイルの分析に使用できるクエリの例については、データ プロファイルを分析するをご覧ください。

サンプル検出の検出結果を BigQuery に保存する

Sensitive Data Protection では、任意の BigQuery テーブルにサンプル検出結果を追加できます。サンプル検出結果は、すべての検出結果のサブセットを表します。検出されたすべての infoType が表されるとは限りません。通常、システムはバケットごとに約 10 個のサンプル検出結果を生成しますが、この数は検出実行ごとに異なる場合があります。

各検出結果には、検出された実際の文字列(引用とも呼ばれる)とその正確な位置が含まれます。

このアクションは、検査構成が、機密情報としてフラグを設定する情報の種類と正しく一致しているかどうかを評価する場合に便利です。エクスポートしたデータ プロファイルとエクスポートしたサンプル結果を使用して、クエリを実行し、フラグが設定された特定のアイテム、一致した infoType、正確な場所、計算された機密性レベルなどの詳細情報を取得できます。

この例では、[データ プロファイルのコピーを BigQuery に保存する] と [サンプル検出の検出結果を BigQuery に保存する] の両方が有効になっている必要があります。

次のクエリでは、エクスポートされたデータ プロファイルのテーブルとエクスポートされたサンプル結果のテーブルの両方で INNER JOIN オペレーションを使用します。結果の表では、各レコードに検出結果の引用、一致した infoType、検出結果を含むリソース、リソースの計算された機密レベルが表示されます。

SELECT
 findings_table.quote,
 findings_table.infotype.name,
 findings_table.location.container_name,
 profiles_table.file_store_profile.file_store_path as bucket_name,
 profiles_table.file_store_profile.sensitivity_score as bucket_sensitivity_score
FROM
 `FINDINGS_TABLE_PROJECT_ID.FINDINGS_TABLE_DATASET_ID.FINDINGS_TABLE_ID_latest_v1` AS findings_table
INNER JOIN
 `PROFILES_TABLE_PROJECT_ID.PROFILES_TABLE_DATASET_ID.PROFILES_TABLE_ID_latest_v1` AS profiles_table
ON
 findings_table.data_profile_resource_name=profiles_table.file_store_profile.name

検出結果のサンプルを BigQuery テーブルに保存する手順は次のとおりです。

  1. [サンプル検出の検出結果を BigQuery に保存する] を有効にします。

  2. サンプルの検出結果を保存する BigQuery テーブルの詳細を入力します。

    このアクションに指定するテーブルは、[データ プロファイルのコピーを BigQuery に保存する] アクションで使用するテーブルとは異なる必要があります。

    • [プロジェクト ID] に、検出結果をエクスポートする既存のプロジェクトの ID を入力します。

    • [データセット ID] に、プロジェクト内の既存のデータセットの名前を入力します。

    • [テーブル ID] に、検出結果を保存する BigQuery テーブルの名前を入力します。このテーブルが存在しない場合は、指定した名前を使用して、機密データの保護によって自動的に作成されます。

BigQuery テーブルに保存されている各検出結果の内容については、DataProfileFinding をご覧ください。

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

[リソースにタグを付ける] をオンにすると、Sensitive Data Protection は、計算された機密レベルに従ってデータを自動的にタグ付けします。このセクションでは、まず データの機密性に基づいてリソースへの 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. [サービス エージェント コンテナ] フィールドで、提案されたプロジェクト ID を確認し、必要に応じて編集します。
  2. [作成] をクリックします。
  3. 省略可: デフォルトのプロジェクト名を更新します。
  4. 検出に関係のないオペレーションを含め、この新しいプロジェクトに関連するすべての課金対象オペレーションに対して課金されるアカウントを選択します。

  5. [作成] をクリックします。

機密データの保護によって新しいプロジェクトが作成されます。このプロジェクト内のサービス エージェントは、Sensitive Data Protection やその他の API への認証に使用されます。

既存のプロジェクトを選択

既存のプロジェクトをサービス エージェント コンテナとして選択するには、[サービス エージェント コンテナ] フィールドをクリックしてプロジェクトを選択します。

画像のフォールバック処理のロケーションを設定する

通常、Sensitive Data Protection は、データが保存されている場所でデータを処理します。ただし、画像はマルチリージョンまたは global リージョンでのみ処理できます。フォールバック ロケーションを設定すると、機密データの保護は、マルチリージョンまたは global リージョンにないイメージの処理にフォールバック ロケーションを使用します。このセクションをスキップすると、これらの画像は処理されません。

画像処理のフォールバック ロケーションを設定するには、次のいずれかまたは両方を選択します。

  • マルチリージョンにフォールバック: 元のロケーションで画像を処理できない場合、画像は元のロケーションに対応するマルチリージョンで処理されます。イメージの元のロケーションに対応するマルチリージョンがない場合、イメージはスキップされます。
  • グローバルにフォールバック: 元のロケーションで画像を処理できない場合、画像は global リージョンで処理されます。

両方のオプションを選択すると、Sensitive Data Protection はフォールバック ロケーションとして使用するロケーションを選択します。

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

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

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

確認と作成

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

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

    • Google Cloud 管理者は、引き続きサービス エージェントにデータ プロファイリングのアクセス権を付与する必要があります。
    • 複数のスキャン構成を作成し、一部の構成で他の構成をオーバーライドする
    • データ プロファイルを BigQuery に保存することを検討しており、サービス エージェントがデータ プロファイルのコピーが保存される BigQuery テーブルへの書き込みアクセス権を持っていることを確認する。
    • サンプル検出の検出結果を BigQuery に保存することを検討しており、サービス エージェントがサンプル検出結果の保存先の BigQuery テーブルへの書き込みアクセス権を持っていることを確認する。
    • Pub/Sub 通知を構成し、サービス エージェントに公開アクセス権を付与します。
    • [リソースにタグをアタッチする] アクションを有効にしました。サービス エージェントに機密レベルタグへのアクセス権を付与する必要があります。
  2. 設定を確認し、[作成] をクリックします。

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

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

次のステップ