将 IAM 策略绑定添加到 Google Pub/Sub 主题需要啥角色?

Posted

技术标签:

【中文标题】将 IAM 策略绑定添加到 Google Pub/Sub 主题需要啥角色?【英文标题】:What is the role required to add an IAM policy binding to a Google Pub/Sub topic?将 IAM 策略绑定添加到 Google Pub/Sub 主题需要什么角色? 【发布时间】:2020-11-20 12:11:44 【问题描述】:

我正在尝试按照这些说明 https://cloud.google.com/pubsub/docs/dead-letter-topics#assigning_the_publisher_role 授予 Pub/Sub 将消息发布到死信队列的权限,但我遇到了 PERMISSION_DENIED 错误:

gcloud pubsub topics add-iam-policy-binding my-dead-letter-topic --member="serviceAccount:$PUBSUB_SERVICE_ACCOUNT" --role="roles/pubsub.publisher"
ERROR: (gcloud.pubsub.topics.add-iam-policy-binding) PERMISSION_DENIED: User not authorized to perform this action.

Google Cloud 控制台显示我需要pubsub.topics.setIamPolicy 权限:

我的问题是:我将如何获得该许可?我是否必须成为项目 IAM 管理员(参见You need permissions for this action. Required permission(s): resourcemanager.projects.setIamPolicy)?

【问题讨论】:

【参考方案1】:

是的,没错。您需要被分配包含resourcemanager.projects.setIamPolicy 权限的角色之一。正如您所指出的,You need permissions for this action. Required permission(s): resourcemanager.projects.setIamPolicy 的答案概述了不同的角色选项。

建议使用项目 IAM 管理员,因为它是您可以被授予设置 IAM 政策的最具体的角色。

【讨论】:

我后来注意到 Pub/Sub 访问控制记录在这里:cloud.google.com/pubsub/docs/access-control#roles。 Pub/Sub 管理员 (roles/pubsub.admin) 角色足以获得设置转发到死信主题所需的 pubsub.topics.setIamPolicypubsub.subscriptions.setIamPolicy 权限。

以上是关于将 IAM 策略绑定添加到 Google Pub/Sub 主题需要啥角色?的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Web Service S3 Access Denied with 看似不错的 IAM 策略

使用 Pulumi 将 IAM 托管策略附加到 IAM 用户不起作用

Google Cloud将用户添加到项目中

Cloudformation 的最低权限 AWS IAM 策略

使用 Boto3 将 IAM 用户附加到 IAM 组

gcp 云函数 pub/sub 主题死信