服务帐户不一致

Service accounts inconsistencies

最近几天,我试图在 google 开发人员控制台中整合项目。 我发现主要在权限(服务帐户)和凭据中不一致。

创建新项目时,它将有两个服务帐户(可以在 Google 开发人员控制台的“权限”选项卡中看到):

<project-id>@appspot.gserviceaccount.com (App Engine service account)
<project-number>-compute@developer.gserviceaccount.com (Google APIs service account)

此时凭据选项卡中没有凭据。

点击 Compute 选项卡下的选项卡后,activity 开始为新项目初始化 Compute Engine 并添加另一个服务帐户:

<project-number>@cloudservices.gserviceaccount.com (Google APIs service account)

还有 none 个凭证,这个状态似乎没问题。

不幸的是,大多数旧项目的情况不同,我观察到两种不同的情况:

  1. 项目有计算引擎类型的服务帐户:

    <project-number>@developer.gserviceaccount.com (Compute Engine service account)

可以删除此帐户,但似乎在“凭据”选项卡中绑定了标有 "Compute Engine and App Engine" 的凭据。 无法删除这些凭据,最终将重新创建相同的帐户。 在这个项目中(启用了计费),每次尝试在计算引擎中打开选项卡都会触发计算引擎的初始化,但失败并显示 "Unknown error." - 不确定它是否与现有的计算引擎服务帐户有共同之处。

  1. 项目有格式为

    的服务帐户

    <project-number>-<randomstring>@developer.gserviceaccount.com

例如 123412341234-cd139d7lp7v0vjlf2l87grmpcmsh6aru@developer.gserviceaccount.com 同样可以删除此帐户,但似乎在“凭据”选项卡中绑定了标有 "Compute Engine and App Engine" 的凭据。 这些项目(启用计费)的计算引擎初始化成功完成。

无法删除的凭据是造成这种不一致的原因还是其他项目状态? "Compute Engine and App Engine" 凭据的用途是什么?为什么不能删除它们? 很抱歉 post 但我已经为此苦苦挣扎了几天,希望有人能在这个灰色地带给出一些启示。

所有旧项目都升级为旧应用引擎控制台 > 应用程序设置 > 云集成。

感谢您的任何建议。

每个项目都有一个默认的 Compute Engine 和 App Engine 服务帐户,无法删除,很可能是因为没有它,Cloud SDK 无法对项目进行身份验证。如果可以删除服务帐号,则表示它不是默认服务帐号。

我注意到的唯一不一致是服务帐户的命名格式。我的旧项目使用 [project-id]@developer.gserviceaccount.com 作为默认服务帐户电子邮件地址,而我的新项目使用 [project-id]-[random-string]@developer.gserviceaccount.com 作为默认服务帐户电子邮件地址。除了命名格式外,它们的行为方式似乎完全相同。