在不同项目中设置发布/订阅订阅?

时间:2020-06-21 09:37:37

标签: google-cloud-platform google-cloud-pubsub

在我的GCP项目(项目 A )中,我创建了一个发布/订阅主题( topicA ),并且在该发布/订阅主题中发布的消息需要在订阅( subscriptionB )的其他GCP项目(项目 B )。

设置 subscriptionB 的推荐方法是什么?

  1. 在项目A中定义 subscriptionB ,并从项目B中获得具有适当IAM权限的服务帐户。
  2. 在项目B中定义 subscriptionB 。在云控制台中,可以通过授予pubsub.topic.attachSubscription(如下所示)来附加来自不同主题的订阅。

方法2甚至可行吗?如果是,那么什么时候使用方法2,方法2需要做些什么?

enter image description here

1 个答案:

答案 0 :(得分:2)

第2种方法是可行的,还有第3种方法。

  1. 在项目B的服务帐户上,项目A的订阅(或项目)上使用角色roles/pubsub.subscriber
  2. 您需要在项目A上想要的主题(或项目)上拥有角色roles/pubsub.subscriber。根据消息中的定义,您至少需要对项目A拥有权限pubsub.topics.attachSubscription。主题(或项目)。为此,如果您只想授予此权限和custom role
  3. ,则可以创建not the 2 others of the role roles/pubsub.subscriber
  4. 第三个解决方案基于解决方案1,在项目A中创建一个订阅,但是创建一个Push订阅,然后将消息推送到HTTP端点。这次在项目B中不需要身份验证。但是,如果要保护HTTP端点(例如部署在Cloud Run或Cloud Functions上),则需要在projectB中使用in the push subscription in the projectA, to have the correct authorization to call the endpoint