在我的项目中,项目 A 发布了一条消息,项目 B 将其从 Google 云中拉出。我有几个 B 客户,希望将它们限制为特定主题和订阅。我尝试了 IAM 条件,但它不适用于 pubsub,而且似乎仅适用于 pubsub lite。有谁知道如何限制用户访问特定主题和订阅?
1 回答
1
您可以授予不同级别的角色:
- 组织
- 文件夹
- 项目
- 资源
当您转到 IAM 页面时,您在项目级别授予权限,因此您可以访问项目的所有资源。
在这种情况下,您应该将项目 B 的服务帐户授予项目 A 的 pubsub 角色。因此该服务帐户可以访问所有主题/订阅。
要解决此问题,您只能在主题或订阅上授予服务帐户(在资源级别)
- 转到主题或订阅页面
- 勾选您想要的资源前面的复选框
- 转到右侧,在信息面板中,在权限选项卡中
- 单击添加成员以仅在此资源上授予服务帐户(或用户帐户)
或者,您可以使用projects.topics.setIamPolicy
PubSub API 的方法在资源级别设置权限。
如果不想直接调用 API,也可以使用 CLI 和这个命令
gcloud pubsub topics set-iam-policy TOPIC POLICY_FILE
于 2021-03-06T16:14:21.830 回答