Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 服务帐户可以创建PubSub订阅,但可以';我不读他们的书_Google Cloud Platform_Google Cloud Pubsub_Google Cloud Iam - Fatal编程技术网

Google cloud platform 服务帐户可以创建PubSub订阅,但可以';我不读他们的书

Google cloud platform 服务帐户可以创建PubSub订阅,但可以';我不读他们的书,google-cloud-platform,google-cloud-pubsub,google-cloud-iam,Google Cloud Platform,Google Cloud Pubsub,Google Cloud Iam,我已经创建了一个服务帐户,我打算在我们的开发环境中使用它,因为它的凭据已签入源代码管理,所以我想将它的访问权限限制到最低限度 当启动新主机时,我们的应用程序会创建一个新的PubSub订阅,侦听新创建的订阅,然后在完成后将其删除。我们选择这种模式而不是拥有大量预配置/硬编码订阅,因为主机的数量会随着时间的推移而增加或减少,如果可能的话,我们不需要特定于主机的配置(以主机订阅映射的形式),等等。我们希望在本地开发环境中拥有相同的行为,这是调试的理想选择 我创建了一个特定的“开发”主题,并授予我们的开

我已经创建了一个服务帐户,我打算在我们的开发环境中使用它,因为它的凭据已签入源代码管理,所以我想将它的访问权限限制到最低限度

当启动新主机时,我们的应用程序会创建一个新的PubSub订阅,侦听新创建的订阅,然后在完成后将其删除。我们选择这种模式而不是拥有大量预配置/硬编码订阅,因为主机的数量会随着时间的推移而增加或减少,如果可能的话,我们不需要特定于主机的配置(以主机订阅映射的形式),等等。我们希望在本地开发环境中拥有相同的行为,这是调试的理想选择

我创建了一个特定的“开发”主题,并授予我们的开发服务帐户Pub/Sub-Admin角色,允许它将订阅附加到该主题。我还授予服务帐户项目级权限,允许它创建订阅。服务帐户可以成功创建新订阅并将其附加到主题,但当它尝试从新订阅读取时,我收到一个权限拒绝错误

我猜这是因为,在检查新创建的订阅时,我注意到创建它的服务帐户没有被授予该订阅任何类型的权限。我希望创建订阅的帐户至少具有该订阅的读取权限


是否有一种方法可以让服务帐户创建订阅,将其附加到主题,然后从该订阅中读取。。。而不允许服务帐户访问任何其他订阅或主题?我知道我可以给服务帐户一个“更高级别”的角色,使其能够读取所有订阅,但这违背了拥有一个仅用于开发的帐户的目的。

在您的服务帐户创建订阅后,它可以调用订阅上的setIamPolicy来授予自己对该订阅的读取权限。这是因为您在项目中为您的服务帐户指定了pubsub admin角色,其中包括对项目中的任何订阅调用setIamPolicy的功能


因为这是一个开发服务帐户,我不希望它能够对项目中的任何订阅调用SetIamPolicy(),只能对附加到我授予其权限的“仅开发”主题的订阅调用SetIamPolicy()。有没有办法授予服务帐户在非项目范围内读取新创建订阅的权限?如果权限仅针对每个项目,而不是每个主题,那么除了创建一个新项目之外,没有办法拥有一个测试帐户(没有生产主题/订阅访问权限)…?啊,抱歉。我误解了。我不知道有任何方法可以出于IAM策略的目的对主题或订阅进行分组,而且似乎无法在创建时为订阅指定IAM策略。不太理想,但是你可以创建一个新的项目来保存订阅。Brentonium,你找到解决方案了吗?我有一个类似的情况,我希望服务将自己添加为主题的订户。它们有很多,它们会来来去去去,所以我不想通过云控制台手动管理它们的个人订阅。