我目前正在从事GCP项目,我需要尝试实现以下目标。
我需要以某种方式限制哪些GCP功能可以发布到哪些GCP主题?
有人知道我如何实现这一目标吗?
谢谢
Tom Early
答案 0 :(得分:0)
当您希望发布消息时,请指定发布消息的主题。这意味着消息将仅发布到该特定主题,而不会发布到其他主题。如果在发布到特定主题的消息方面需要更多帮助,可以查看与发布消息here相关的文档。
答案 1 :(得分:0)
Cloud Functions以PROJECT_ID@appspot.gserviceaccount.com运行,并具有该服务帐户的权限。因此,如果希望不同的功能具有不同的权限,则必须在单独的项目中创建它们。例如,您可能有:
abc
中的功能abc-proj
xyz
中的功能xyz-proj
a-topic
中的发布/子主题z-topic
和pubsub-proj
projects.topics.publish
授予主题a-topic
(在pubsub-proj
中的abc-proj@appspot.gserviceaccount.com
权限projects.topics.publish
授予主题z-topic
(在pubsub-proj
中的xyz-proj@appspot.gserviceaccount.com
权限然后您将拥有功能abc
能够发布到pubsub-proj/a-topic
和功能xyz
能够发布到pubsub-proj/z-topic
,但不能交叉。
答案 2 :(得分:0)
由于我仍然没有信誉(对此感到抱歉),所以我正在写一个新答案,只是让可能遇到此问题的每个人都知道,只需更换服务,David的答案也对Cloud Run有效。处理您的Cloud Run服务的帐户。
答案 3 :(得分:0)
根据最新的Cloud Functions文档[1],Cloud Functions服务使用Google Cloud Functions service agent
服务帐户(service-PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
)。
因此,如果您需要除默认设置以外的其他权限。您可以将其他角色绑定到该服务帐户。
并确保服务帐户有权发布到发布/订阅主题[2]。
[1] https://github.com/plotly/plotly.js/issues/4535
[2] https://cloud.google.com/functions/docs/concepts/iam#cloud_functions_service_account
希望这会帮助〜:)