【发布时间】:2018-04-07 05:35:38
【问题描述】:
我创建了一个打算在我们的开发环境中使用的服务帐户,并且由于它的凭据已检查到源代码控制中,我想将其访问权限锁定在最低限度。
当启动新主机时,我们的应用会创建一个新的 PubSub 订阅,监听新创建的订阅,然后在完成后将其删除。我们选择了这个模型而不是拥有许多预配置/硬编码的订阅,因为主机的数量会随着时间的推移而增加和减少,如果可能的话,我们不想要特定于主机的配置(以主机订阅映射的形式)等等。我们希望在本地开发环境中具有相同的行为,非常适合调试。
我创建了一个特定的“开发”主题并授予我们的开发服务帐户 Pub/Sub Admin 角色,允许它附加订阅到该主题。我还授予服务帐户项目级权限,允许它创建订阅。服务帐户可以成功创建新订阅并将其附加到主题,但是当它尝试从新订阅中读取时,我收到权限被拒绝错误。
我猜这是因为在检查新创建的订阅时,我注意到创建它的服务帐户没有被授予对该订阅的任何类型的权限。我希望创建订阅的帐户至少拥有它的读取权限。
有没有办法让服务帐户创建订阅,将它们附加到某个主题,然后从该订阅中读取...而不授予服务帐户访问任何其他订阅或主题的权限?我知道我可以只给服务帐户一个“更高级别”的角色来读取所有订阅,但这违背了拥有一个仅限开发帐户的目的。
【问题讨论】:
标签: google-cloud-platform google-cloud-pubsub google-cloud-iam