首页 > 解决方案 > 主题的 GCP PubSub 权限

问题描述

我正在尝试创建一个仅对特定 pubsub 主题具有权限的服务帐户。

我创建一个主题:

gcloud pubsub topics create mytopic

然后创建一个服务帐户:

gcloud iam service-accounts create my-user \
  --display-name "my-user"

然后尝试授予此服务帐户权限:

gcloud alpha pubsub topics add-iam-policy-binding mytopic \
      --member="serviceAccount:my-user@myproject.iam.gserviceaccount.com" \
      --role='roles/pubsub.editor'

获取服务帐号 json 文件:

gcloud iam service-accounts keys create \
  --iam-account "my-user@myproject.iam.gserviceaccount.com" \
  service-account.json

使用此服务帐户 json 凭据,我被拒绝创建对此主题的订阅。

如果我授予此用户对整个项目的 pubsub 的权限,我可以创建对此主题的订阅,但我不想为此服务帐户授予太多权限。

gcloud projects add-iam-policy-binding myproject \
  --member="serviceAccount:my-user@myproject.iam.gserviceaccount.com" \
  --role='roles/pubsub.editor'

我正在尝试使用它,但它似乎不起作用:https ://cloud.google.com/sdk/gcloud/reference/alpha/pubsub/topics/add-iam-policy-binding

我在这里错过了什么吗?我会认为这个用户与主题的角色绑定就足够了?

标签: permissionsgoogle-cloud-platformpublish-subscribegoogle-cloud-pubsub

解决方案


事实证明,订阅本身也有权限。您需要授予服务帐户权限才能附加到它。

使用此命令: https ://cloud.google.com/sdk/gcloud/reference/alpha/pubsub/subscriptions/add-iam-policy-binding


推荐阅读