このドキュメントでは、Eventarc が Google Cloud とサードパーティのソースからイベントを受信し、そのイベントを GKE(GKE クラスタで実行される限定公開と一般公開の Cloud Run for Anthos サービスを含む)に配信するために、Identity and Access Management(IAM)ロールをサービス アカウントに付与する方法について説明します。
Eventarc のアクセス制御オプションの詳細については、アクセス制御をご覧ください。
必要な IAM のロール
サービス アカウントに適切なロールを付与します。
Cloud Audit Logs
Eventarc は、Google Cloud ソースからイベントを受信するために、Cloud Audit Logs を使用して GKE ターゲットに配信します。
ユーザー ロール
Eventarc 管理者ロール(roles/eventarc.admin
)をユーザーに付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。PRINCIPAL
: バインディングを追加するプリンシパル。形式はuser|group|serviceAccount:email
またはdomain:domain
にする必要があります。例:
user:test-user@gmail.com
、group:admins@example.com
、serviceAccount:test123@example.domain.com
、またはdomain:example.domain.com
。
サービス アカウントのロール
-
Pub/Sub サブスクライバーのロール(
roles/pubsub.subscriber
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
モニタリング指標の書き込みのロール(
roles/monitoring.metricWriter
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
-
Eventarc イベント レシーバのロール(
roles/eventarc.eventReceiver
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/eventarc.eventReceiver"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。MY_SERVICE_ACCOUNT
: サービス アカウントの名前。
直接イベント
Eventarc は、Cloud Storage バケットの更新などの直接イベントの通知をターゲット GKE サービスに送信します。
ユーザー ロール
Eventarc 管理者ロール(roles/eventarc.admin
)をユーザーに付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。PRINCIPAL
: バインディングを追加するプリンシパル。形式はuser|group|serviceAccount:email
またはdomain:domain
にする必要があります。例:
user:test-user@gmail.com
、group:admins@example.com
、serviceAccount:test123@example.domain.com
、またはdomain:example.domain.com
。
サービス アカウントのロール
-
Pub/Sub サブスクライバーのロール(
roles/pubsub.subscriber
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
モニタリング指標の書き込みのロール(
roles/monitoring.metricWriter
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
-
Eventarc イベント レシーバのロール(
roles/eventarc.eventReceiver
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/eventarc.eventReceiver"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。MY_SERVICE_ACCOUNT
: サービス アカウントの名前。
Cloud Storage サービス アカウントのロール
他の直接イベントではなく、Cloud Storage の直接イベントのトリガーを作成する場合は、Cloud Storage サービス アカウントに Pub/Sub パブリッシャーのロール(roles/pubsub.publisher
)を付与します。
SERVICE_ACCOUNT="$(gsutil kms serviceaccount -p PROJECT_ID)" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${SERVICE_ACCOUNT}" \ --role="roles/pubsub.publisher"
PROJECT_ID
は、Google Cloud プロジェクト ID に置き換えます。
Pub/Sub トピック
サードパーティのソースからイベントを受信する場合、Eventarc は Pub/Sub 通知を使用して GKE ターゲットに配信します。
ユーザー ロール
Eventarc 管理者ロール(roles/eventarc.admin
)をユーザーに付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role="roles/eventarc.admin"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。PRINCIPAL
: バインディングを追加するプリンシパル。形式はuser|group|serviceAccount:email
またはdomain:domain
にする必要があります。例:
user:test-user@gmail.com
、group:admins@example.com
、serviceAccount:test123@example.domain.com
、またはdomain:example.domain.com
。
サービス アカウントのロール
-
Pub/Sub サブスクライバーのロール(
roles/pubsub.subscriber
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
-
モニタリング指標の書き込みのロール(
roles/monitoring.metricWriter
)をサービス アカウントに付与します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
次の値を置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。MY_SERVICE_ACCOUNT
: サービス アカウントの名前。