未加工のログをセルフマネージド Google Cloud Storage バケットにエクスポートする

以下でサポートされています。

Data Export API を使用すると、Google Security Operations から制御する Google Cloud Storage バケットにセキュリティ データを一括でエクスポートできます。この機能は、重要なデータの長期保持、過去のフォレンジック分析、厳格なコンプライアンス要件(SOX、HIPAA、GDPR など)をサポートします。

重要: 新しい拡張 API を有効にすると、API を使用して古い既存のジョブにアクセスできなくなります。

Data Export API の詳細については、Data Export API(拡張版)をご覧ください。

Data Export API は、特定の時点のデータ エクスポートのためのスケーラブルで信頼性の高いソリューションを提供し、最大 100 TB のリクエストを処理します。

マネージド パイプラインとして、次のようなエンタープライズ グレードの重要な機能が提供されます。

  • 一時的なエラーの自動再試行
  • 包括的なジョブ ステータスのモニタリング
  • 各エクスポート ジョブの完全な監査証跡

API は、Google Cloud Storage バケット内のエクスポートされたデータを日付と時刻で論理的にパーティショニングします。

この機能を使用すると、大規模なデータ オフロード ワークフローを構築できます。Google SecOps は、エクスポート プロセスの複雑さを管理して、安定性とパフォーマンスを確保します。

主なメリット

Data Export API は、セキュリティ データのライフサイクルを管理するための復元力と監査可能性に優れたソリューションを提供します。

  • 信頼性: 大規模なデータ転送を処理します。システムは指数バックオフ戦略を使用して、一時的な問題(一時的なネットワークの問題など)が発生したエクスポート ジョブを自動的に再試行し、復元力を高めます。一時的なエラーが原因でエクスポート ジョブが失敗した場合、ジョブは自動的に数回再試行されます。すべての再試行後にジョブが完全に失敗した場合、システムはそのステータスを FINISHED_FAILURE に更新します。そのジョブの API レスポンスには、原因を説明する詳細なエラー メッセージが含まれます。
  • 包括的な監査可能性: 厳格なコンプライアンスとセキュリティ基準を満たすため、システムはエクスポート ジョブに関連するすべてのアクションを不変の監査証跡にキャプチャします。このトレイルには、すべてジョブの作成、開始、成功、失敗と、アクションを開始したユーザー、タイムスタンプ、ジョブ パラメータが含まれます。

  • パフォーマンスとスケーリングに合わせて最適化: API は堅牢なジョブ管理システムを使用します。このシステムには、プラットフォームの安定性を確保し、単一のテナントがリソースを独占することを防ぐためのキューイングと優先順位付けが含まれています。

  • データ整合性とアクセシビリティの強化: システムは、Google Cloud Storage バケット内の論理ディレクトリ構造にデータを自動的に整理します。これにより、特定の期間を見つけてクエリを実行し、履歴分析を行うことができます。

主な用語と概念

  • エクスポート ジョブ: 特定の期間のログデータを Google Cloud Storage バケットにエクスポートする単一の非同期オペレーション。システムは、一意の dataExportId を使用して各ジョブを追跡します。
  • ジョブのステータス: ライフサイクルにおけるエクスポート ジョブの現在の状態(例: IN_QUEUEPROCESSINGFINISHED_SUCCESS)。
  • Google Cloud Storage バケット: エクスポートされたデータの宛先となるユーザー所有の Google Cloud Storage バケット。
  • ログタイプ: エクスポートできるログの特定のカテゴリ(NIX_SYSTEMWINDOWS_DNSCB_EDR など)。詳細については、サポートされているすべてのログタイプのリストをご覧ください。

エクスポートされたデータ構造について

ジョブが正常に完了すると、データが Google Cloud Storage バケットに書き込まれます。特定のパーティショニングされたディレクトリ構造を使用して、データ アクセスとクエリを簡素化します。

ディレクトリ パスの構造: gs://<gcs-bucket-name>/<export-job-name>/<logtype>/<event-time-bucket>/<epoch_execution_time>/<file-shard-name>.csv

  • gcs-bucket-name: Google Cloud Storage バケットの名前。
  • export-job-name: エクスポート ジョブの一意の名前。
  • logtype: エクスポートされたデータのログタイプの名前。
  • event-time-bucket: エクスポートされたログのイベント タイムスタンプの時間範囲。

    形式は UTC タイムスタンプ year/month/day/UTC-timestamp です(UTC-timestamphour/minute/second)。
    たとえば、2025/08/25/01/00/00UTC 01:00:00 AM, August 25, 2025 を指します。

  • epoch-execution-time: エクスポート ジョブが開始された日時を示す Unix エポックタイム値。

  • file-shard-name: 生ログを含むシャード ファイルの名前。各ファイル シャードのファイルサイズの上限は 100 MB です。

パフォーマンスと制限事項

このサービスには、プラットフォームの安定性と公平なリソース割り当てを確保するための特定の制限があります。

  • ジョブあたりの最大データ量: 個々のエクスポート ジョブは、最大 100 TB のデータをリクエストできます。大規模なデータセットの場合は、エクスポートを複数のジョブに分割し、時間範囲を小さくすることをおすすめします。
  • 同時実行ジョブ: 各顧客テナントは、最大 3 つのエクスポート ジョブを同時に実行またはキューに登録できます。この上限を超える新しいジョブ作成リクエストは拒否されます。
  • ジョブの完了時間: エクスポートされたデータの量によって、ジョブの完了時間が決まります。1 つのジョブには最大 18 時間かかることがあります。
  • エクスポート形式とデータ範囲: この API は、次の制限と機能を備えた一括エクスポートと特定の時点のエクスポートをサポートしています。

前提条件とアーキテクチャ

このセクションでは、Data Export API を使用するためのシステム アーキテクチャと必要な要件の概要を説明し、システム アーキテクチャの詳細について説明します。この情報を使用して、環境が正しく構成されていることを確認します。

始める前に

Data Export API を使用する前に、次の前提条件の手順を完了して、Google Cloud Storage の宛先を設定し、必要な権限を付与します。

  1. API ユーザーに権限を付与する: Data Export API を使用するには、次の IAM ロールが必要です。

    • Chronicle administrator (creating/managing jobs): API を使用してエクスポート ジョブを作成、更新、キャンセル、表示する完全な権限を付与します。
    • Chronicle Viewer: API を使用してジョブ構成と履歴を表示するための読み取り専用アクセス権を付与します。
  2. Google Cloud Storage バケットを作成する: Google Cloudプロジェクトで、Google SecOps テナントと同じリージョンに新しい Google Cloud Storage バケット(エクスポートされたデータの宛先)を作成します。不正アクセスを防ぐため、非公開にします。詳細については、バケットを作成するをご覧ください。

  3. サービス アカウントに権限を付与する: Google SecOps テナントにリンクされている Google SecOps サービス アカウントに、バケットにデータを書き込むために必要な IAM ロールを付与します。

    1. FetchServiceAccountForDataExport API エンドポイントを呼び出して、Google SecOps インスタンスの一意のサービス アカウントを特定します。API はサービス アカウントのメールアドレスを返します。

      リクエストの例:

      {
        "parent": "projects/myproject/locations/us/instances/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
      }
      

      レスポンスの例:

      {
        "service_account_email": "service-1234@gcp-sa-chronicle.iam.gserviceaccount.com"
      }
      
    2. 宛先の Google Cloud Storage バケットに対する次の IAM ロールを Google SecOps サービス アカウント プリンシパルに付与します。このロールにより、Google SecOps サービスはエクスポートされたデータファイルを Google Cloud Storage バケットに書き込むことができます。

      • Storage object administrator (roles/storage.objectAdmin)
      • Legacy bucket reader (roles/storage.legacyBucketReader)

      詳細については、Google SecOps サービス アカウントへのアクセス権を付与するをご覧ください。

  4. 認証を完了する: Data Export API が呼び出しを認証します。この認証を設定するには、次のセクションの手順に沿って操作します。

    1. Google Cloud サービスの認証方法
    2. アプリケーションのデフォルト認証情報

主なユースケース

Data Export API は、データ エクスポート ジョブを作成し、一括データ エクスポートのライフサイクル全体を管理するための一連のエンドポイントを提供します。すべてのインタラクションは API 呼び出しを使用して行います。

次のユースケースでは、データ エクスポート ジョブの作成、モニタリング、管理方法について説明します。

コア ワークフロー

このセクションでは、エクスポート ジョブのライフサイクルを管理する方法について説明します。

新しいデータ エクスポート ジョブを作成する

システムは、データ エクスポート ジョブの仕様を親リソースの Google SecOps インスタンスに保存します。このインスタンスは、エクスポート ジョブのログデータのソースです。

  • Google SecOps インスタンスの一意のサービス アカウントを特定します。詳しくは、FetchServiceAccountForDataExports をご覧ください。

  • 新しいエクスポートを開始するには、dataExports.create エンドポイントに POST リクエストを送信します。
    詳細については、CreateDataExport エンドポイントをご覧ください。

データ エクスポート ジョブのステータスをモニタリングする

特定のエクスポート ジョブのデータ エクスポート ジョブの詳細とステータスを表示したり、フィルタを設定して特定の種類のジョブを表示したりできます。

  • 特定のエクスポート ジョブを表示するには、GetDataExport をご覧ください。

  • フィルタを使用して特定の種類のデータ エクスポート ジョブを一覧表示するには、ListDataExport をご覧ください。

キューに格納されたジョブを管理する

ジョブが IN_QUEUE ステータスの場合は、ジョブを変更またはキャンセルできます。

  • パラメータ(期間、ログタイプのリスト、宛先バケットなど)を変更するには、UpdateDataExport をご覧ください。

  • キューに登録されたジョブをキャンセルするには、CancelDataExport をご覧ください。

一般的な問題のトラブルシューティング

API は、問題の診断に役立つ詳細なエラー メッセージを提供します。

標準的なコード エラー メッセージ
INVALID_ARGUMENT INVALID_REQUEST: 無効なリクエスト パラメータ <Parameter1, Parameter2,..>。リクエスト パラメータを修正して、もう一度お試しください。
NOT_FOUND BUCKET_NOT_FOUND: 宛先の Google Cloud Storage バケット <bucketName> が存在しません。転送先の Google Cloud Storage バケットを作成して、もう一度お試しください。
NOT_FOUND REQUEST_NOT_FOUND: dataExportId:<dataExportId> が存在しません。有効な dataExportId を追加して、もう一度お試しください。
FAILED_PRECONDITION BUCKET_INVALID_REGION: Google Cloud Storage バケット <bucketId> のリージョン <region1> が、SecOps テナントのリージョン <region2> と同じリージョンではありません。SecOps テナントと同じリージョンに Google Cloud Storage バケットを作成して、もう一度お試しください。
FAILED_PRECONDITION INSUFFICIENT_PERMISSIONS: サービス アカウント <P4SA> に、宛先 Google Cloud Storage バケット <bucketName> に対する storage.objects.createstorage.objects.getstorage.buckets.get の権限がありません。サービス アカウントに必要なアクセス権を付与して、もう一度お試しください。
FAILED_PRECONDITION INVALID_UPDATE: リクエストのステータスが <status> ステージにあるため、更新できません。リクエストを更新できるのは、ステータスが IN_QUEUE ステージの場合のみです。
FAILED_PRECONDITION INVALID_CANCELLATION: リクエストのステータスが <status> ステージにあり、キャンセルできません。リクエストをキャンセルできるのは、ステータスが IN_QUEUE ステージの場合のみです。
RESOURCE_EXHAUSTED CONCURRENT_REQUEST_LIMIT_EXCEEDED: リクエスト サイズ <sizelimit> の同時リクエストの上限 <limit> に達しました。既存のリクエストが完了するまで待ってから、もう一度お試しください。
RESOURCE_EXHAUSTED REQUEST_SIZE_LIMIT_EXCEEDED: リクエストの推定エクスポート量 <estimatedVolume> が、リクエストあたりの最大許容エクスポート量 <allowedVolume> を超えています。エクスポートの許容上限内のリクエストで、もう一度お試しください。
INTERNAL INTERNAL_ERROR: 内部エラーが発生しました。もう一度お試しください。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。