【发布时间】:2020-08-21 00:14:56
【问题描述】:
我正在尝试在应用程序运行时创建订阅,代码应该能够创建订阅并在完成后清理它。
我想对我正在使用的服务帐户使用尽可能少的权限。目前,我已经创建了一个自定义角色,并授予了两个角色pubsub.subscriptions.create , pubsub.subscriptions.delete 的访问权限。
虽然这允许创建和清理订阅,但它不仅允许删除当前订阅,还允许删除同一项目中其他用户创建的订阅。
如何分配权限,以便能够在 Pub/Sub 中创建订阅,删除由此服务帐户创建的订阅?
另一种说法可能是,我怎样才能在运行时创建订阅并仅修改此订阅的权限以包含pubsub.subscriptions.delete。 (使用相同的服务帐号)。是否有方法可以为资源(主题、订阅、计算引擎等)由该帐户创建创建服务帐户管理员/编辑器 ?类似于 IAM 角色 - 在创建资源后成为管理员。
【问题讨论】:
-
你提前知道订阅名的名称或模式吗?
-
不是名称,而是我拥有的模式,我使用 UUID 生成订阅字符串。就像,如果生成的 UUID 是
uuid_genearted_1订阅的名称将是subscription_gen.uuid_generated_1 -
您认为服务帐户可以删除具有此模式的任何订阅吗?或者是否存在与其他服务帐户创建的另一个订阅重叠的风险?
-
@guillaumeblaquiere 我不知道使用基于模式的条件。模式定义明确,对我有用。谢谢。
-
太好了,我想在根据我这边的资源名称测试条件之前确定您的用例。但我必须得出结论,这是可行的!酷!!
标签: google-cloud-pubsub google-iam google-cloud-iam