このページでは、アセット、検出結果、セキュリティ マークなどの 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 バケットにエクスポートできます。また、エクスポート処理中にバケットを作成することもできます。
現在のすべての検出結果をエクスポートできます。または、エクスポートする前に使用するフィルタを選択することもできます。
Google Cloud コンソールで、[検出結果] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。検出結果クエリにフィルタを適用して、エクスポートする検出結果を選択します。フィルタの作成の詳細については、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 にエクスポートする] ページに自動的にリダイレクトされます。このページから、データを Cloud Storage バケットにエクスポートできます。
検出結果レコードは、デフォルトの列のセットでエクスポートされます。これは、Google Cloud コンソールの表示と一致しない場合があります。つまり、
列表示オプションを使用して列の表示と非表示を切り替えても、エクスポートされる列は変わりません。同様に、1 ページあたりの行数の値を変更しても、エクスポートされたコンテンツには影響しません。結果を CSV ファイルにエクスポートするには、次の操作を行います。
Google Cloud コンソールの [Security Command Center] ページで、[検出結果] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。省略可: エクスポートする検出結果を絞り込むには、フィルタを適用します。
[エクスポート] をクリックして、[CSV] をクリックします。Security Command Center が検出結果のエクスポートを開始します。
エクスポートが完了すると、ツールバーに検出結果が表示されます。
ツールバーで通知アイコンをクリックします。
「エクスポートを CSV として保存しました」という通知で [ダウンロード] をクリックします。CSV ファイルがローカル ワークステーションにダウンロードされます。
アセットを CSV ファイルにエクスポートする
アセットデータは、Google Cloud コンソールの [アセット] ページから CSV ファイルにダウンロードできます。
アセットデータを CSV ファイルにダウンロードする手順は次のとおりです。
[アセット] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。[クイック フィルタ] パネルまたはアセット結果パネルの [フィルタ] フィールドを使用して、エクスポートするアセットを選択します。アセットのフィルタリングの詳細については、アセットのフィルタリングをご覧ください。
表示されたアセットで、[エクスポート] をクリックし、[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 バケットにコピーします。gsutil 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 では、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 の [検出結果] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。データ所在地のサポートが有効になっている場合は、プロジェクト セレクタのすぐ下でデータ所在地を選択します。次に例を示します。
[検出結果クエリの結果] フィールドで、次のいずれかの方法でエクスポートする検出結果を選択します。
[フィルタを追加する] をクリックして、エクスポートする必要がある検出結果のプロパティを選択します。
[フィルタを選択] ダイアログでは、サポートされている検出属性と値を選択できます。
- 検出属性を選択するか、[検出属性の検索] ボックスに名前を入力します。使用可能なサブ属性のリストが表示されます。
- サブ属性を選択します。評価オプションの選択フィールドは、検出結果クエリの結果パネルの検出結果にあるサブ属性値のリストの上に表示されます。
- 選択したサブ属性値の評価オプションを選択します。評価オプションと、それらが使用する演算子と関数の詳細については、[フィルタの追加] メニューのクエリ演算子をご覧ください。
- [適用] を選択します。
ダイアログが閉じて、クエリが更新されます。
- 検出クエリに必要な属性がすべて表示されるまで、この操作を繰り返します。
クエリエディタで検出結果クエリを手動でコーディングすることによって。標準 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 の [設定] ページに移動します。
ツールバーで
プロジェクト セレクタをクリックし、プロジェクト、フォルダまたは組織を選択します。データ所在地のサポートが有効になっている場合は、プロジェクト セレクタのすぐ下でデータ所在地を選択します。次に例を示します。
[継続的エクスポート] を選択します。プロジェクト、フォルダ、または組織の継続的エクスポートの一覧が表示されます。
[設定] の [継続的エクスポート] ページでは、継続的エクスポートを作成、表示、編集、削除できます。
関連する検出結果の表示
エクスポート フィルタと一致する結果を表示するには、次の操作を行います。
- 上の [継続的エクスポート] ページで、エクスポートの名前の横にある [その他 ] を選択して [関連フィルタを表示] をクリックします。
- エクスポート フィルタに一致する検出結果が [検出] ページに表示されます。
継続的エクスポートの編集
- [継続的エクスポート] ページで、表示または変更するエクスポートの名前をクリックするか、[その他 ] をクリックします。
- [編集] を選択します。
- 新しい説明を入力するか、エクスポートの保存先のプロジェクトを変更するか、新しい Pub/Sub トピックを入力します。
- 完了したら、[保存] をクリックします。
継続的エクスポートの削除
- [継続的エクスポート] ページで、削除するエクスポートの名前をクリックします。
- [delete削除] をクリックします。
- ダイアログで [削除] をクリックします。エクスポートが削除されます。
次のステップ
検出結果の通知の詳細を確認する。