このページでは、Security Command Center API の通知を有効にする方法について説明します。
通知は、数分以内に、検出結果と検出結果の更新を Pub/Sub トピックに送信します。Security Command Center API の通知には、Security Command Center によって Google Cloud コンソールに表示されるすべての検出結果の情報が含まれます。
Pub/Sub の Security Command Center の通知は、直接 Cloud Run 関数 のアクションに接続できます。レスポンス、拡充、改善に役立つ関数の例については、Cloud Run 関数コードの Security Command Center のオープンソース リポジトリをご覧ください。このリポジトリには、セキュリティに関する検出結果に対する自動処置に役立つソリューションが含まれています。
また、検出結果を BigQuery にエクスポートするか、Google Cloud コンソールで Pub/Sub の継続的エクスポートを設定することもできます。
始める前に
通知を設定して構成するには、次の Identity and Access Management(IAM)ロールが必要です。
- セキュリティ センター管理者(
roles/securitycenter.Admin
): Security Command Center API の通知を有効にします。 - セキュリティ センター管理閲覧者(
roles/securitycenter.adminViewer
): Google Cloud コンソールで Security Command Center にアクセスします - 通知サービス アカウントまたは gcloud CLI アカウントに、組織レベル、フォルダレベル、プロジェクト レベルでロールを付与するために、次のいずれかのロール。
- 組織管理者 (
roles/resourcemanager.organizationAdmin
) - フォルダ IAM 管理者 (
roles/resourcemanager.folderIamAdmin
) - プロジェクト IAM 管理者 (
roles/resourcemanager.projectIamAdmin
)
- 組織管理者 (
Security Command Center の IAM ロールは、組織レベル、フォルダレベル、またはプロジェクト レベルで付与できます。検出結果、アセット、セキュリティ ソースを表示、編集、作成、更新する権限は、アクセス権が付与されているレベルによって異なります。Security Command Center のロールの詳細については、アクセス制御をご覧ください。
Security Command Center API の通知の設定
通知を設定するには、まず Security Command Center API を有効にします。
Security Command Center API を有効にする
Security Command Center API を有効にするには、次のようにします。
Google Cloud コンソールで [API ライブラリ] ページに移動します。
通知 API を有効にするプロジェクトを選択します。
[検索] ボックスに「
Security Command Center
」と入力し、検索結果で [Security Command Center] をクリックします。表示された API ページで [有効にする] をクリックします。
プロジェクトで Security Command Center API が有効になります。次に、gcloud CLI かクライアント ライブラリを使用して Pub/Sub トピックをサブスクライブし、権限を設定します。
データ所在地と通知
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 トピックを作成してサブスクライブします。プログラムで API を呼び出す必要がない場合は、gcloud CLI コマンドをおすすめします。
gcloud
gcloud CLI を使用して Security Command Center API の通知機能を設定するには、次の手順を行います。
- Pub/Sub トピックとサブスクリプションを設定する。
- gcloud CLI アカウントの権限を設定する。
ステップ 1: Pub/Sub を設定する
Pub/Sub トピックを設定して登録するには、次のようにします。
Google Cloud Console に移動します。
Security Command Center API を有効にしたプロジェクトを選択します。
[Cloud Shell をアクティブにする] をクリックします。
新しい Pub/Sub トピックを作成するか、既存のトピックを使用するには、次のコマンドを実行します。
gcloud pubsub topics create TOPIC_ID
TOPIC_ID
は、トピック名に置き換えます。トピック ID の環境変数を設定します。
export TOPIC_ID=TOPIC_ID
トピックへのサブスクリプションを作成します。
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic TOPIC_ID
SUBSCRIPTION_ID
は、サブスクリプション名に置き換えます。
Pub/Sub の設定に関する詳細は、トピックとサブスクリプションの管理をご覧ください。
次に、アカウントの権限を設定します。
ステップ 2: gcloud CLI のアカウント権限を設定する
NotificationConfig
を作成するには、gcloud CLI アカウントに次のロールを付与する必要があります。
- セキュリティ センター管理者(
roles/securitycenter.admin
)またはセキュリティ センター通知構成編集者(roles/securitycenter.notificationConfigEditor
)。このロールは、NotificationConfig
を作成するレベル(組織、フォルダ、プロジェクト)で付与する必要があります。 - 通知を受け取る Pub/Sub トピックに対する Pub/Sub 管理者(
roles/pubsub.admin
)
通知は、組織、フォルダ、またはプロジェクト レベルで受け取ります。
これらの権限を付与するには、次のようにします。
Google Cloud Console に移動します。
Security Command Center API を有効にしたプロジェクトを選択します。
「Cloud Shell をアクティブにする」 をクリックします。
組織名を設定します。
export ORGANIZATION_ID=ORGANIZATION_ID
ここで、
ORGANIZATION_ID
は実際の組織 ID に置き換えます。Pub/Sub トピックが属するプロジェクトのプロジェクト ID を設定します。
export PUBSUB_PROJECT=PROJECT_ID
PROJECT_ID
を実際のプロジェクト ID に置き換えます。使用している gcloud CLI アカウントを設定します。
export GCLOUD_ACCOUNT=EMAIL
EMAIL
は、gcloud CLI コマンドを実行するアカウントのメールアドレスに置き換えます。トピック ID を設定するか、以前に設定したトピックを使用します。
export TOPIC_ID=TOPIC_ID
TOPIC_ID
は、トピック名に置き換えます。gcloud CLI アカウントに、
pubsub.topics.setIamPolicy
権限がある Pub/Sub ロールを付与します。gcloud pubsub topics add-iam-policy-binding \ projects/$PUBSUB_PROJECT/topics/$TOPIC_ID \ --member="user:$GCLOUD_ACCOUNT" \ --role='roles/pubsub.admin'
gcloud CLI アカウントに、
roles/securitycenter.notificationConfigEditor
やroles/securitycenter.admin
など、すべてのsecuritycenter.notification
権限を含むロールを付与します。このロールは、プロジェクト、フォルダ、または組織レベルで付与できます。プロジェクト レベルでロールを付与するには:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:$GCLOUD_ACCOUNT" \ --role='ROLE_NAME'
以下を置き換えます。
PROJECT_ID
: Security Command Center が有効になっているプロジェクトの IDROLE_NAME
: 割り当てられるロール
組織レベルでロールを付与するには:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \ --member="user:$GCLOUD_ACCOUNT" \ --role='ROLE_NAME'
ROLE_NAME
は、付与するロールに置き換えます。
次に、NotificationConfig を作成します。
クライアント ライブラリ
クライアント ライブラリを使用して Security Command Center API 通知機能を設定するには、次の手順を行います。
- サービス アカウントを設定します。
- API クライアント ライブラリをダウンロードする。
- 開発環境を設定します。
- Pub/Sub トピックとサブスクリプションを設定します。
ステップ 1: サービス アカウントを設定する
Security Command Center API の通知機能は、適切な権限を持つサービス アカウントを使用して通知を構成します。このサービス アカウントは、構成ファイルの初期設定にのみ使用します。後で追加の通知構成ファイルを作成するのに再利用することもできます。このサービス アカウントは、Security Command Center を設定したときに作成したサービス アカウントとは別のものです。
サービス アカウントを作成するには、次のようにします。
Google Cloud Console に移動します。
Security Command Center API を有効にしたプロジェクトを選択します。
「Cloud Shell をアクティブにする」 をクリックします。
環境変数を設定します。
組織名を設定します。
export ORGANIZATION_ID=ORGANIZATION_ID
ここで、
ORGANIZATION_ID
は実際の組織 ID に置き換えます。通知 API を有効にするプロジェクトのプロジェクト ID を設定します。
export PROJECT_ID=PROJECT_ID
PROJECT_ID
を実際のプロジェクト ID に置き換えます。新しいサービス アカウントに使用するカスタム ID を設定します(
scc-notifications
など)。サービス アカウント名は 6~30 文字で、英字で始まり、英小文字、数字、ハイフンで構成します。export SERVICE_ACCOUNT=CUSTOM_ID
CUSTOM_ID
は、サービス アカウントのカスタム名に置き換えます。サービス アカウント キーを保存するパスを設定します(
export KEY_LOCATION=/home/$USER/mykeys/$SERVICE_ACCOUNT.json
など)。export KEY_LOCATION=FULL_KEY_LOCATION_PATH # This is used by client libraries to find the key export GOOGLE_APPLICATION_CREDENTIALS=$KEY_LOCATION
FULL_KEY_LOCATION_PATH
は、サービス アカウント キーのフルパスに置き換えます。
プロジェクト ID に関連付けられたサービス アカウントを作成します。
gcloud iam service-accounts create $SERVICE_ACCOUNT --display-name \ "Service Account for [USER]" --project $PROJECT_ID
サービス アカウントに関連付ける鍵を作成します。この鍵は
NotificationConfig
の作成時に使用され、前の手順で指定したKEY_LOCATION
に永続的に保存されます。gcloud iam service-accounts keys create $KEY_LOCATION --iam-account \ $SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com
サービス アカウントに、
roles/securitycenter.notificationConfigEditor
やroles/securitycenter.admin
など、すべてのsecuritycenter.notification
権限を含むロールを付与します。このロールは、プロジェクト、フォルダ、または組織レベルで付与できます。プロジェクト レベルでロールを付与します。
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \ --role='ROLE_NAME'
ROLE_NAME
は、付与するロールに置き換えます。組織レベルでロールを付与するには:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \ --member="serviceAccount:$SERVICE_ACCOUNT@$PROJECT_ID.iam.gserviceaccount.com" \ --role='ROLE_NAME'
ROLE_NAME
は、付与するロールに置き換えます。
これで、通知で使用できるようにサービス アカウントが設定され、サービス アカウントキーが指定した KEY_LOCATION
に保存されました。サービス アカウントの詳細については、サービス アカウントキーの作成と管理をご覧ください。
ステップ 2: 開発環境を設定する
Security Command Center API の通知機能を使用するには、gcloud CLI を使用するか、クライアント ライブラリをダウンロードして、選択した言語で開発環境を設定します。
Python
省略可: Python ライブラリをインストールする前に、Virtualenv を使用して、隔離された Python 環境を作成することをおすすめします。
virtualenv YOUR_ENV source YOUR_ENV/bin/activate
YOUR_ENV
は、仮想環境の名前に置き換えます。Python ライブラリのインストールを管理するために、pip をインストールします。
次のコマンドを実行して、次の Python ライブラリをインストールします。
pip install google-cloud-securitycenter
Java
Security Command Center の Java ライブラリを依存関係としてプロジェクトに含めるには、Maven リポジトリからアーティファクトを選択します。通知は、ライブラリ バージョン 0.119.0
以降に含まれます。
Intellij を使用している場合は、GOOGLE_APPLICATION_CREDENTIALS
環境変数を、前の手順でダウンロードした通知サービス アカウントキーの絶対パスに設定します。
- Intellij で、[実行] > [構成を編集] の順にクリックします。
[アプリケーション] > [Run_Configuration_For_Sample] > [環境変数] で次の変数を設定します。
GOOGLE_APPLICATION_CREDENTIALS=ABSOLUTE_PATH_TO_SERVICE_ACCOUNT_KEY
ABSOLUTE_PATH_TO_SERVICE_ACCOUNT_KEY
は、サービス アカウント キーのフルパスに置き換えます。
Go
Notifications API Go の依存関係をインストールするには、Go ライブラリをダウンロードします。
go get cloud.google.com/go/securitycenter/apiv1
Node.js
プロジェクト フォルダで、npm
を使用して必要な通知 API の依存関係をインストールします。
npm install --save @google-cloud/security-center/
ステップ 3: Pub/Sub の設定
Pub/Sub に通知を配信するには、Pub/Sub トピックをサブスクライブし、通知サービス アカウントに pubsub.topics.setIamPolicy
権限を含む IAM ロールを付与します。
新しい Pub/Sub トピックを作成するか、既存のトピックを使用します。
gcloud pubsub topics create TOPIC_ID
TOPIC_ID
は、トピック ID に置き換えます。環境変数を設定します。
トピック ID を設定します。
export TOPIC_ID=TOPIC_ID
通知 API を有効にしたプロジェクトのプロジェクト ID を設定します。
export CONSUMER_PROJECT=PROJECT_ID
PROJECT_ID
を実際のプロジェクト ID に置き換えます。前の手順で作成したサービス アカウントのメールを設定します。
export SERVICE_ACCOUNT_EMAIL=SERVICE_ACCOUNT_NAME@$CONSUMER_PROJECT.iam.gserviceaccount.com
SERVICE_ACCOUNT_NAME
は、サービス アカウントの名前に置き換えます。
トピックへのサブスクリプションを作成します。
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic TOPIC_ID
SUBSCRIPTION_ID
は、サブスクリプション ID に置き換えます。通知サービス アカウントに、
pubsub.topics.setIamPolicy
権限があるロールを付与します。gcloud pubsub topics add-iam-policy-binding \ projects/$CONSUMER_PROJECT/topics/$TOPIC_ID \ --member="serviceAccount:$SERVICE_ACCOUNT_EMAIL" \ --role='roles/pubsub.admin'
Pub/Sub の設定に関する詳細は、トピックとサブスクリプションの管理をご覧ください。次のステップでは、NotificationConfig
を作成して設定を完了します。
NotificationConfig の作成
NotificationConfig
を作成する前に、各組織で保持できる NotificationConfig
ファイルの数に上限があることを確認してください。詳細については、割り当てと上限をご覧ください。
NotificationConfig
には、通知を有用なイベントに限定する filter
フィールドが含まれています。このフィールドは、Security Command Center API の findings.list
メソッドで使用できるすべてのフィルタを受け入れます。
NotificationConfig
を作成する場合は、Google Cloud リソース階層(組織、フォルダ、プロジェクトのいずれか)から NotificationConfig
の親を指定します。後で NotificationConfig
を取得、更新、削除する必要がある場合は、参照時に親の組織、フォルダ、またはプロジェクトの数値 ID を指定する必要があります。
任意の言語やプラットフォームを使用して NotificationConfig
を作成するには:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
次のように置き換えます。
NOTIFICATION_NAME
: 通知の名前。 1~128 文字で、英数字、アンダースコア、ハイフンのみを使用できます。PARENT
: 通知が適用されるリソース階層内の範囲(organization
、folder
、またはproject
)。PARENT_ID
: 親組織、フォルダー、またはプロジェクトの ID で、organizations/123
、folders/456
、またはprojects/789
の形式で指定されます。LOCATION
: データ所在地が有効になっている場合は、通知を作成する Security Command Center のロケーションを指定します。生成されたnotificationConfig
リソースは、このロケーションにのみ保存されます。このロケーションで発行された検出結果のみが Pub/Sub に送信されます。データ所在地が有効になっていない場合、
--location
フラグを指定すると、Security Command Center API v2 を使用して通知が作成されます。フラグの有効な値はglobal
のみです。NOTIFICATION_DESCRIPTION
: 通知の説明(最大 1,024 文字)。PUBSUB_TOPIC
: 通知を受け取る Pub/Sub トピック。形式はprojects/PROJECT_ID/topics/TOPIC
です。FILTER
: Pub/Sub に送信する検出結果を選択するために定義する式。例:state="ACTIVE"
Python
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
Java
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
Go
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
Node.js
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
PHP
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
Ruby
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
C#
次のサンプルでは、v1 API を使用します。v2 のサンプルを変更するには、v1
を v2
に置き換え、/locations/LOCATION
をリソース名に追加します。
ほとんどのリソースでは、/PARENT/PARENT_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、PARENT
は organizations
、folders
、または projects
です。
検出結果の場合は、/sources/SOURCE_ID
の後に /locations/LOCATION
をリソース名に追加します。ここで、SOURCE_ID
は、検出結果を発行した Security Command Center サービスの ID です。
これで、指定した Pub/Sub トピックに通知がパブリッシュされるようになりました。
通知をパブリッシュするため、サービス アカウントが service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
の形式で作成されます。このサービス アカウントは、最初の NotificationConfig
を作成するときに作成され、通知構成の作成時に PUBSUB_TOPIC の IAM ポリシーに対する securitycenter.notificationServiceAgent
ロールが自動的に付与されます。通知が機能するには、このサービス アカウントのロールが必要です。
VPC Service Controls で境界へのアクセス権を付与する
VPC Service Controls を使用していて、Pub/Sub トピックがサービス境界内のプロジェクトに含まれている場合、通知を作成するにはプロジェクトへのアクセス権を付与する必要があります。
プロジェクトへのアクセス権を付与するには、通知の作成に使用するプリンシパルとプロジェクトに上り(内向き)ルールと下り(外向き)ルールを作成します。このルールは、保護されたリソースへのアクセスを許可し、ユーザーが Pub/Sub トピックに対する setIamPolicy
権限を持っていることを Pub/Sub で確認できるようにします。
NotificationConfig を作成する前に
NotificationConfig の作成の手順を完了する前に、次の手順を行います。
Google Cloud Console の [VPC Service Controls] ページに移動します。
必要に応じて組織を選択します。
変更するサービス境界の名前をクリックします。
変更する必要があるサービス境界を確認するには、ログで
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
違反を示すエントリを確認します。これらのエントリで、servicePerimeterName
フィールドaccessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
を確認します。[境界を編集] をクリックします。
ナビゲーション メニューで、[上り(内向き)ポリシー] をクリックします。
ユーザーやサービス アカウントの上り(内向き)ルールを構成するには、次のパラメータを使用します。
- API クライアントの FROM 属性:
- [ソース] プルダウン メニューで、[すべてのソース] を選択します。
- [ID] プルダウン メニューで [選択した ID] を選択します。
- [選択] をクリックして、Security Command Center API の呼び出しに使用するプリンシパルを入力します。
- Google Cloud サービス / リソースの TO 属性:
- [プロジェクト] プルダウン メニューで、[選択したプロジェクト] を選択します。
- [選択] をクリックしてから、Pub/Sub トピックを含むプロジェクトを入力します。
- [サービス] プルダウン メニューで [選択したサービス]、[Cloud Pub/Sub API] の順に選択します。
- [メソッド] プルダウン メニューで、[すべてのアクション] を選択します。
- API クライアントの FROM 属性:
[保存] をクリックします。
ナビゲーション メニューで、[下り(外向き)ポリシー] をクリックします。
[Add Rule] をクリックします。
ユーザー アカウントやサービス アカウントの下り(外向き)ルールを構成するには、次のパラメータを入力します。
- API クライアントの FROM 属性:
- [ID] プルダウン メニューで [選択した ID] を選択します。
- [選択] をクリックして、Security Command Center API の呼び出しに使用するプリンシパルを入力します。
- Google Cloud サービス / リソースの TO 属性:
- [プロジェクト] プルダウン メニューで、[すべてのプロジェクト] を選択します。
- [サービス] プルダウン メニューで [選択したサービス]、[Cloud Pub/Sub API] の順に選択します。
- [メソッド] プルダウン メニューで、[すべてのアクション] を選択します。
- API クライアントの FROM 属性:
[保存] をクリックします。
NotificationConfig の上り(内向き)ルールを作成する
NotificationConfig
の上り(内向き)ルールを作成するには、次のようにします。
- NotificationConfig の作成の手順を完了します。
- 前のセクションのサービス境界を再度開きます。
- [上り(内向き)ポリシー] をクリックします。
- [Add Rule] をクリックします。
- 作成した
NotificationConfig
サービス アカウントの上り(内向き)ルールを構成するには、次のパラメータを入力します。- API クライアントの FROM 属性:
- [ソース] プルダウン メニューで、[すべてのソース] を選択します。
- [ID] プルダウン メニューで [選択した ID] を選択します。
- [選択] をクリックして、
NotificationConfig
サービス アカウントの名前「service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
」を入力します。
- GCP サービス / リソースの TO 属性:
- [プロジェクト] プルダウン メニューで、[選択したプロジェクト] を選択します。
- [選択] をクリックしてから、Pub/Sub トピックを含むプロジェクトを選択します。
- [サービス] プルダウン メニューで [選択したサービス]、[Cloud Pub/Sub API] の順に選択します。
- [メソッド] プルダウン メニューで、[すべてのアクション] を選択します。
- API クライアントの FROM 属性:
- ナビゲーション メニューで、[保存] をクリックします。
これで、選択したプロジェクト、ユーザー、サービス アカウントが保護されたリソースにアクセスし、通知を作成できるようになりました。
このガイドの手順をすべて完了していて、通知が正しく機能している場合、次のルールは削除できます。
- プリンシパルの上り(内向き)ルール
- プリンシパルの下り(外向き)ルール
これらのルールは、NotificationConfig
を構成するためだけに必要でした。ただし、通知が引き続き機能するには、NotificationConfig
の上り(内向き)ルールは維持する必要があります。このルールによって、サービス境界の背後にある Pub/Sub トピックに通知をパブリッシュできます。
次のステップ
- リアルタイム メールとチャット通知を有効にするを確認する。
- 通知 API を管理する方法を確認する。
- 通知のフィルタリングを確認する。