このページでは、アセット、検出結果、セキュリティ マークなどの Security Command Center のデータをエクスポートする 2 つの方法について説明します。
- 現在の検出結果、アセット、セキュリティ マークの 1 回限りのエクスポート
- 新しい検出結果を Pub/Sub に自動的にエクスポートする継続的エクスポート
Security Command Center データは、Google Cloud コンソール、Google Cloud CLI、または Security Command Center API を使用してエクスポートできます。
検出結果を BigQuery にストリーミングすることもできます。詳細については、分析のために検出結果を BigQuery にストリーミングするをご覧ください。
1 回限りのエクスポート
1 回限りのエクスポートでは、現在と過去の検出結果とアセットを手動で転送してダウンロードできます。
検出結果の場合、Google Cloud コンソールを使用して、JSON、JSONL、または CSV 形式のデータを Cloud Storage バケットに転送できます。また、限られた数の検出結果を CSV 形式でワークステーションにダウンロードすることもできます。
アセットの場合、Google Cloud コンソールからローカル ワークステーションに CSV ファイルとしてデータをダウンロードできます。
権限
1 回限りのエクスポートを実行するには、次のロールが必要です。
Identity and Access Management(IAM)ロールのセキュリティ センター管理閲覧者(
roles/securitycenter.adminViewer
)、または次の権限を持つロール。resourcemanager.organizations.get
(Security Command Center を組織レベルで有効にする場合にのみ必要)resourcemanager.projects.get
(Security Command Center をプロジェクト レベルで有効にする場合に必要)securitycenter.assets.group
securitycenter.assets.list
securitycenter.findings.group
securitycenter.findings.list
securitycenter.sources.get
securitycenter.sources.list
securitycenter.userinterfacemetadata.get
ストレージ管理者のロール。Cloud Storage バケットにデータを保存できます。
Security Command Center の IAM ロールは、組織レベル、フォルダレベル、またはプロジェクト レベルで付与できます。検出結果、アセット、セキュリティ ソースを表示、編集、作成、更新する権限は、アクセス権が付与されているレベルによって異なります。Security Command Center のロールの詳細については、アクセス制御をご覧ください。
データ所在地と 1 回限りのエクスポート
Cloud Storage への 1 回限りのエクスポートのフィルタには、データ所在地の管理の対象となるデータを含めることはできません。
検出フィルタで制御されたデータを含むプロパティを指定すると、エクスポートを試みたときに Security Command Center からエラー メッセージが返されます。
Google Cloud コンソールを使用してデータをエクスポートする
Google Cloud コンソールを使用すると、次のことができます。
検出結果を Cloud Storage バケットにエクスポートする
このセクションでは、Security Command Center のデータを Cloud Storage バケットにエクスポートする方法について説明します。Google Cloud コンソールの [検出結果] ページで [エクスポート] をクリックすると、Security Command Center に認証情報、または Cloud Storage バケットへの書き込み権限が自動的に付与されます。
検出結果は個別のオペレーションでエクスポートされます。JSON ファイル、JSONL ファイル、または CSV ファイルを既存の Cloud Storage バケットにエクスポートできます。また、エクスポート処理中にバケットを作成することもできます。現在のすべての検出結果をエクスポートできます。または、エクスポートする前に使用するフィルタを選択することもできます。
保持ポリシーが設定されている Cloud Storage バケットに検出結果をエクスポートすることはできません。
Google Cloud コンソールで、[検出結果] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。検出結果クエリにフィルタを適用して、エクスポートする検出結果を選択します。フィルタの作成の詳細については、特定の検出結果を検索して表示するをご覧ください。
フィルタの作成が完了したら、[エクスポート] をクリックし、[1 回限り] の下にある Cloud Storage をクリックします。
[エクスポート] ページで、エクスポートを構成します。
- [エクスポート先] セクションで、次のフィールドを指定します。
- [プロジェクト名] フィールドに、Cloud Storage バケットを含むプロジェクトを指定します。
- プロジェクトを指定すると表示される [エクスポート パス] フィールドで、[参照] をクリックします。
- [オブジェクトの選択] パネルで、既存の Cloud Storage バケットを選択するか、ストレージ バケットを作成します。
- バケットを選択または作成したら、[ファイル名] にエクスポート ファイルの名前を入力します。
- [選択] をクリックします。
- [エクスポートの条件] セクションで、次のフィールドを指定します。
- [結果のグループ化の条件] をクリックし、エクスポート データのグループ化方法を選択します。
- [形式] フィールドをクリックして、[JSON]、[JSONL]、または [CSV] を選択します。
- [期間] フィールドをクリックして、検出結果をエクスポートする期間を選択します。
- [検出結果クエリ] セクションで、クエリが想定どおりに表示されていることを確認します。
- クエリの下で、一致する検出結果の数とタイプが想定どおりであることを確認します。
- [エクスポート] をクリックします。
バケット内の既存のファイルを選択した場合は、[上書きの確認] ダイアログが表示されます。
- 既存のファイルを上書きするには、[確認] をクリックします。
- 書き込むファイルを変更するには、[キャンセル] をクリックし、[Export path] ボックスで [参照] をクリックして、別のファイルを選択するか、作成します。
- [エクスポート先] セクションで、次のフィールドを指定します。
構成したデータは、指定した Cloud Storage バケットに保存されます。
Cloud Storage バケットからエクスポートしたデータをダウンロードする
エクスポートした JSON、JSONL、または CSV データをダウンロードするには、次の手順を行います。
Google Cloud コンソールで Storage の [ブラウザ] ページに移動します。
プロジェクトを選択し、データのエクスポート先のバケットをクリックします。
書き出すファイルの横にあるチェックボックスをオンにして、[ダウンロード] をクリックします。
[ファイルを保存] ダイアログでファイルの保存場所を選択し、[保存] をクリックします。
JSON、JSONL、または CSV ファイルが指定した場所にダウンロードされます。
検出結果を CSV ファイルにエクスポートする
エクスポートを構成するには、カテゴリ、重大度、その他のプロパティで検出結果をフィルタします。フィルタに一致する検出結果はすべて CSV ファイルに含まれます。
最大 1,000 個の検出結果をワークステーションに直接ダウンロードできます。検出結果が 1,000 件を超える場合は、クエリを絞り込んで結果を減らすよう求められます。または、データを Cloud Storage バケットにエクスポートすることもできます。
検出結果レコードは、デフォルトの列のセットでエクスポートされます。これは、コンソールの表示と一致しない場合があります。つまり、列の表示と非表示を切り替えても、エクスポートされる列は変わりません。同様に、ページあたりの表示行数 (Google Cloud コンソールで変更可能) を変更しても、エクスポートされたコンテンツには影響しません。
検出結果を CSV ファイルにエクスポートする方法については、使用しているコンソールのタブをクリックしてください。
Google Cloud コンソール
- Google Cloud コンソールで、Security Command Center の [検出結果] ページに移動します。
- Google Cloud プロジェクトまたは組織を選択します。
- 省略可: エクスポートする検出結果の選択を絞り込むには、フィルタを適用します。
- [] > [CSV] をクリックします。CSV ファイルがローカル ワークステーションにダウンロードされます。 エクスポート
Security Operations コンソール
-
Security Operations コンソールで、[検出結果] ページに移動します。
https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
CUSTOMER_SUBDOMAIN
は、お客様固有の ID に置き換えます。 - 省略可: エクスポートする検出結果の選択を絞り込むには、フィルタを適用します。
- [エクスポート] > [CSV] をクリックします。CSV ファイルがローカル ワークステーションにダウンロードされます。
アセットを CSV ファイルにエクスポートする
アセットデータは、Google Cloud コンソールの [アセット] ページから CSV ファイルにダウンロードできます。
アセットデータを CSV ファイルにダウンロードする手順は次のとおりです。
Google Cloud コンソールで、Security Command Center の [アセット] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。[クイック フィルタ] パネルまたはアセット結果パネルの [フィルタ] フィールドを使用して、エクスポートするアセットを選択します。アセットのフィルタリングの詳細については、アセットのフィルタリングをご覧ください。
表示されたアセットで、[エクスポート] をクリックしてから、[CSV をダウンロード] します。結果パネルのアセットのデータがワークステーションにダウンロードされます。
API メソッドを使用してデータをエクスポートする
Security Command Center API を使用して、アセット、検出結果、セキュリティ マークを Cloud Storage バケットまたはローカル ワークステーションにエクスポートできます。
API メソッドを使用してアセットデータをエクスポートする
アセットデータのエクスポートまたは一覧表示には、Cloud Asset Inventory API を使用します。詳細については、アセットの履歴とメタデータをエクスポートするをご覧ください。
Security Command Center API のアセット メソッドとフィールドは非推奨であり、2024 年 6 月 26 日以降に削除されます。
削除されるまでの間、2023 年 6 月 26 日より前に Security Command Center を有効にしたユーザーは、Security Command Center API のアセット メソッドを使用してアセットデータを一覧表示およびエクスポートできますが、これらのメソッドは Security Command Center がサポートするアセットのみをサポートしています。
非推奨のアセット API メソッドの使用については、アセットの一覧表示をご覧ください。
Security Command Center API を使用して検索結果データをエクスポートする
Security Command Center API を使用して検出結果をエクスポートするには、セキュリティの検出結果の一覧表示のガイドに沿って操作し、API レスポンスをダウンロードまたはエクスポートします。
検出結果をアタッチされているセキュリティ マークとともに一覧表示するには、次の API メソッドを使用します。
このメソッドは、JSON 形式のプロパティ、属性、関連マークの一式とともに検出結果を返します。アプリケーションでデータを別の形式にする必要がある場合は、カスタムコードを記述して JSON 出力を変換する必要があります。
groupBy
フィールドに値を指定する場合は、次のメソッドを使用します。
GroupFindings
メソッドは、組織の検出結果のリストを、指定されたプロパティ別にグループ化して返します。
gcloud CLI を使用して検出結果をエクスポートする
Cloud Shell で Google Cloud CLI コマンドを使用して Cloud Storage バケットに検出結果をエクスポートするには、次のようにします。
Cloud Shell を開きます。
検出結果をファイルに書き込むには、出力文字列を gcloud CLI コマンドに追加して、検出結果の一覧表示を行います。
たとえば、次のコマンドは、リストされた結果を
FINDINGS.txt
という名前のテキスト ファイルに保存します。gcloud scc findings list PARENT_ID --source=SOURCE_ID \ --location=locations/LOCATION --filter="FILTER" > FINDINGS.txt
以下を置き換えます。
FILTER
: 出力された結果の一覧をフィルタ式に一致するものに限定するオプションの式。LOCATION
: データ所在地が有効になっている場合は、検出結果が保存される Security Command Center のロケーションを指定します。データ所在地が有効になっていない場合、
--location
フラグを指定すると、Security Command Center API v2 を使用して検出結果が一覧表示されます。フラグの有効な値はglobal
のみです。
PARENT_ID
: 次の親リソースの ID。- 組織(
organizations/ORGANIZATION_ID
またはORGANIZATION_ID
で指定) - フォルダ(
folders/FOLDER_ID
で指定) - プロジェクト(
projects/PROJECT_ID
で指定)
- 組織(
SOURCE_ID
: 検出プロバイダのソース ID。 ソース ID を確認するには、ソース ID の取得をご覧ください。FINDINGS.txt
: 検出結果のリストを保存するターゲット ファイルの名前と拡張子。
FINDINGS.txt
を Cloud Storage バケットにコピーします。gcloud storage cp FINDINGS.txt gs://BUCKET_NAME
BUCKET_NAME
は、実際のバケット名を置き換えます。FINDINGS.txt
を Cloud Storage バケットではなくローカルのワークステーションに保存するには、次のコマンドを実行します。cloudshell download FINDINGS.txt
継続的エクスポート
継続的エクスポートを使用すると、Security Command Center の検出結果を Pub/Sub に自動的にエクスポートするプロセスが簡単になります。新規の検出結果が書き込まれると、ほぼリアルタイムで指定の Pub/Sub トピックに自動的にエクスポートされ、既存のワークフローに統合されます。
Pub/Sub について詳しくは、Pub/Sub とはをご覧ください。
Security Command Center から BigQuery へのエクスポート
Security Command Center で検出結果の属性が更新されると、検出結果のスナップショットが取得され、Security Command Center はそのスナップショットを BigQuery に送信しようとします。
スナップショット内の検出結果の属性が BigQueryExport で定義されたエクスポート フィルタと一致する場合、スナップショットは BigQuery に送信され、BigQuery 内の検出結果の現在のレコードになります。
検出結果の属性がフィルタと一致しない場合、スナップショットは BigQuery に送信されません。検出結果の以前のスナップショットが BigQuery に存在する場合、そのスナップショットは、Security Command Center で行われた属性の更新を反映していなくても、BigQuery で検出結果の現在のレコードとなります。
たとえば、BigQuery エクスポートのフィルタにアクティブな状態が含まれている場合、新しい検出結果がアクティブな状態で発行され、検出結果のスナップショットが BigQuery に正常にエクスポートされます。
後で、Security Command Center でその検出結果の状態が非アクティブに更新されます。この更新により、検出結果の新しいスナップショットが BigQuery にエクスポートされますが、状態値がフィルタと一致しなくなったため、フィルタによって検出結果のスナップショットのエクスポートがブロックされます。
そのため、BigQuery の検出結果のスナップショットは引き続きアクティブな状態ですが、Security Command Center の同じ検出結果は非アクティブな状態になります。
また、Security Command Center のアクティブな検出結果の数と BigQuery のアクティブな検出結果の数も一致しなくなります。ほとんどの場合、BigQuery の値は Security Command Center の値よりも大きくなります。
たとえば、エクスポート フィルタでアクティブな状態を指定し、アクティブな状態の検出結果が 100 件生成された場合、100 件すべてが BigQuery にエクスポートされます。その後、Security Command Center で、これらの検出結果のうちの 50 件が非アクティブに更新されます。状態値がフィルタと一致しなくなったため、更新によってトリガーされたエクスポートがフィルタによってブロックされます。そのため、BigQuery では 100 件の検出結果がすべてアクティブなままであるのに対し、Security Command Center では、アクティブなままになっている検出結果は 50 件のみです。
継続的エクスポートと検出結果の通知
Security Command Center では、Security Command Center API を使用して Pub/Sub の検出結果の通知を設定できます。API では、Google Cloud CLI を使用して Pub/Sub トピックを設定し、検出フィルタを作成して、通知を送信する構成設定を含むファイル NotificationConfigs
を作成する必要があります。継続的エクスポートでも同じ機能が提供されますが、Google Cloud コンソールを使用すると、エクスポートの作成が簡単になります。
権限
継続的なエクスポートを作成して管理するには、次のいずれかのロールが必要です。
roles/securitycenter.adminEditor
roles/securitycenter.adminViewer
次の権限を持つロールを使用することもできます。
Pub/Sub トピックを表示または公開するには:
pubsub.topics.publish
pubsub.topics.list
継続的なエクスポートのページを表示するには:
securitycenter.notificationconfig.get
securitycenter.notificationconfig.list
継続的エクスポートを管理するには:
securitycenter.notificationconfig.create
securitycenter.notificationconfig.update
securitycenter.notificationconfig.delete
Security Command Center のロールの詳細については、アクセス制御をご覧ください。
データ所在地と継続的なエクスポート
Security Command Center でデータ所在地が有効になっている場合、Pub/Sub(notificationConfig
リソース)への継続的なエクスポートを定義する構成はデータ所在地の制御の対象であり、選択したSecurity Command Center のロケーションに保存されます。
Security Command Center のロケーションの検出結果を Pub/Sub にエクスポートするには、検出結果と同じ Security Command Center のロケーションに継続的なエクスポートを構成する必要があります。
継続的なエクスポートで使用されるフィルタには、所在地管理の対象となるデータが含まれる可能性があるため、作成する前に正しいロケーションを指定していることを確認してください。Security Command Center では、エクスポートを作成するロケーションは制限されません。
継続的エクスポートは作成場所にのみ保存され、他のロケーションで表示や編集はできません。
継続的なエクスポートを作成した後に、そのロケーションを変更することはできません。ロケーションを変更するには、継続的なエクスポートを削除して、新しいロケーションに再作成する必要があります。
API 呼び出しを使用して継続的なエクスポートを取得するには、notificationConfig
の完全なリソース名でロケーションを指定する必要があります。例:
GET https://securitycenter.googleapis.com/v2/{name=organizations/123/locations/eu/notificationConfigs/my-pubsub-export-01}
同様に、gcloud CLI を使用して継続的なエクスポートを取得するには、構成の完全なリソース名または --locations
フラグを使用してロケーションを指定する必要があります。例:
gcloud scc notifications describe myContinuousExport organizations/123 \ --location=locations/us
Pub/Sub への継続的なエクスポートを作成する
継続的エクスポートを使用すると、今後すべての検出結果を Pub/Sub に自動制御でエクスポートできます。また、フィルタを作成して、特定の条件を満たす検出結果をエクスポートできます。検出結果をカテゴリ、ソース、アセットタイプ、セキュリティ マーク、重大度、状態、その他の変数でフィルタできます。
1 つの組織で作成できる継続的なエクスポートは 500 個までです。
Pub/Sub のエクスポートを作成する手順は次のとおりです。
Google Cloud コンソールで Security Command Center の [検出結果] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。省略可: Security Command Center でデータ所在地が有効になっている場合は、必要に応じてデータのロケーションを変更します。
データのロケーションを変更するには、アクションバーのロケーション セレクタをクリックします。
ロケーションのリストが表示されます。新しい場所を選択します。
[検出結果クエリの結果] フィールドで、次のいずれかの方法でエクスポートする検出結果を選択します。
[フィルタを追加する] をクリックして、エクスポートする必要がある検出結果のプロパティを選択します。
[フィルタを選択] ダイアログでは、サポートされている検出属性と値を選択できます。
- 検出属性を選択するか、[検出属性の検索] ボックスに名前を入力します。使用可能なサブ属性のリストが表示されます。
- サブ属性を選択します。選択フィールドには、選択したサブ属性、クエリ演算子、サブ属性の 1 つ以上の値を使用してクエリ ステートメントを作成できる場所が表示されます。
- パネルで演算子とサブ属性の値を 1 つ以上選択します。クエリ演算子とそれらが使用する関数の詳細については、フィルタの追加メニューのクエリ演算子をご覧ください。
- [適用] をクリックします。
ダイアログが閉じて、クエリが更新されます。
- 検出クエリに必要な属性がすべて表示されるまで、この操作を繰り返します。
クエリエディタで検出結果クエリを手動でコーディングすることによって。標準 SQL 演算子の
AND
、OR
、=
(等しい)、:
(含む)、-
(ではない)を使用して、エクスポートが必要な検出結果のプロパティと値を指定できます。クエリを入力すると、予測入力メニューが表示され、そこでフィルタ名と関数を選択できます。
たとえば、次のクエリは、
prod-project
で重大度が低と中のanomalous IAM grant
の検出結果をミュートし、名前に部分文字列compute
を持つリソースタイプを除外します。severity="LOW" OR severity="MEDIUM" AND category="Persistence: IAM Anomalous Grant" AND resource.project_display_name="prod-project" AND -resource.type:"compute"
検出結果のフィルタに関するその他の例については、通知のフィルタリングをご覧ください。
結果のクエリの精度を確認します。変更するには、必要に応じてプロパティを削除または追加し、値をフィルタします。
[一致する検出結果を更新] をクリックします。クエリに一致する検索結果がテーブルに表示されます。検出結果のクエリの詳細については、Google Cloud コンソールで検出結果のクエリを編集するをご覧ください。
[エクスポート] をクリックし、[継続] の下の [Pub/Sub] をクリックします。
フィルタが正しいことを確認し、必要に応じて [検出結果] ページに戻って変更します。
[継続的なエクスポート名] で、エクスポートの名前を入力します。
[継続的なエクスポートの説明] で、エクスポートの説明を入力します。
[エクスポート先] で、エクスポートするプロジェクトを選択します。このページではプロジェクトを作成できません。新しいプロジェクトを作成するには、プロジェクトの作成をご覧ください。
[Pub/Sub トピック] で、検出結果をエクスポートするトピックを選択します。トピックを作成する方法は次のとおりです。
- [トピックを作成] を選択します。
- トピック ID を入力し、必要に応じて他のオプションを選択します。
- スキーマの作成と管理を確認する。
- Pub/Sub での顧客管理の暗号鍵(CMEK)の使用を確認する。
- [トピックを作成] をクリックします。
[保存] をクリックします。確認が表示され、[検出] ページに戻ります。
ガイドに従って、Pub/Sub トピックのサブスクリプションを作成します。
Pub/Sub のエクスポート構成が完了しました。通知を公開するため、service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
の形式でサービス アカウントが作成されます。このサービス アカウントには、組織レベルで roles/securitycenter.notificationServiceAgent
のロールが自動的に付与されます。通知が機能するには、このサービス アカウントのロールが必要です。
継続的エクスポートをテストする
エクスポートが機能していることを確認するには、次の手順を行ってアクティブ状態と非アクティブ状態を切り替えます。
Google Cloud コンソールで Security Command Center の [検出] ページに移動します。
[クエリを編集する] ボタンをクリックします。クエリエディタが開きます。
アクティブな検出結果と無効な検出結果の両方が表示されるようにクエリを編集します。次のクエリでは、
state
プロパティを省略し、ミュートされていない検出結果をすべて表示します。NOT mute="MUTED"
必要に応じて、クエリエディタを使用して、テストしているエクスポート フィルタと一致するフィルタ変数を再入力します。
検出結果を選択し、[アクティブ状態を変更 ] > [非アクティブ] をクリックします。
非アクティブとしてマークを付けた検出結果を再度選択し、[アクティブ状態を変更] > [アクティブ] をクリックします。新たにアクティブになった検出結果について通知が送信されます。
Google Cloud コンソールの [Pub/Sub] ページに移動します。
トピックのリストで、トピックの名前をクリックします。
[メッセージ] タブに移動し、リストからサブスクリプションを選択して、検出結果の通知を確認します。
省略可: [Pull] をクリックしてメッセージを更新します。
継続的なエクスポートを管理する
エクスポートを表示、編集、削除する手順は次のとおりです。
Security Command Center の [設定] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。省略可: Security Command Center でデータ所在地が有効になっている場合は、必要に応じてデータのロケーションを変更します。
データのロケーションを変更するには、アクションバーのロケーション セレクタをクリックします。
ロケーションのリストが表示されます。新しい場所を選択します。
[継続的エクスポート] を選択します。プロジェクト、フォルダ、または組織の継続的エクスポートの一覧が表示されます。
[設定] の [継続的エクスポート] ページでは、継続的エクスポートを作成、表示、編集、削除できます。
関連する検出結果を表示する
エクスポート フィルタと一致する結果を表示するには、次の操作を行います。
- [継続的エクスポート] ページで、エクスポートの名前の横にある [その他 ] を選択して [関連フィルタを表示] をクリックします。
- エクスポート フィルタに一致する検出結果が [検出] ページに表示されます。
継続的エクスポートの編集
- [継続的エクスポート] ページで、表示または変更するエクスポートの名前をクリックするか、[その他 ] をクリックします。
- [編集] を選択します。
- 新しい説明を入力するか、エクスポートの保存先のプロジェクトを変更するか、新しい Pub/Sub トピックを入力します。
- 完了したら、[保存] をクリックします。
継続的なエクスポートを削除する
- [継続的エクスポート] ページで、削除するエクスポートの名前をクリックします。
- [delete削除] をクリックします。
- ダイアログで [削除] をクリックします。エクスポートが削除されます。
次のステップ
検出結果の通知の詳細を確認する。