Security Command Center API の v2 に移行する

このページでは、Security Command Center API のバージョン 1(v1)とバージョン 2(v2)の違いについて説明します。また、v1 の Security Command Center Management API と組み合わせて v2 Security Command Center API に移行する方法についても説明します。

2024 年 12 月 9 日以降、組織内で Security Command Center を初めて有効にする場合、その組織では Security Command Center API のバージョン 2 のみを使用する必要があります。それより前のバージョンはサポートされません。

2024 年 12 月 9 日より前にプロジェクト レベルで Security Command Center を有効にしていた場合、同じ組織で有効にするプロジェクトにおいては、利用可能なすべてのバージョンの Security Command Center API がサポートされます。

Security Command Center とのすべての統合について、v2 Security Command Center API と v1 Security Command Center Management API を採用することをおすすめします。これらの API の呼び出しには、Cloud クライアント ライブラリまたは Google Cloud Terraform プロバイダを使用することをおすすめします。詳しくは以下をご覧ください。

v1 API と v2 API の違い

v2 Security Command Center API に移行する際は、v1 API との次の違いに注意してください。

データ所在地

v2 Security Command Center API はデータ所在地をサポートしています。これにより、Security Command Center データの保存場所をより細かく制御できます。

組織でデータ所在地が有効になっている場合は、データ所在地の制御の対象となるリソースにアクセスするために、次の操作を行う必要があります。

組織でデータ所在地が有効になっていない場合は、各メソッドのロケーション対応バージョンを呼び出し、global ロケーションを指定することをおすすめします。これにより、将来的にデータ所在地を導入しやすくなります。

各メソッドのロケーション対応バージョンを使用するには、次の操作を行います。

コンソール

Google Cloud コンソールでは、必要に応じて各メソッドのロケーション対応バージョンが使用されます。

gcloud

gcloud scc findings list などのロケーションを指定できる gcloud CLI コマンドを実行する場合は、必ずロケーションを指定してください。これには、いくつかの方法があります。

  • --location フラグを使用する。
  • リソース名のフルパスを指定する場合は、projects/123/sources/456/locations/global/findings/a1b2c3 などのロケーションを含む形式を使用する。

Terraform

サポートするリソースには、常に location 引数を指定します(google_scc_v2_organization_mute_config など)。

REST

名前に locations を含むバージョンのメソッドを呼び出します。たとえば、organizations.findings.bulkMute ではなく organizations.locations.findings.bulkMute を呼び出します。

クライアント ライブラリ

Security Command Center のコードサンプルまたはクライアント ライブラリの API リファレンスをご覧ください。

データ所在地が有効になっている場合にリージョン エンドポイントを使用する方法については、Security Command Center のリージョン エンドポイントをご覧ください。

通知構成と BigQuery エクスポート構成

v1 Security Command Center API では、次のタイプのエクスポート構成を作成および管理できます。

これらのエクスポート構成は、v2 Security Command Center API でも作成および管理できます。ただし、v1 Security Command Center API でエクスポート構成を作成した場合、v2 Security Command Center API には表示されません。 同様に、v2 Security Command Center API でエクスポート構成を作成した場合、v1 Security Command Center API には表示されません。

また、v2 Security Command Center API で作成したエクスポート構成では、source_properties フィールドを使用して検出結果をフィルタすることはできません。代わりに別のフィールドを使用する必要があります。

コンソール

Google Cloud コンソールでは、v1 Security Command Center API を使用してエクスポート構成が作成された場合、「レガシー」というラベルが付いています。これらのリソースは、Google Cloud コンソールを使用して管理できます。

Google Cloud コンソールで新しいエクスポート構成を作成すると、常に v2 Security Command Center API で作成されます。

gcloud

v1 Security Command Center API で作成されたエクスポート構成を管理するには、gcloud scc notifications describe などの gcloud CLI コマンドの実行時にロケーションを指定しません。

  • --location フラグを使用しない。
  • 構成 ID のフルパスを指定する場合は、organizations/123/notificationConfigs/456 などのロケーションを含まない形式を使用する。organizations/123/locations/global/notificationConfigs/456 のような形式は使用しないでください。

同様に、v2 Security Command Center API でエクスポート構成を作成または管理するには、gcloud CLI コマンドの実行時にロケーションを指定します。新しい構成を作成する場合は、v2 Security Command Center API を使用することをおすすめします。

Terraform

Terraform 構成ファイルで、エクスポート構成を v1 または v2 のいずれかのリソースとして定義します。たとえば、以下の通知構成のリソースをご覧ください。

新しい構成を作成する場合は、v2 リソースを作成することをおすすめします。

REST

v1 Security Command Center API で作成されたエクスポート構成を管理するには、v1 Security Command Center API を使用する必要があります。

新しい構成を作成する場合は、v2 Security Command Center API を使用することをおすすめします。

クライアント ライブラリ

v1 Security Command Center API で作成されたエクスポート構成を管理するには、v1 Security Command Center API 用の Cloud クライアント ライブラリを使用する必要があります。

新しい構成を作成する場合は、v2 Security Command Center API を使用することをおすすめします。

組み込みサービスとカスタム モジュール

v1 Security Command Center API で、次のリソースタイプを表示および更新できます。

これらのリソースタイプを管理するには、Security Command Center Management API とそのクライアント ライブラリを使用します。 これらのリソースタイプは v2 Security Command Center API では管理できません。

組織が 2023 年 6 月 20 日より前に Security Command Center を有効にしていた場合は、v1 Security Command Center API を使用して、組織、フォルダ、プロジェクトのアセットを表示できます。これらの Security Command Center アセット管理機能は非推奨であり、v2 Security Command Center API では使用できません。 これらの機能は、2024 年 6 月 20 日以降に v1 Security Command Center API から削除されます。

代わりに、Cloud Asset Inventory を使用して、セキュリティ マークを含むアセットを表示できます。詳細については、アセットの一覧表示をご覧ください。

v2 Security Command Center API を使用すると、アセットのセキュリティ マークを更新することもできます。セキュリティ マークを更新する Security Command Center API メソッドは非推奨ではありません。

クライアント ライブラリと Terraform プロバイダを更新する

v2 Security Command Center API を使用するようにコードを更新するには、次の操作を行います。

Terraform

Google Cloud用の最新バージョンの Terraform プロバイダをインストールします。 詳しくは、プロバイダのドキュメントをご覧ください。

また、Terraform 構成ファイルを更新して、接頭辞 google_scc_v2_ または google_scc_management_ で始まるリソースを作成します。次のリソースは v1 API と v2 API で共有されないことに注意してください。

これらのリソースを v2 の同等のリソースに置き換える Terraform 実行プランを適用すると、v1 の構成が削除され、新しい v2 の構成が作成されます。

C++

クライアント ライブラリの v2 ヘッダー ファイルを含めるようにアプリケーションを更新します。

#include "google/cloud/securitycenter/v2/security_center_client.h"

また、v2 名前空間のクラスを使用するようにアプリケーションを更新します。

namespace securitycenter = ::google::cloud::securitycenter_v2;

C#

v2 クライアント ライブラリをインストールし、そのライブラリを使用するようにアプリケーションを更新します。

Install-Package Google.Cloud.SecurityCenter.V2

Go

v2 クライアント ライブラリをインストールし、そのライブラリを使用するようにアプリケーションを更新します。

go get cloud.google.com/go/securitycenter/apiv2

Java

最新バージョンのクライアント ライブラリをインストールします。詳細については、クライアント ライブラリをインストールするをご覧ください。

また、com.google.cloud.securitycenter.v2 パッケージのクラス、インターフェース、列挙型を使用するようにアプリケーションを更新します。

Node.js

最新バージョンのクライアント ライブラリをインストールします。詳細については、クライアント ライブラリをインストールするをご覧ください。

また、v2.SecurityCenterClientprotos.google.cloud.securitycenter.v2 名前空間のクラス、インターフェース、列挙型を使用するようにアプリケーションを更新します。

PHP

最新バージョンのクライアント ライブラリをインストールします。詳細については、クライアント ライブラリをインストールするをご覧ください。

また、Google \ Cloud \ SecurityCenter \ V2 名前空間のクラスと列挙型を使用するようにアプリケーションを更新します。

Python

最新バージョンのクライアント ライブラリをインストールします。詳細については、クライアント ライブラリをインストールするをご覧ください。

また、google.cloud.securitycenter_v2 パッケージのクラスを使用するようにアプリケーションを更新します。

Ruby

最新バージョンのクライアント ライブラリをインストールします。詳細については、クライアント ライブラリをインストールするをご覧ください。

また、クライアント オブジェクトを作成するときに version パラメータを :v2 に設定するようにアプリケーションを更新します。

Security Command Center の組み込みサービスとその有効化状態、または Event Threat Detection、Security Health Analytics のカスタム モジュールをプログラムで管理する必要がある場合は、Security Command Center Management API のクライアント ライブラリもインストールし、そのクライアント ライブラリを使用するようにアプリケーションを更新する必要があります。