启用 API 时未创建 GCP Pub/Sub 默认服务帐户

Joe*_*Joe 1 service-accounts google-cloud-platform google-cloud-pubsub

我们的 GCP 帐户中有两个项目;目前,一个用于我们的开发环境,一个用于我们的测试环境。Terraform 管理我们的大部分基础设施,因此我们只需最少地点击 GUI 或 CLI 命令。

我假设我们通过在两个环境中使用 Terraform 部署来启用 Pub/Sub API,尽管我们可能需要手动执行此操作。我们注意到 Google 在我们的开发环境中为我们创建了一个默认的 Pub/Sub 服务帐户,但在我们的测试环境中却没有。此文档页面建议它应该创建此服务帐户

此外,我们注意到多个 Pub/Sub 订阅正在运行,显然没有任何服务帐户。我们认为,仅此特定订阅需要服务帐户,因为它是对电子邮件服务器的推送。因此,它需要一个具有“服务帐户令牌创建者”角色的服务帐户。

我们尝试重新部署整个基础设施并禁用/重新启用 Pub/Sub API。两者似乎都没有促使 GCP 创建服务帐户。除此之外,我们尝试手动创建默认服务帐户。尽管如此,GCP 限制了用户自己可以为服务帐户指定的名称,因此我们无法使用 Pub/Sub 服务期望的名称创建服务帐户。

我们想知道我们是否错过了该项目的某些配置,或者是否有人以前见过这个配置?

gui*_*ere 8

它不存在或者你没有看到它吗?

我很确定它存在,但没有授予它任何角色,并且您在用户界面中看不到它。尝试在此默认服务帐户上授予角色,它将显示在 IAM 页面中!

  • 感谢 Allison Fisher (/sf/users/981293351/),这位 GCP 工程师直接联系了我并解释了发生的事情。为 @Guillaume 的正确答案添加上下文“服务帐户存在,但在授予其角色之前对您不可见。这是因为 Pub/Sub 服务帐户不在您的项目中。因为服务帐户不存在”如果它不属于您的项目,则它不会显示在您的 IAM > 服务帐户选项卡中,并且仅在您为其分配项目中的角色后才会显示在项目的 IAM 权限页面中。” (5认同)