0

在我的项目中,项目 A 发布了一条消息,项目 B 将其从 Google 云中拉出。我有几个 B 客户,希望将它们限制为特定主题和订阅。我尝试了 IAM 条件,但它不适用于 pubsub,而且似乎仅适用于 pubsub lite。有谁知道如何限制用户访问特定主题和订阅?

4

1 回答 1

1

您可以授予不同级别的角色:

  • 组织
  • 文件夹
  • 项目
  • 资源

当您转到 IAM 页面时,您在项目级别授予权限,因此您可以访问项目的所有资源。

在这种情况下,您应该将项目 B 的服务帐户授予项目 A 的 pubsub 角色。因此该服务帐户可以访问所有主题/订阅。


要解决此问题,您只能在主题或订阅上授予服务帐户(在资源级别)

  • 转到主题或订阅页面
  • 勾选您想要的资源前面的复选框
  • 转到右侧,在信息面板中,在权限选项卡中
  • 单击添加成员以仅在此资源上授予服务帐户(或用户帐户)

在此处输入图像描述


或者,您可以使用projects.topics.setIamPolicyPubSub API 的方法在资源级别设置权限。

如果不想直接调用 API,也可以使用 CLI 和这个命令

gcloud pubsub topics set-iam-policy TOPIC POLICY_FILE
于 2021-03-06T16:14:21.830 回答