Permissions 主题的GCP PubSub权限

Permissions 主题的GCP PubSub权限,permissions,google-cloud-platform,publish-subscribe,google-cloud-pubsub,Permissions,Google Cloud Platform,Publish Subscribe,Google Cloud 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 \ --memb

我正在尝试创建一个仅对特定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'
我正在尝试使用它,但它似乎不起作用:


我是不是遗漏了什么?我原以为该用户与主题的角色绑定就足够了吗?

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


使用以下命令:

要创建订阅,您需要

pubsub.subscriptions.create on the containing Cloud project and pubsub.topics.attachSubscription on the requested topic
as
publisub.subscriptions.create
仅包含在
角色中/
pubsub.editor
(和
…admin
),您可能希望创建一个自定义角色,以避免在主题上发布
删除
等帖子

在请求的主题上,您可以授予
pubsub.subscriber
以授予
attachSubscription


via

非常感谢!我在这上面浪费了40分钟。尝试将
google\u pubsub\u topic\u iam\u binding
roles/pubsub.admin
一起使用,但仍然不起作用!最后,我使用
google\u pubsub\u subscription\u iam\u policy
让它运行起来。