Amazon S3 データのプロファイルを作成する

このページでは、Amazon S3 の Sensitive Data Protection の検出を構成する方法について説明します。

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

この機能は、Security Command Center を Enterprise ティアで有効にしているお客様のみが利用できます。

始める前に

  1. Security Command Center で、アマゾン ウェブ サービス(AWS)のコネクタを作成します。[Sensitive Data Protection 検出に対する権限を付与する] チェックボックスをオフにしないでください。Sensitive Data Protection には、Amazon S3 データをプロファイリングするためにこれらの権限が必要です。

    [Sensitive Data Protection 検出に対する権限を付与する] が選択されていないコネクタがすでにある場合は、既存の AWS コネクタに機密データ検出権限を付与するをご覧ください。

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

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

  3. global リージョン、または検出スキャン構成と生成されたすべてのデータ プロファイルを保存するリージョンに検査テンプレートがあることを確認します。

    このタスクでは、global リージョンでのみ検査テンプレートを自動的に作成できます。組織のポリシーにより global リージョンに検査テンプレートを作成できない場合は、このタスクを実行する前に、検出スキャン構成を保存するリージョンに検査テンプレートを作成する必要があります。

  4. 特定のイベントが発生したとき(Sensitive Data Protection が新しいバケットをプロファイリングしたときなど)に Pub/Sub 通知をトピックに送信するには、このタスクを実行する前に Pub/Sub トピックを作成します。

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

スキャン構成を作成する

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

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

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

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

検出タイプの選択

[Amazon S3] を選択します。

スコープの選択

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

  • AWS コネクタがアクセスできるすべての S3 データをスキャンするには、[コネクタ経由で利用可能なすべての AWS アカウントをスキャンする] を選択します。
  • 1 つの AWS アカウントの S3 データをスキャンするには、[選択したアカウントをスキャンする] を選択します。AWS アカウント ID を入力します。
  • 単一の S3 バケットをスキャンするには、[1 つのバケットをスキャン] を選択します。バケットを含む AWS アカウントの ID を入力し、バケット名を入力します。

スケジュールを管理

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

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

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

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

  1. [スケジュールを追加] をクリックします。

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

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

    • 1 つ以上のアカウント ID を指定するアカウント ID または正規表現
    • 1 つ以上のバケットを指定するバケット名または正規表現

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

    たとえば、アカウント内のすべてのバケットをフィルタに含める場合は、[アカウント ID] フィールドにアカウント ID を入力します。

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

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

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

  4. [頻度] セクションで、選択したバケットをプロファイリングするかどうかを指定します。プロファイリングする場合は、その頻度も指定します。

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

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

      データを再プロファイリングするかどうかと、再プロファイリング操作をトリガーするイベントを指定します。詳細については、データ プロファイル生成の頻度をご覧ください。

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

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

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

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

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

    必要に応じて、以下を設定します。

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

    • オブジェクトのストレージ クラスの条件: デフォルトでは、Sensitive Data Protection はバケット内のすべてのオブジェクトをスキャンします。特定の属性を持つオブジェクトのみをスキャンする場合は、それらの属性を選択します。

    条件の例

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

    • 最小条件

      • 最小期間: 24 時間
    • オブジェクトのストレージ クラスの条件

      • S3 Standard ストレージ クラスのオブジェクトをスキャンします
      • S3 Glacier Instant Retrieval ストレージ クラスのオブジェクトをスキャンします

    この場合、Sensitive Data Protection は 24 時間以上経過したバケットのみを考慮します。これらのバケット内で、Sensitive Data Protection は Amazon S3 Standard または Amazon S3 Glacier Instant Retrieval ストレージ クラスのオブジェクトのみをプロファイリングします。

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

  7. 省略可: スケジュールを追加するには、[スケジュールを追加] をクリックして、前の手順を繰り返します。

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

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

  9. 省略可: [キャッチオール スケジュール] を編集またはオフにします。

    リストの最後のスケジュールは、キャッチオール スケジュールです。このスケジュールは、作成したスケジュールに一致しない指定スコープ内のバケットに対応します。キャッチオール スケジュールは、システムのデフォルト プロファイリング頻度に沿って実行されます。

    • キャッチオール スケジュールを調整するには、[ スケジュールを編集] をクリックして、必要に応じて設定を調整します。
    • 包括的なスケジュールに含まれるリソースを Sensitive Data Protection がプロファイリングしないようにするには、[カスタム スケジュールと一致しないリソースをプロファイリング] をオフにします。

検査テンプレートを選択する

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

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

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

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

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

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

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

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

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

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

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

    入力する検査テンプレートは、この検出スキャン構成と生成されたすべてのデータ プロファイルを保存する予定のリージョンと同じリージョンに存在する必要があります。

    データ所在地を考慮するため、Sensitive Data Protection は、テンプレートが保存されているリージョン外の検査テンプレートを使用しません。

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

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

      検査テンプレートに移動

    2. 使用する検査テンプレートが含まれているプロジェクトを選択します。
    3. [構成> テンプレート> 検査] を選択し、使用するテンプレートのテンプレート ID をクリックします。
    4. 開いたページで、テンプレートの完全なリソース名をコピーします。完全なリソース名の形式は次のとおりです。
      projects/PROJECT_ID/locations/REGION/inspectTemplates/TEMPLATE_ID
    5. [スキャン構成の作成] ページに戻り、[テンプレート名] フィールドにテンプレートの完全なリソース名を貼り付けます。

アクションの追加

このセクションでは、バケットのプロファイリング後に Sensitive Data Protection に実行させるアクションを指定する方法について説明します。これらのアクションは、データ プロファイルから収集した分析情報を他の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 に公開] オプションがオンになっていることを確認します。

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

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

Sensitive Data Protection は、生成された各データ プロファイルのコピーを BigQuery テーブルに保存します。優先テーブルの詳細を指定しない場合、Sensitive Data Protection はサービス エージェント コンテナにデータセットとテーブルを作成します。デフォルトでは、データセットの名前は sensitive_data_protection_discovery、テーブルの名前は discovery_profiles です。

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

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

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

このオプションを有効にした時点から、Sensitive Data Protection はプロファイルのエクスポートを開始します。エクスポートを有効にする前に生成されたプロファイルは、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
 AND findings_table.timestamp.timestamp=profiles_table.file_store_profile.profile_last_generated.timestamp

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

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

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

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

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

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

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

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

Pub/Sub に公開

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

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

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

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

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

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

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

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

      projects/PROJECT_ID/topics/TOPIC_ID
      

      以下を置き換えます。

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

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

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

サービス エージェント コンテナと課金の管理

このセクションでは、サービス エージェント コンテナとして使用するプロジェクトを指定します。Sensitive Data Protection で新しいプロジェクトを自動的に作成することも、既存のプロジェクトを選択することもできます。

新しく作成したサービス エージェントを使用するか、既存のサービス エージェントを使用するかにかかわらず、プロファイリングするデータへの読み取りアクセス権があることを確認してください。

プロジェクトを自動的に作成する

組織でプロジェクトを作成するために必要な権限がない場合は、代わりに既存のプロジェクトを選択するか、必要な権限を取得する必要があります。必要な権限については、組織レベルまたはフォルダレベルでデータ プロファイルを操作するために必要なロールをご覧ください。

サービス エージェント コンテナとして使用するプロジェクトを自動的に作成する手順は次のとおりです。

  1. [サービス エージェント コンテナ] フィールドで、提案されたプロジェクト ID を確認し、必要に応じて編集します。
  2. [作成] をクリックします。
  3. 省略可: デフォルトのプロジェクト名を更新します。
  4. 検出に関係のないオペレーションを含め、この新しいプロジェクトに関連するすべての課金対象オペレーションに対して課金されるアカウントを選択します。

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

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

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

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

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

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

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

構成を確認して作成する

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

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

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

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

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

次のステップ