【问题标题】:GCP PubSub Permissions for a topic主题的 GCP PubSub 权限
【发布时间】:2019-06-20 09:40:03
【问题描述】:

我正在尝试创建一个仅对特定 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

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

【问题讨论】:

    标签: permissions google-cloud-platform publish-subscribe google-cloud-pubsub


    【解决方案1】:

    要创建订阅,您需要

    pubsub.subscriptions.create on the containing Cloud project and pubsub.topics.attachSubscription on the requested topic
    

    由于pubsub.subscriptions.create 仅包含在roles/ pubsub.editor(和...admin)中,您可能希望创建一个自定义角色以不放弃delete 等主题等权限

    关于请求的主题,您可以授予pubsub.subscriber以授予attachSubscription

    通过https://cloud.google.com/pubsub/docs/access-control#tbl_perm

    【讨论】:

      【解决方案2】:

      原来订阅本身也有权限。您需要授予服务帐户权限才能附加到它。

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

      【讨论】:

      • 非常感谢!我在这上面浪费了 40 分钟。尝试使用google_pubsub_topic_iam_bindingroles/pubsub.admin 仍然没有用!最后,我使用google_pubsub_subscription_iam_policy 让它工作。
      猜你喜欢
      • 2019-05-10
      • 2018-03-19
      • 2019-10-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2020-03-22
      • 2021-11-14
      • 1970-01-01
      相关资源
      最近更新 更多