Google Compute Engine:必需的“ compute.zones.get”权限错误

The*_*eoK 6 google-compute-engine google-cloud-platform google-kubernetes-engine

我正在尝试在Google Cloud Platform中创建Kubernetes集群,当我尝试从Web应用程序创建集群时收到以下错误:

Compute Engine中发生未知错误:“外部:Google Compute Engine:'projects / my-project-198766 / zones / us-west1-a'必需的'compute.zones.get'权限”。错误代码:“ 18”

当我使用gcloud时,我收到以下响应:

(gcloud.container.clusters.create)ResponseError:代码= 403,消息= Google Compute Engine:对“ projects / my-project-198766 / zones / us-west1-a”具有必需的“ compute.zones.get”权限

请注意,我具有所有者角色,可以创建VM实例,而不会出现任何问题。

有任何想法吗?

小智 8

如果您的云服务机器人作为项目编辑器被删除,则可能会出现此类问题。我最好的猜测是,在你的情况下,这就是问题所在。

发生这种情况可能是由于 API 调用的SetIamPolicy缺少“角色/编辑器”绑定中的云服务机器人。SetIamPolicy是直接 PUT,它将覆盖请求中提供的任何策略。您可以使用本文中给出的以下命令获取项目的 IAM 策略列表。

gcloud projects get-iam-policy [project-id]
Run Code Online (Sandbox Code Playgroud)

从列表中,您可以检查以下服务帐户是否具有编辑者权限。

[id]@cloudservices.gserviceaccount.com

要解决此问题,您可以授予上述服务帐户 “编辑者”权限,然后检查是否可以解决问题。

希望这可以帮助。

  • 这对我不起作用。我拥有具有项目编辑者权限的服务帐户,并且我的帐户是所有者角色帐户。我仍然无法让 gcloud 创建集群而不抱怨 (4认同)

Chr*_*zke 6

就我而言,当我尝试创建 kubernetes 集群时,我删除了服务帐户/IAM 或其他任何内容,并弹出了相同的错误消息。

我要求 Google 重新创建我的服务帐户,他们提到您只需再次启用它们即可重新创建服务帐户及其权限。因此,就我而言,我运行了以下两个命令以使 kubernetes 再次工作:

gcloud services enable compute
gcloud services enable container
Run Code Online (Sandbox Code Playgroud)

这是他们给我的链接:https : //issuetracker.google.com/64671745#comment2


小智 5

我想我明白了。我尝试遵循GitHub的建议。blahblah-compute@developer.gserviceaccount.com我需要在我的帐户(称为)上设置的权限是:

roles/compute.instanceAdmin roles/editor roles/iam.serviceAccountUser

最后一项似乎至关重要。