Google cloud platform 403:对项目/xyz执行此操作需要iam.serviceAccounts.create权限

Google cloud platform 403:对项目/xyz执行此操作需要iam.serviceAccounts.create权限,google-cloud-platform,Google Cloud Platform,我正在尝试使用Google cloud api创建一个ServiceAccount。我是代表用户进行身份验证的Oauth客户端。我使用的是正确的范围。我仍然收到错误403:在项目/xyz上执行此操作需要权限iam.serviceCounts.create 这段代码以前是有效的。我看到新的文件也提到了这一点 我的问题是我做错了什么。如何解决此问题?这确实很旧,但对于其他人来说,这可能是由以前失败的尝试造成的。这个错误仍然存在,甚至一年后,以前失败的尝试似乎传播了这个错误。如果您更改服务帐户的名称,

我正在尝试使用Google cloud api创建一个ServiceAccount。我是代表用户进行身份验证的Oauth客户端。我使用的是正确的范围。我仍然收到错误
403:在项目/xyz上执行此操作需要权限iam.serviceCounts.create

这段代码以前是有效的。我看到新的文件也提到了这一点


我的问题是我做错了什么。如何解决此问题?

这确实很旧,但对于其他人来说,这可能是由以前失败的尝试造成的。这个错误仍然存在,甚至一年后,以前失败的尝试似乎传播了这个错误。如果您更改服务帐户的名称,它通常会正常工作。

在我的情况下,问题是我使用的是项目编号而不是项目ID。奇怪的是,我能够创建许多资源(VM、DNS、网络等);只有在创建服务帐户时,这才成为一个问题。

就像您所说的,相同的代码在前面工作过。这意味着有人吊销了该用户用于创建新服务帐户的某些角色/权限


您可以查看分配给用户的所有角色。您可以添加具有iam.serviceAccounts.create权限的适当角色,也可以手动创建自定义角色,将此权限添加到该角色,然后将其分配给用户。

若要允许用户管理服务帐户,请授予以下角色之一:

  • 服务帐户用户
    角色/iam.serviceAccountUser
    ):授予获取、列出或模拟服务帐户的权限
  • 服务帐户管理员
    角色/iam.serviceAccountAdmin
    ):包括服务帐户用户权限,还授予创建、更新、删除、设置或获取服务帐户云iam策略的权限
根据问题,要创建服务帐户,至少必须向用户授予服务帐户管理员角色(
角色/iam.servicecomportadmin
)或编辑器基本角色(
角色/Editor

由于您尚未提供代码,请执行以下操作

  • 检查您的服务帐户是否具有上述角色。如果没有,请添加它们
  • 检查您是否正确提供了
    GOOGLE\u应用程序\u凭据
  • 根据您的编程语言,尝试给出的示例代码

  • “更改服务帐户的名称”是指编辑服务帐户上的名称字段,还是创建一个新的服务帐户以获得一个完整的新服务帐户电子邮件地址?对我来说,我已经创建了一个帐户foobar,后来将其删除。当我试图创建一个同名帐户时,我遇到了这个问题。当我将名称更改为foobar1时,它起了作用。本节中的信息可能会对您有所帮助。我也提供了这个答案,以帮助其他人面对这个问题。您需要
    roles/iam.serviceAccountAdmin
    roles/editor