Google Kubernetes Engine(GKE)のロールと権限

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このドキュメントでは、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.comgroup:admins@example.comserviceAccount: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.comgroup:admins@example.comserviceAccount: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.comgroup:admins@example.comserviceAccount: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: サービス アカウントの名前。