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 ロケーションを指定することをおすすめします。これにより、将来的にデータ レジデンシーを導入しやすくなります。

組織でデータ所在地を有効にしている場合は、ロケーション対応メソッドを使用し、必要に応じて、選択したロケーションのリージョン サービス エンドポイントを使用する必要があります。

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

Console

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

gcloud

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

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

Terraform

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

REST

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

クライアント ライブラリ

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

通知構成と 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 フィールドを使用して検出結果をフィルタすることはできません。代わりに別のフィールドを使用する必要があります。

Console

Google Cloud コンソールで、v1 Security Command Center API を使用してエクスポート構成が作成されている場合、[Legacy] ラベルが付いています。これらのリソースは 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 実行プランを適用すると、Terraform は v1 構成を削除し、新しい v2 構成を作成します。

C++

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

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

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

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 のクライアント ライブラリをインストールし、そのクライアント ライブラリを使用するようにアプリケーションを更新する必要があります。