Google Cloud Platform のログ データをMicrosoft Sentinelに取り込む

組織は、設計上、または継続的な要件に関係なく、マルチクラウド アーキテクチャにますます移行しています。 これらの組織では、アプリケーションを使用し、Google Cloud Platform (GCP) を含む複数のパブリック クラウドにデータを格納する組織が増えています。

この記事では、GCP データをMicrosoft Sentinelに取り込んで完全なセキュリティ カバレッジを取得し、マルチクラウド環境での攻撃を分析および検出する方法について説明します。 始める前に、AzureとGCPの両方で必要なアクセス権限を含むGCPコネクタの前提条件を確認してください。

GCP Pub/Sub コネクタを使用すると、コードレス コネクタ フレームワーク (CCF) に基づいて、GCP Pub/Sub 機能を使用して GCP 環境からログを取り込むことができます。

  • Google Cloud Platform (GCP) Pub/Sub Audit Logs コネクタは、GCP リソースへのアクセスの監査証跡を収集します。 アナリストは、これらのログを監視して、リソース アクセス試行を追跡し、GCP 環境全体で潜在的な脅威を検出できます。

  • Google Cloud Platform (GCP) セキュリティ コマンド センター コネクタは、Google Cloud の堅牢なセキュリティとリスク管理プラットフォームである Google セキュリティ コマンド センターから結果を収集します。 アナリストは、これらの結果を表示して、資産のインベントリと検出、脆弱性と脅威の検出、リスクの軽減と修復など、organizationのセキュリティ体制に関する分析情報を得ることができます。

  • Google Kubernetes Engine コネクタは、Google Kubernetes Engine (GKE) ログを収集します。 アナリストは、これらのログを監視してクラスター アクティビティ、ワークロードの動作、セキュリティ イベントを追跡できます。これにより、アナリストは Kubernetes ワークロードを監視し、パフォーマンスを分析し、GKE クラスター全体で潜在的な脅威を検出できます。

前提条件

開始する前に、次のことを確認します。

  • Microsoft Sentinel ソリューションが有効になっています。
  • 定義済みのMicrosoft Sentinel ワークスペースが存在します。
  • GCP 環境が存在し、取り込む次のいずれかのログの種類を生成するリソースが含まれています。
    • GCP 監査ログ
    • Google セキュリティ コマンド センターの結果
  • Azure ユーザーには、Microsoft Sentinel共同作成者ロールがあります。
  • GCP ユーザーは、GCP プロジェクトでリソースを作成および編集するためのアクセス権を持っています。
  • GCP Identity and Access Management (IAM) API と GCP Cloud Resource Manager API の両方が有効になっています。

GCP 環境を設定する

GCP 環境で設定する必要がある点は 2 つあります。

  1. GCP IAM サービスで次のリソースを作成して、GCP でMicrosoft Sentinel認証を設定します。

    • ワークロード アイデンティティ プール
    • ワークロード ID プロバイダー
    • サービス アカウント
    • 役割
  2. GCP Pub/Sub サービスで次のリソースを作成して、GCP でログ収集を設定し、Microsoft Sentinelにインジェストします。

    • トピック
    • トピックのサブスクリプション

環境は、次の 2 つの方法のいずれかで設定できます。

  • Terraform APIによるGCPリソースの作成:Terraformはリソース作成およびアイデンティティ・アクセス管理のためのAPIを提供します( GCPコネクタの前提条件を参照)。 Microsoft Sentinelは、必要なコマンドを API に発行する Terraform スクリプトを提供します。

  • GCP 環境を手動で設定し、GCP コンソールでリソースを自分で作成します。

    注:

    Security Command Center からログ収集用の GCP Pub/Sub リソースを作成するために使用できる Terraform スクリプトはありません。 これらのリソースは手動で作成する必要があります。 引き続き Terraform スクリプトを使用して、認証用の GCP IAM リソースを作成できます。

    重要

    リソースを手動で作成する場合は、すべての認証 (IAM) リソースを同じ GCP プロジェクトに作成する必要があります。そうしないと機能しません。 (Pub/Sub リソースは別のプロジェクトに含めることができます)。

GCP 認証を設定する

すべての GCP コネクタに必要です。

Terraformスクリプトを使ってGCP認証リソースを設定するには、以下の手順をご利用ください。

  1. GCP Cloud Shellを開きます。

  2. エディターで次のコマンドを入力して、操作する プロジェクト を選択します。

    gcloud config set project {projectId}  
    
  3. Microsoft Sentinelによって提供される Terraform 認証スクリプトを、Sentinel GitHub リポジトリから GCP Cloud Shell環境にコピーします。

    1. Terraform GCPInitialAuthenticationSetup スクリプト ファイルを開き、その内容をコピーします。

      注:

      Azure Government クラウドに GCP データを取り込むには、代わりに GCPInitialAuthenticationSetupGov Terraform スクリプトを使用します。

    2. Cloud Shell環境にディレクトリを作成し、それを入力して、新しい空のファイルを作成します。

      mkdir {directory-name} && cd {directory-name} && touch initauth.tf
      
    3. Cloud Shell エディターで initauth.tf を開き、スクリプト ファイルの内容を貼り付けます。

  4. ターミナルに次のコマンドを入力して、作成したディレクトリで Terraform を初期化します。

    terraform init 
    
  5. Terraform が初期化されたことを示す確認メッセージが表示されたら、ターミナルで次のコマンドを入力してスクリプトを実行します。

    terraform apply 
    
  6. スクリプトで Microsoft テナント ID の入力を求められたら、コピーしてターミナルに貼り付けます。

    注:

    テナント ID は、Microsoft Sentinel ポータルの GCP Pub/Sub Audit Logs コネクタ ページ、または [ディレクトリ ID] 列の歯車アイコンを選択して、Azure portalの任意の場所にアクセスできるポータル設定画面で見つけてコピーできます。 ポータル設定画面のスクリーンショット。

  7. ワークロード ID プールが既にAzure用に作成されているかどうかを確認するメッセージが表示されたら、それに応じて [はい] または [いいえ] と答えます。

  8. 一覧表示されているリソースを作成するかどうかを確認するメッセージが表示されたら、「 はい」と入力します

スクリプトからの出力が表示されたら、後で使用できるようにリソース パラメーターを保存します。

GCP 監査ログを設定する

このセクションの手順は、Microsoft Sentinel GCP Pub/Sub Audit Logs コネクタを使用する場合の手順です。

Microsoft Sentinel GCP Pub/Sub Security Command Center コネクタを使用するには、GCP Security Command Center setup を参照してください。

Microsoft Sentinel Google Kubernetes Engine コネクタの使用については、「GKE ログの設定」を参照してください。

Terraformを使って監査ログ収集に必要なGCPパブリック/サブリソースを作成するには、以下の手順をご利用ください。

  1. Sentinel GitHub リポジトリから GCP Cloud Shell環境内の別のフォルダーに、Microsoft Sentinelによって提供される Terraform 監査ログのセットアップ スクリプトをコピーします。

    1. Terraform GCPAuditLogsSetup スクリプト ファイルを 開き、その内容をコピーします。

      注:

      將GCP數據匯入Azure Government cloud時,請用GCPAuditLogsSetup script for Azure Government

    2. Cloud Shell環境に別のディレクトリを作成し、それを入力して、新しい空のファイルを作成します。

      mkdir {other-directory-name} && cd {other-directory-name} && touch auditlog.tf
      
    3. Cloud Shell エディターで auditlog.tf を開き、スクリプト ファイルの内容を貼り付けます。

  2. ターミナルに次のコマンドを入力して、新しいディレクトリで Terraform を初期化します。

    terraform init 
    
  3. Terraform が初期化されたことを示す確認メッセージが表示されたら、ターミナルで次のコマンドを入力してスクリプトを実行します。

    terraform apply 
    

    単一の Pub/Sub を使用して組織全体からログを取り込むには、次のように入力します。

    terraform apply -var="organization-id= {organizationId} "
    
  4. 一覧表示されているリソースを作成するかどうかを確認するメッセージが表示されたら、「 はい」と入力します

スクリプトからの出力が表示されたら、後で使用できるようにリソース パラメーターを保存します。

Microsoft Sentinelで GCP Pub/Sub コネクタの設定に進む前に、5 分待ちます。

GCP Pub/Sub セキュリティ コマンド センター コネクタも設定する場合は、次のセクションに進みます。

それ以外の場合は、「Microsoft Sentinelで GCP Pub/Sub コネクタを設定する」に進みます。

GCP セキュリティ コマンド センターを設定する

このセクションの手順は、Microsoft Sentinel GCP Pub/Sub セキュリティ コマンド センター コネクタを使用するための手順です。

Microsoft Sentinel GCP Pub/Sub監査ログコネクタを使用するには「GCP監査ログの設定」を参照してください。

Microsoft Sentinel Google Kubernetes Engine コネクタの使用については、「GKE ログの設定」を参照してください。

結果の継続的エクスポートを構成する

Google Cloud ドキュメントの指示に従って、GCP Pub/Sub サービスへの今後の SCC 結果の Pub/Sub エクスポートを構成 します。

  1. エクスポートするプロジェクトを選択するように求められたら、この目的で作成したプロジェクトを選択するか、 新しいプロジェクトを作成します

  2. 結果をエクスポートする Pub/Sub トピックを選択するように求められたら、「 発行トピックを作成する 」の手順に従って新しいトピックを作成します。

Google Kubernetes Engine コネクタを設定する

このセクションの手順は、Microsoft Sentinel Google Kubernetes Engine コネクタを使用するための手順です。

Microsoft Sentinel GCP Pub/Sub Security Command Center コネクタを使用するには、GCP Security Command Center setup を参照してください。

Microsoft Sentinel GCP Pub/Sub Audit Logs コネクタを使用するには、GCP Audit Logs のセットアップを参照してください。

Terraformを使って、GKEログ収集に必要なGCPパブリック/サブリソースを作成するには以下の手順を踏みます。

  1. Sentinel GitHub リポジトリから GCP Cloud Shell環境内の別のフォルダーに、Microsoft Sentinelによって提供される Terraform 監査ログのセットアップ スクリプトをコピーします。

    1. Terraform GoogleKubernetesEngineLogSetup スクリプト ファイルを開き、その内容をコピーします。

    2. Cloud Shell環境に別のディレクトリを作成し、それを入力して、新しい空のファイルを作成します。

      mkdir {other-directory-name} && cd {other-directory-name} && touch gkelog.tf
      
    3. Cloud Shell エディターで gkelog.tf を開き、スクリプト ファイルの内容を貼り付けます。

  2. ターミナルに次のコマンドを入力して、新しいディレクトリで Terraform を初期化します。

    terraform init 
    
  3. Terraform が初期化されたことを示す確認メッセージが表示されたら、ターミナルで次のコマンドを入力してスクリプトを実行します。

    terraform apply 
    

    単一の Pub/Sub を使用して組織全体からログを取り込むには、次のように入力します。

    terraform apply -var="organization-id= {organizationId} "
    
  4. 一覧表示されているリソースを作成するかどうかを確認するメッセージが表示されたら、「 はい」と入力します

スクリプトからの出力が表示されたら、後で使用できるようにリソース パラメーターを保存します。

Microsoft Sentinelで GCP Pub/Sub コネクタの設定に進む前に、5 分待ちます。

Microsoft Sentinelで GCP Pub/Sub コネクタを設定する

GCP 環境を設定したら、Microsoft Sentinelにコネクタ ソリューションをインストールし、GCP プロジェクトのコレクターを構成します。 設定するコネクタのタブを選択します。

Microsoft Sentinelに GCP Pub/Sub Audit Logs コネクタをインストールして接続するには、次の手順を実行します。

  1. Azure portalを開き、Microsoft Sentinel サービスに移動します。

  2. コンテンツ ハブの検索バーに、「Google Cloud Platform 監査ログ」と入力します。

  3. Google Cloud Platform 監査ログ ソリューションをインストールします。

  4. [ データ コネクタ] を選択し、検索バーに 「GCP Pub/Sub Audit Logs」と入力します

  5. GCP Pub/Sub Audit Logs コネクタを選択します。

  6. 詳細ウィンドウで、[ コネクタ ページを開く] を選択します。

  7. [ 構成 ] 領域で、[ 新しいコレクターの追加] を選択します。

    GCP コネクタの構成のスクリーンショット

  8. Connect new collector 」パネルで、 GCP環境を設定した際に作成したリソースパラメータを入力します。

    新しいコレクター側パネルのスクリーンショット。

  9. すべてのフィールドの値が GCP プロジェクトの対応する値と一致していることを確認し (スクリーンショットの値はリテラルではなくサンプルです)、[ 接続] を選択します。

GCP データがMicrosoft Sentinel環境にあることを確認する

以下の手順を使って、Microsoft SentinelがGCPからデータを受信していることを確認しましょう。

  1. GCPログがMicrosoft Sentinelに正常に取り込まれているかを確認するために、Microsoft SentinelでGCPのPub/Subコネクタを設定する手順を終えてから30分後に以下のクエリを実行してください。

    GCPAuditLogs 
    | take 10 
    
  2. データコネクターのMicrosoft Sentinelヘルス機能を有効にしてください。

トラブルシューティング

GCP Pub/Sub コネクタを設定するときの一般的な問題を解決するには、次のガイダンスを使用します。

  1. Terraformスクリプトを実行する際に「Error 409: Requested entity already exists」と表示されます:Terraformの状態は、Terraformが管理するリソースを追跡するために使用するファイルです。 もし資源がすでにGCPに存在しているなら、Terraformの状態にインポートして、Terraformがそれらを追跡し、再作成を試みるのを防ぎましょう。 たとえば、"WorkloadIdentityPool の作成中にエラーが発生しました: googleapi: エラー 409: 要求されたエンティティが既に存在します" というエラー メッセージが表示されたら、Terraform が宣言によって管理できるように、既存のワークロード ID プールを Terraform 状態にインポートします。 プールIDとプロジェクトIDを見つけ、次のコマンドを使って既存のワークロード識別プールをローカルのTerraformステートにインポートします:
terraform import google_iam_workload_identity_pool.<POOL_RESOURCE_NAME> projects/<PROJECT_ID>/locations/global/workloadIdentityPools/<POOL_ID>

次の手順

この記事では、GCP Pub/Sub コネクタを使用して GCP データをMicrosoft Sentinelに取り込む方法について説明しました。 Microsoft Sentinelの詳細については、次の記事を参照してください。