arrow_back

Security Command Center で検出結果を分析する

ログイン 参加
700 以上のラボとコースにアクセス

Security Command Center で検出結果を分析する

ラボ 1時間 universal_currency_alt クレジット: 1 show_chart 中級
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1164

Google Cloud セルフペース ラボのロゴ

概要

Security Command Center(SCC)は、次のようなユーザーの作業を支援するセキュリティ モニタリング プラットフォームです。

  • セキュリティに関連する Google Cloud リソースの構成ミスを検出する。
  • Google Cloud 環境の未対応の脅威についてレポートする。
  • Google Cloud アセット全体にわたる脆弱性を修正する。

このラボでは、Security Command Center について学び、このサービスのアセットの分析とエクスポートの機能について確認します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • Pub/Sub への継続的なエクスポート パイプラインを作成する。
  • SCC の検出結果を BigQuery テーブルにエクスポートして分析する。

前提条件

このラボを開始する前に、次の知識があることが推奨されます。

  • クラウド コンピューティングのコンセプト
  • Google Cloud コンソール
  • 検出結果の重大度の分類(推奨されますが必須ではありません)
  • Pub/Sub と BigQuery(推奨されますが必須ではありません)。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

シナリオ

5ce916afc496a60c.jpeg


Cymbal Bank は、米国のリテールバンクで、全米 50 州に 2,000 以上の支店があります。堅牢な支払いプラットフォームを基盤とした包括的なデビットおよびクレジット サービスを提供しています。従来の金融サービス機関からの変革を目指し、デジタル トランスフォーメーションを推進しています。

Cymbal Bank は、1920 年に Troxler という名前で設立されました。Cymbal Group 独自の ATM への積極的な投資を行っていた Cymbal Group は、Troxler を 1975 年に買収しました。Cymbal Bank は、全米をリードする銀行に成長するにつれ、支店での対面サービスと 2014 年にリリースしたアプリを通じオンラインにおいても、カスタマー エクスペリエンスを近代化させることに注力しました。Cymbal Bank は全国で 42,000 人を雇用し、2019 年の収益は 240 億ドルでした。

Cymbal Bank は自社の銀行アプリケーションに一元化されたセキュリティ モニタリング プラットフォームを統合することで Google Cloud リソース全体での脅威のモニタリングや脆弱性の修復に役立てることに関心があります。クラウド セキュリティ エンジニアであるあなたは、Security Command Center の利点について CTO にプレゼンテーションできるように、このサービスのエクスポートおよび分析の機能について学ぶことを任されました。

タスク 1. Pub/Sub への継続的なエクスポート パイプラインを作成する

Security Command Center では、次のような複数の方法を使用して、セキュリティに関する検出結果を外部リソースにエクスポートできます。

  • BigQuery データセットへの継続的なエクスポート
  • Pub/Sub への継続的エクスポート
  • CSV ファイルへの 1 回限りのエクスポート
  • JSON ファイルとしての Cloud Storage バケットへの 1 回限りのエクスポート

このタスクでは、検出結果を Pub/Sub に継続的にエクスポートするように構成する方法を確認します。

注: 検出結果の継続的エクスポートは、新しく作成された検出結果に対してのみ機能します。

Pub/Sub への継続的なエクスポートは、通常、Splunk や QRadar などの外部セキュリティ管理システムに検出結果を転送するために使用されます。

このラボでは、検出結果を Pub/Sub トピックにエクスポートし、Pub/Sub サブスクリプションからメッセージを取得してアプリケーションをシミュレートします。

注: ドキュメント ページで、Pub/Sub について詳しく確認できます。

Pub/Sub トピックとサブスクリプションを作成する

SCC エクスポートの構成を開始する前に、まず Pub/Sub トピックとサブスクリプションを作成する必要があります。

  1. Google Cloud コンソールのタイトルバーにある検索フィールドに「Pub/Sub」と入力し、Enter キーを押します。次に、検索結果の一番上に表示される「Pub/Sub」をクリックします。
  2. [トピック] ページで [トピックを作成] ボタンをクリックします。
  3. トピック ID に「export-findings-pubsub-topic」と入力します。
  4. 残りのすべての設定はデフォルトのままにして、[作成] をクリックします。

これにより、Pub/Sub トピックと関連するサブスクリプションの両方の作成プロセスが自動的に開始されます。

  1. 左側のメニューで [サブスクリプション] をクリックします。

  2. [export-findings-pubsub-topic-sub] をクリックします。サブスクリプションが表示されない場合は、ブラウザページを更新してください。

これにより、このサブスクリプションでパブリッシュされたメッセージに関連する統計情報と指標のダッシュボードが表示されます。

検出結果の継続的なエクスポートを作成する

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[セキュリティ] > [リスクの概要] をクリックし、ページの上部にある[設定] をクリックします。

  2. [継続的エクスポート] タブをクリックします。

  3. [Pub/Sub のエクスポートを作成] ボタンをクリックします。

  4. [継続的なエクスポート名] に「export-findings-pubsub」と入力します。

  5. [継続的なエクスポートの説明] に「検出結果の Pub/Sub および BigQuery への継続的なエクスポート」と入力します。

  6. [プロジェクト名] で、作業中のプロジェクトのプロジェクト ID である を選択します(Qwiklabs リソースは選択しないでください)。

  7. [Cloud Pub/Sub トピックを選択してください] フィールドで、[projects//topics/export-findings-pubsub-topic] を選択します。

  8. 検出結果クエリを次のように設定します。

state="ACTIVE" AND NOT mute="MUTED"

このクエリにより、新しく作成された Pub/Sub トピックに、すべての新しい ACTIVE および NOT MUTED の検出結果が転送されます。

注: 複数の検出結果が一致したというメッセージが表示される場合があります。既存の検出結果は Pub/Sub トピックに転送されないことに注意してください。
  1. [保存] をクリックします。

これで、Security Command Center から Pub/Sub への継続的エクスポートが作成されました。

Pub/Sub にエクスポートする新しい検出結果を作成する

このセクションでは、新しい検出結果を作成し、Pub/Sub へのエクスポート方法を確認します。

  1. 新しい Cloud Shell セッションを開きます(Cloud Shell をアクティブにするアイコン)。

  2. 次のコマンドを実行して、新しい仮想マシンを作成します。

gcloud compute instances create instance-1 --zone={{{project_0.default_zone|lab zone}}} \ --machine-type e2-micro \ --scopes=https://www.googleapis.com/auth/cloud-platform
  1. 次のように出力されることを確認します。

出力:

NAME: instance-1 ZONE: us-central-a MACHINE_TYPE: e2-micro PREEMPTIBLE: INTERNAL_IP: 10.128.0.2 EXTERNAL_IP: 34.69.82.225 STATUS: RUNNING 注:ERROR: (gcloud.compute.instances.create) You do not currently have an active account selected」というエラー メッセージが表示された場合は、コマンドを再実行してください。

このコマンドは、パブリック IP アドレスとデフォルトのサービス アカウントがアタッチされた新しい VM インスタンスを作成します。

このアクティビティを実行すると、3 つの新しい脆弱性検出結果がすぐに生成されます。

  • パブリック IP アドレス
  • デフォルトのサービス アカウントが使用されている
  • Compute のセキュアブートが無効
  1. Google Cloud コンソールのタイトルバーにある検索フィールドに「Pub/Sub」と入力し、Enter キーを押します。次に、検索結果の一番上に表示される [Pub/Sub] をクリックします。左側のメニューで [サブスクリプション] をクリックします。

  2. [export-findings-pubsub-topic-sub] サブスクリプションを選択します。

  3. [メッセージ] タブをクリックします。

  4. [確認応答メッセージを有効にする] チェックボックスをオンにします。

  5. [pull] ボタンをクリックします。

このサブスクリプションのメッセージのリストが表示されます。これらは、パブリック IP アドレス、デフォルトのサービス アカウントが使用されている、Compute のセキュアブートが無効になっている脆弱性に関連しています。

注: メッセージのリストの [列表示オプション] ボタンをクリックすると、表示するメッセージの詳細を変更できます。詳細については、body.finding.category などを含めることができます。

Pub/Sub サブスクリプションからメッセージを pull することで、これらのメッセージを Splunk などの別のセキュリティ モニタリング システムに転送できるアプリケーションの動作をシミュレートしました。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Pub/Sub への継続的なエクスポート パイプラインを作成する

タスク 2. BigQuery を使用して SCC の検出結果をエクスポートして分析する

SCC の検出結果は、BigQuery データセットにエクスポートすることもできます。これは、組織で最も頻繁に発生する検出結果の種類を確認するために使用できる分析ダッシュボードを構築するのに役立ちます。

現時点では、継続的エクスポートの構成はコマンドを使用してのみ設定できます(コンソールでは設定できません)。

  1. Cloud Shell セッションを開きます(Cloud Shell をアクティブにするアイコン)。
  2. Cloud Shell セッションで次のコマンドを実行して、新しい BigQuery データセットを作成します。
PROJECT_ID=$(gcloud config get project) bq --location={{{project_0.default_region|lab region}}} --apilog=/dev/null mk --dataset \ $PROJECT_ID:continuous_export_dataset
  1. このプロジェクトではまだ SCC コマンドライン インターフェースを使用していないため、SCC サービスを有効にする必要があります。次のコマンドを実行して、現在のプロジェクトでサービスを有効にします。
gcloud services enable securitycenter.googleapis.com
  1. 次のコマンドを入力して、新しいエクスポートを作成します。
gcloud scc bqexports create scc-bq-cont-export --dataset=projects/{{{project_0.project_id}}}/datasets/continuous_export_dataset --project={{{project_0.project_id|PROJECT_ID}}}

次のような出力メッセージが表示されることを確認します。

出力:

Created. dataset: projects/qwiklabs-gcp-04-571fad72c1e8/datasets/continuous_export_dataset mostRecentEditor: student-03-fbc57ac17933@qwiklabs.net name: projects/102856953036/bigQueryExports/SCC-bq-cont-export principal: service-org-616463121992@gcp-sa-scc-notification.iam.gserviceaccount.com updateTime: '2023-05-31T15:44:22.097585Z'

新しい検出結果が BigQuery にエクスポートされると、SCC では新しいテーブルが作成されます。これで、新しい SCC の検出結果を開始できます。

  1. 次のコマンドを実行して、IAM 権限のない 3 つの新しいサービス アカウントを作成し、それらのユーザー管理のサービス アカウント キーを 3 つ作成します。
for i in {0..2}; do gcloud iam service-accounts create sccp-test-sa-$i; gcloud iam service-accounts keys create /tmp/sa-key-$i.json \ --iam-account=sccp-test-sa-$i@{{{project_0.project_id|PROJECT_ID}}}.iam.gserviceaccount.com; done

SCC で新しい検出結果が作成されると、BigQuery にエクスポートされます。エクスポート パイプラインでは、findings という新しいテーブルを作成してこれを格納します。

  1. 次のコマンドを実行して、新しく作成された検出結果に関する情報を BigQuery から取得します。
bq query --apilog=/dev/null --use_legacy_sql=false \ "SELECT finding_id,event_time,finding.category FROM continuous_export_dataset.findings"

間もなく次のような出力が返されます。

出力:

+----------------------------------+---------------------+------------------------------------------+ | finding_id | event_time | category | +----------------------------------+---------------------+------------------------------------------+ | c5235ebb04b140198874ce52080422b8 | 2024-11-27 08:08:08 | Persistence: Service Account Key Created | | 94d933ee9803d0f1c807551fd22a0269 | 2024-11-27 08:08:04 | USER_MANAGED_SERVICE_ACCOUNT_KEY | +----------------------------------+---------------------+------------------------------------------+ 注: これらの検出結果が生成されるまでには、10 分以上かかる場合があります。このような出力が返されない場合は、上記のコマンドを再実行してください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 検出結果を BigQuery データセットにエクスポートする

検出結果を Cloud Storage バケットにエクスポートし、BigQuery テーブルを作成する

Security Command Center は通常、既存の成熟した Google Cloud インフラストラクチャで有効になります。SCC を有効にすると、既存の脆弱性のスキャンが開始され、最終的には既存のインフラストラクチャに関する数千件の検出結果が報告される可能性があります。

SCC インターフェースでは、これらの検出結果の並べ替えやフィルタリングを行うのに適した方法が提供されない可能性があります。そのため、これらの検出結果を BigQuery データベースにエクスポートして、検出結果に対して分析を実行するのが一般的な方法です。

検出結果の BigQuery への直接エクスポートは、まだサポートされていません。代わりに、Google Cloud Storage バケットを一時的なストレージ ソリューションとして使用できます。

Cloud Storage バケットを作成する

既存の検出結果を BigQuery インターフェースにエクスポートするには、まず Cloud Storage バケットにエクスポートする必要があります。このセクションでは、ストレージ バケットを作成します。

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Cloud Storage] > [バケット] をクリックします。

  2. [作成] ボタンをクリックします。

  3. Google Cloud のすべてのバケット名は一意である必要があります。バケット名を「scc-export-bucket-」に設定します。

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

  5. [ロケーション タイプ] を [リージョン] に設定します。

  6. ロケーションとして、「」を選択します。

  7. 他の設定は変更しないでください。ページを下にスクロールして [作成] をクリックします。

  8. このバケットに対して「公開アクセス禁止を適用する」かどうかを尋ねられたら、[確認] ボタンをクリックします。

既存の検出結果を JSONL データとしてエクスポートする

このセクションでは、検出結果をエクスポートして BigQuery データベースで使用します。

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[セキュリティ] > [検出結果] をクリックします。

  2. [エクスポート] ボタンをクリックします

  3. プルダウン リストから [Cloud Storage] を選択します。

  4. プロジェクト名として、プロジェクト ID を (Qwiklabs リソースは選択しないでください)として選択します。

  5. [参照] ボタンをクリックして、エクスポート パスを選択します。

  6. [scc-export-bucket-] ボタンの横にある矢印をクリックします。

  7. ファイル名を「findings.jsonl」に設定し、[選択] をクリックします。

  8. [形式] プルダウン リストで [JSONL] を選択します。

  9. 期間を [全期間] に変更します。

    デフォルトの検出結果クエリは変更しないでください。

    最終的な「エクスポート先」フォームは次のようになります。

構成へのエクスポートの例
  1. [エクスポート] ボタンをクリックします

BigQuery でテーブルを作成する

このセクションでは、エクスポートした検出結果データを使用して、BigQuery にテーブルを作成します。

  1. Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[BigQuery] > [Studio] をクリックします。

  2. 左側の [探索] メニューで、[+ データを追加] ボタンをクリックします。

  3. 新しい [データ追加] ウィンドウで、最も人気のあるデータソースとして [Google Cloud Storage] をクリックします。

  4. [外部テーブルまたは BigLake テーブル] をクリックして、GCS データに BigLake テーブルと外部テーブルを手動で作成し、次のパラメータを設定します。

設定
テーブルの作成元 Google Cloud Storage
GCS バケットからファイルを選択 scc-export-bucket-/findings.jsonl
ファイル形式 JSONL
データセット continuous_export_dataset
テーブル old_findings
テーブルタイプ Native
スキーマ [テキストとして編集] 切り替えを有効にする
  1. 次のスキーマを貼り付けます。
[ { "mode": "NULLABLE", "name": "resource", "type": "JSON" }, { "mode": "NULLABLE", "name": "finding", "type": "JSON" } ]
  1. [テーブルを作成] ボタンをクリックします。

  2. 新しいテーブルが作成されたら、通知の [テーブルに移動] リンクをクリックします。

  3. [プレビュー] タブをクリックし、既存の検出結果を表示できることを確認します。

BigQuery テーブルの値

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 検出結果を Cloud Storage バケットにエクスポートし、BigQuery テーブルを作成する

お疲れさまでした

このラボでは、Security Command Center について学び、アセットを分析し、検出結果を BigQuery にエクスポートしました。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 6 月 20 日

ラボの最終テスト日: 2025 年 6 月 20 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。