Amazon S3 データをプロファイリングする

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

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

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

始める前に

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

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

スキャン構成を作成する

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

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

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

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

検出タイプの選択

[Amazon S3] を選択します。

スコープの選択

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

  • AWS コネクタがアクセスできるすべての S3 データをスキャンするには、[コネクタ経由で利用可能なすべての AWS アカウントをスキャンする] を選択します。
  • 単一の AWS アカウントの S3 データをスキャンするには、[選択したアカウントをスキャン] を選択します。AWS アカウント ID を入力します。
  • 単一の S3 バケットをスキャンするには、[Scan one bucket] を選択します。バケットを含む 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 はバケット内のすべてのオブジェクトをスキャンします。特定の属性を持つオブジェクトのみをスキャンする場合は、それらの属性を選択します。

    条件の例

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

    • 最小条件

      • 最小期間: 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 がデータをスキャンします。つまり、データが元のリージョンから離れることはありません。

オプション 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. [スキャン構成の作成] ページの [テンプレート名] フィールドに、テンプレートの完全なリソース名を貼り付けます。

アクションの追加

このセクションでは、バケットのプロファイリング後に機密データの保護で行うアクションを指定する方法について説明します。これらのアクションは、データ プロファイルから収集した分析情報を他の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 に保存する

機密データの保護は、生成された各データ プロファイルのコピーを 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 をご覧ください。

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 への認証に使用されます。

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

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

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

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

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

構成を確認して作成する

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

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

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

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

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

次のステップ