Google Kubernetes Engine (GKE) 的角色和权限

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本文档介绍如何向服务帐号授予 Identity and Access Management (IAM) 角色,以便 Eventarc 可以从 Google Cloud 和第三方来源接收事件,并将事件传递给 GKE 和 Cloud Run for Anthos 服务。

如需详细了解 Eventarc 中的访问权限控制选项,请参阅访问权限控制

所需 IAM 角色

向服务帐号授予适当的角色。

Cloud Audit Logs

为了接收来自 Google Cloud 来源的事件,Eventarc 使用 Cloud Audit Logs 向 GKE 目标传送事件。

用户角色

向用户授予 Eventarc Admin 角色 (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:emaildomain:domain

    示例:user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com

服务帐号角色

  • 向服务帐号授予 Pub/Sub Subscriber 角色 (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"
    
  • 向服务帐号授予 Monitoring Metric Writer 角色 (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 Event Receiver 角色 (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 向目标 GKE 服务发送直接事件通知,例如对 Cloud Storage 存储桶的更新。

用户角色

向用户授予 Eventarc Admin 角色 (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:emaildomain:domain

    示例:user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com

服务帐号角色

  • 向服务帐号授予 Pub/Sub Subscriber 角色 (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"
    
  • 向服务帐号授予 Monitoring Metric Writer 角色 (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 Event Receiver 角色 (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 事件(而不是其他直接事件)创建触发器,请将 Pub/Sub Publisher 角色 (roles/pubsub.publisher) 授予 Cloud Storage 服务帐号:

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 Admin 角色 (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:emaildomain:domain

    示例:user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.com

服务帐号角色

  • 向服务帐号授予 Pub/Sub Subscriber 角色 (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"
    
  • 向服务帐号授予 Monitoring Metric Writer 角色 (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:您的服务帐号的名称。