Google Cloud のデータを Chronicle に取り込む

このページでは、Chronicle への Google Cloud データの取り込みを有効または無効にする方法について説明します。Chronicle を使用すると、自社の集約されたセキュリティ情報を、データの保持期間に従って数か月以上にわたって保存、検索、調査できます。

概要

Google Cloud のデータを Chronicle に送信するには 2 つのオプションがあります。正しいオプションの選択は、ログタイプによって異なります。

オプション 1: 直接取り込み

特殊な Cloud Logging フィルタを Google Cloud で構成して、特定のログタイプをリアルタイムで Chronicle に送信できます。これらのログは、Google Cloud サービスによって生成されます。

Chronicle は、ログが Google Cloud のプロジェクト レベルで除外されているが、ログ エクスポート フィルタと組織レベルの Google Cloud Logging の両方に含まれている場合にもログを受信します。Chronicle からログを除外するには、Google Cloud で Chronicle のログ エクスポート フィルタを更新する必要があります。

使用可能なログタイプには、次のものがあります。

Compute Engine または Google Kubernetes Engine(GKE)のアプリケーション ログ(Apache、Nginx、IIS など)を収集するには、オプション 2 を使用します。さらに、Chronicle でサポート チケットを生成して、オプション 1 によりログタイプとしてのサポートを今後検討するためのフィードバックを提供します。

特定のログフィルタと取り込みの詳細については、Chronicle への Google Cloud ログのエクスポートをご覧ください。

強化の目的でコンテキストとして使用する追加の Google Cloud メタデータを Chronicle に送信することもできます。詳細については、Chronicle への Google Cloud アセットのメタデータのエクスポートをご覧ください。

オプション 2: Google Cloud Storage

Cloud Logging では、スケジュールに従って Chronicle が取得するように Cloud Storage にログを転送できます。

Cloud Storage を Chronicle 用に構成する方法の詳細については、フィード管理: Cloud Storage をご覧ください。

始める前に

Google Cloud データを Chronicle インスタンスに取り込む前に、次の手順を行う必要があります。

  1. Chronicle 担当者に問い合わせて、Google Cloud データの取り込みに必要なワンタイム・アクセスコードを取得します。

  2. Chronicle セクションへのアクセスに必要な次の IAM のロールを付与します。

    • Chronicle サービス管理者roles/chroniclesm.admin): すべてのアクティビティを実行するための IAM ロール。
    • Chronicle サービス閲覧者roles/chroniclesm.viewer): 取り込みの状態のみを閲覧する IAM ロール。
    • セキュリティ センター管理編集者roles/securitycenter.adminEditor): Cloud アセット メタデータの取り込みを有効にするために必要です。
  3. Cloud アセット メタデータ を有効にする場合は、Security Command Center Standard のティアまたは Security Command Center Premium のティアの Google Cloud サービスも有効にする必要があります。詳細については、組織で Security Command Center を有効にするをご覧ください。

IAM ロールの付与

必要な IAM ロールを付与するには、Google Cloud コンソールまたは gcloud CLI を使用します。

Google Cloud Console を使用して IAM ロールを付与するには、次の操作を行います。

  1. 接続する Google Cloud 組織にログインし、[プロダクト] > [IAM と管理] > [IAM] を使用して IAM 画面に移動します。
  2. IAM 画面でユーザーを選択し、[メンバーを編集] をクリックします。

  3. [権限を編集] 画面で、[別のロールを追加] をクリックして Chronicle を検索し、IAM ロールを見つけます。

  4. ロールを割り当てたら、[保存] をクリックします。

Google Cloud CLI を使用して IAM のロールを付与するには、次の手順を行います。

  1. 正しい組織にログインしていることを確認します。これを確認するには、gcloud init コマンドを実行します。

  2. gcloud を使用して Chronicle サービス管理者の IAM ロールを付与するには、次のコマンドを実行します。

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member "user:USER_EMAIL" \
    --role roles/chroniclesm.admin
    

    次のように置き換えます。

    • ORGANIZATION_ID: 数値の組織 ID
    • USER_EMAIL: 管理ユーザーのメールアドレス。
  3. gcloud を使用して Chronicle サービス閲覧者の IAM ロールを付与するには、次のコマンドを実行します。

    gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member "user:USER_EMAIL" \
    --role roles/chroniclesm.viewer
    
  4. gcloud を使用してセキュリティ センター管理編集者のロールを付与するには、次のコマンドを実行します。

     gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
     --member "user:USER_EMAIL" \
     --role roles/securitycenter.adminEditor`
    

Google Cloud のデータ取り込みの有効化

Google Cloud データは、Security Command Center と Chronicle の間の非公開の内部 API を使用して取り込まれます。取り込みは外部ネットワークに到達せず、IP アドレスも使用しません。Google は、Security Command Center 用に Chronicle によって提供されるワンタイム コードを使用して行われた認証に基づいて、Google Cloud ログに直接アクセスします。

Google Cloud 組織から Chronicle インスタンスへのデータの取り込みを有効にするには、次の手順を行います。

  1. Google Cloud コンソールの [Chronicle] ページに移動します。
    [Chronicle] ページに移動

  2. [ワンタイム Chronicle アクセスコード] フィールドにワンタイム アクセスコードを入力します。

  3. Chronicle の使用に同意するには、[Chronicle による Google Cloud データの使用の利用規約に同意します] チェックボックスをオンにします。

  4. [Chronicle 接続] をクリックします。

これでGoogle Cloud データが Chronicle に送信されるようになりました。Chronicle の分析機能を使用して、セキュリティ関連の問題を調査できます。以下のセクションでは、Chronicle に送信される Google Cloud データの種類を調整する方法について説明します。

Chronicle に Google Cloud ログをエクスポートする

次の種類の Google Cloud データを Chronicle インスタンスにエクスポートできます。

  • GCP_CLOUDAUDIT:
    • log_id("cloudaudit.googleapis.com/activity")(デフォルトのフィルタによってエクスポートされます)
    • log_id("cloudaudit.googleapis.com/system_event")(デフォルトのフィルタによってエクスポートされます)
    • log_id("cloudaudit.googleapis.com/policy")
    • log_id("cloudaudit.googleapis.com/access_transparency")
  • GCP_CLOUD_NAT:
    • log_id("compute.googleapis.com/nat_flows")
  • GCP_DNS:
    • log_id("dns.googleapis.com/dns_queries")(デフォルトのフィルタによってエクスポートされます)
  • GCP_FIREWALL:
    • log_id("compute.googleapis.com/firewall")
  • GCP_IDS:
    • log_id("ids.googleapis.com/threat")
    • log_id("ids.googleapis.com/traffic")
  • GCP の負荷分散
    • log_id("requests")
    • log_id("loadbalancing.googleapis.com/external_regional_requests")
    • log_id("networksecurity.googleapis.com/network_dos_attack_mitigations")
    • log_id("networksecurity.googleapis.com/dos_attack")
    • これには、Google Cloud Armor と Cloud Load Balancing のログが含まれます
  • GCP_CLOUDSQL:
    • log_id("cloudsql.googleapis.com/mysql-general.log")
    • log_id("cloudsql.googleapis.com/mysql.err")
    • log_id("cloudsql.googleapis.com/postgres.log")
    • log_id("cloudsql.googleapis.com/sqlagent.out")
    • log_id("cloudsql.googleapis.com/sqlserver.err")
  • NIX_SYSTEM:
    • log_id("syslog")
    • log_id("authlog")
    • log_id("securelog")
  • LINUX_SYSMON:
    • log_id("sysmon.raw")
  • WINEVTLOG:
    • log_id("winevt.raw")
    • log_id("windows_event_log")
  • BRO_JSON:
    • log_id("zeek_json_streaming_conn")
    • log_id("zeek_json_streaming_dhcp")
    • log_id("zeek_json_streaming_dns")
    • log_id("zeek_json_streaming_http")
    • log_id("zeek_json_streaming_ssh")
    • log_id("zeek_json_streaming_ssl")
  • KUBERNETES_NODE:
    • log_id("events")
    • log_id("stdout")
    • log_id("stderr")
  • AUDITD:
    • log_id("audit_log")
  • GCP_APIGEE_X:
    • log_id("apigee-logs")
    • logName =~ "^projects/[\w\-]+/logs/apigee\.googleapis\.com[\w\-]*$"
    • 必要に応じてログフィルタの正規表現を調整する
  • GCP_RECAPTCHA_ENTERPRISE:
    • log_id("recaptchaenterprise.googleapis.com/assessment")
    • log_id("recaptchaenterprise.googleapis.com/annotation")
  • GCP_RUN:
    • log_id("run.googleapis.com/stderr")
    • log_id("run.googleapis.com/stdout")
    • log_id("run.googleapis.com/requests")
    • log_id("run.googleapis.com/varlog/system")
  • GCP_NGFW_ENTERPRISE:
    • log_id("networksecurity.googleapis.com/firewall_threat")

Google Cloud ログを Chronicle にエクスポートするには、[Google Cloud ログ] 切り替えを有効に設定します。上記のすべての Google Cloud ログタイプが Chronicle インスタンスにエクスポートされます。

使用するログフィルタに関するベスト プラクティスについては、Google Cloud でのセキュリティ ログ分析をご覧ください。

エクスポート フィルタの設定

デフォルトでは、Cloud Audit ログ(管理アクティビティとシステム イベント)と Cloud DNS ログが Chronicle アカウントに送信されます。ただし、エクスポート フィルタをカスタマイズして、特定の種類のログを追加または除外できます。エクスポート フィルタは、Google ロギングクエリ言語に基づいています。

ログのカスタム フィルタを定義するには、次の手順を行います。

  1. ロギングクエリ言語を使用してログのカスタム フィルタを作成して、フィルタを定義します。次のドキュメントでは、この種類のフィルタを定義する方法について説明しています。/logging/docs/view/logging-query-language

  2. [フィルタ設定をエクスポート] タブに用意されたリンクを使用してログ エクスプローラに移動し、新しいクエリを [クエリ] フィールドにコピーし、[クエリを実行] をクリックしてテストします。

    ログ エクスプローラに一致するログが Chronicle にエクスポートする予定であるログと同一であることを確認します。

[フィルタのエクスポート設定] タブで次の手順を実行します。

  1. フィルタの準備ができたら、編集アイコンをクリックして、[フィルタをエクスポート] フィールドにフィルタを貼り付けます。

  2. [カスタム フィルタを保存] をクリックします。新しいカスタム フィルタは、Chronicle アカウントにエクスポートされたすべての新しいログに対して機能します。

  3. エクスポート フィルタをデフォルトのバージョンに戻すには、[デフォルトに戻す] をクリックします。 まず、カスタム フィルタのコピーを保存してください。

Cloud Audit のログフィルタを調整する

Cloud Audit Data Access ログは、脅威検出値があまり高くない大量のログを生成する可能性があります。これらのログを Chronicle に送信することを選ぶ場合は、ルーティン アクティビティによって生成されたログを除外する必要があります。

次のエクスポート フィルタは、データアクセス ログをキャプチャし、Cloud Storage と Cloud SQL の読み取りや一覧表示のオペレーションなど、ボリュームが多いイベントを除外します。

  ( `log_id("cloudaudit.googleapis.com/data_access")`
  AND NOT protoPayload.methodName =~ "^storage\.(buckets|objects)\.(get|list)$"
  AND NOT protoPayload.request.cmd = "select" )

Cloud Audit Data Access ログの調整の詳細については、こちらをご覧ください。

エクスポート フィルタの例

次のエクスポート フィルタの例は、Chronicle アカウントへのエクスポートから特定の種類のログに含めるか除外するかの方法を示しています。

エクスポート フィルタの例 1: 追加のログタイプを含める

次のエクスポート フィルタでは、デフォルトのログに加えて、アクセスの透明性ログがエクスポートされます。

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
log_id("cloudaudit.googleapis.com/access_transparency")

エクスポート フィルタの例 2: 特定のプロジェクトからの追加ログを含める

次のエクスポート フィルタでは、デフォルトのログに加えて、特定のプロジェクトからアクセスの透明性ログがエクスポートされます。

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "projects/my-project-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"

エクスポート フィルタの例 3: 特定のフォルダからの追加ログを含める

次のエクスポート フィルタでは、デフォルトのログに加えて、特定のフォルダからアクセスの透明性ログがエクスポートされます。

log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event") OR
logName = "folders/my-folder-id/logs/cloudaudit.googleapis.com%2Faccess_transparency"

エクスポート フィルタの例 4: 特定のプロジェクトからのログを除外する

次のエクスポート フィルタでは、特定のプロジェクトを除き、Google Cloud 組織全体からデフォルトのログがエクスポートされます。

(log_id("dns.googleapis.com/dns_queries") OR
log_id("cloudaudit.googleapis.com/activity") OR
log_id("cloudaudit.googleapis.com/system_event")) AND
(NOT logName =~ "^projects/my-project-id/logs/.*$")

Chronicle に Google Cloud アセット メタデータをエクスポートする

Google Cloud アセットのメタデータを Chronicle にエクスポートできます。 このアセットのメタデータは Google Cloud Asset Inventory から取得され、次のようなアセット、リソース、ID に関する情報で構成されています。

  • 環境
  • 場所
  • ゾーン
  • ハードウェア モデル
  • リソースと ID 間のアクセス制御の関係

Chronicle アカウントにエクスポートされる特定の種類の Google Cloud アセットのメタデータは次のとおりです。

  • GCP_BIGQUERY_CONTEXT
  • GCP_CLOUD_FUNCTIONS_CONTEXT
  • GCP_COMPUTE_CONTEXT
  • GCP_IAM_CONTEXT
  • GCP_IAM_ANALYSIS
  • GCP_KUBERNETES_CONTEXT
  • GCP_NETWORK_CONNECTIVITY_CONTEXT
  • GCP_RESOURCE_MANAGER_CONTEXT
  • GCP_SQL_CONTEXT
  • GCP_STORAGE_CONTEXT

Google Cloud アセットのメタデータの例を次に示します。

  • アプリケーション名: Google-iamSample/0.1
  • プロジェクト名: projects/my-project

Resource Manager のコンテキスト ログ フィールドの例には、assetTyperesource.data.nameresource.version などがあります。

リソースタイプの詳細については、Cloud Asset Inventory でサポートされるリソースタイプをご覧ください。

Google Cloud アセットのメタデータを Chronicle にエクスポートするには、[Cloud アセットのメタデータ] 切り替えを [有効] に設定します。

Cloud アセットのメタデータを有効にします。

フィールド マッピング リファレンスとサポートされるリソースタイプ

次の表に、Chronicle がサポートするコンテキスト パーサー、対応する取り込みラベル、サポートされているリソースタイプを示します。

コンテキスト パーサーのマッピング リファレンス ドキュメントを表示するには、テーブル内の対応するコンテキスト パーサー名をクリックします。

サービス名 取り込みラベル サポートされるリソースタイプ
BigQuery GCP_BIGQUERY_CONTEXT
Resource Manager GCP_RESOURCE_MANAGER_CONTEXT
Cloud SQL GCP_SQL_CONTEXT
Cloud Functions GCP_CLOUD_FUNCTIONS_CONTEXT
Identity and Access Management GCP_IAM_CONTEXT
Network Connectivity Center GCP_NETWORK_CONNECTIVITY_CONTEXT
Google Kubernetes Engine GCP_KUBERNETES_CONTEXT
Compute Engine GCP_COMPUTE_CONTEXT

Chronicle に Security Command Center の検出結果をエクスポートする

Security Command Center Premium の Event Threat Detection(ETD)の検出結果と他のすべての検出結果を Chronicle にエクスポートできます。

Event Threat Detection の検出結果の詳細については、Security Command Center の概要をご覧ください。

Security Command Center Premium ティアの検出結果を Chronicle にエクスポートするには、[Security Command Center Premium の検出結果] の切り替えを有効に設定します。

Security Command Center Premium のティアの検出結果を有効にする

Chronicle に機密データの保護のデータをエクスポートする

機密データの保護のアセット メタデータ(DLP_CONTEXT)を取り込むには、次の手順を行います。

  1. このドキュメントの前のセクションを完了して、Google Cloud データの取り込みを有効にします。
  2. データをプロファイリングするように機密データの保護を構成します。
  3. スキャン設定を構成して、Chronicle にデータ プロファイルを公開します。

BigQuery データのデータ プロファイルの作成方法について詳しくは、機密データの保護のドキュメントをご覧ください。

Google Cloud データ取り込みの無効化

  1. [Chronicle の接続を解除し、Google Cloud ログの Chronicle への送信を停止する] チェックボックスをオンにします。

  2. [Chronicle の接続を解除] をクリックします。

    Chronicle の接続を解除する。

トラブルシューティング

  • Chronicle システムにリソースと ID の関係がない場合は、[Chronicle に Cloud ログをエクスポート] 切り替えを無効に設定してから、再度有効に設定します。
  • アセットのメタデータは Chronicle に定期的に取り込まれます。 Chronicle UI と API に変更が表示されるまでに数時間かかります。

次のステップ

  • Chronicle の担当者から提供されたお客様固有の URL を使用して、Chronicle アカウントを開きます。
  • Chronicle の詳細を確認する。