403"请求的认证范围不足"在gcloud容器集群获取凭据期间

时间:2016-03-10 22:22:40

标签: google-cloud-platform google-kubernetes-engine

从GCE的VM中,我做了以下

gcloud auth activate-service-account --key-file <blah>
# "blah" is a service account key file (JSON) I generated from the web interface
gcloud config set project <project-name>
gcloud config set compute/zone <zone-name>
gcloud set container/cluster <cluster-name>

然后我试图跑

gcloud container clusters get-credentials <cluster-name>

并且失败并显示错误消息:

  

错误消息:&#34;错误:(gcloud.container.clusters.get-credentials)   ResponseError:code = 403,message = Request不足   身份验证范围。&#34;

VM与GKE集群位于同一网络中。我使用来自GCE外部的机器的相同服务帐户密钥文件,对&#34;默认&#34;上的GKE集群尝试了同样的事情。网络,它成功了......

4 个答案:

答案 0 :(得分:32)

要从GCE虚拟机使用Google Kubernetes Engine API,您需要在创建虚拟机时将其添加到虚拟机平台范围(“https://www.googleapis.com/auth/cloud-platform”)。

答案 1 :(得分:1)

现在有一个解决方案(仅在beta和alpha中),可以在现有GCE VM上设置范围。成功要做的就是在执行命令之前先停止VM。

首先,您应该了解(并复制)VM的当前作用域,以便可以将其与新作用域一起设置,请使用:

gcloud compute instances describe your-instance

在底部,您应该看到一个范围列表,将其复制。

然后,阅读Beta中此命令的文档(所有人都可以使用,但后果自负):https://cloud.google.com/sdk/gcloud/reference/beta/compute/instances/set-scopes

在执行此命令之前,请从GCE页面停止实例并等待其关闭。将会出现一个可怕的警告,请注意,如果虚拟机在90秒内未正常关闭(=成功关闭所有进程和服务),则在强制关闭虚拟机时文件系统可能会损坏。如果您对此感到不安全,请记好笔记并备份重要文件。

对我来说,在现有范围和新范围(云平台)的情况下,生成的set-scopes命令为:

gcloud beta compute instances set-scopes my-instance --zone=us-central1-a --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/cloud-platform 

答案 2 :(得分:0)

如果您通过GCP中的VM使用Google Kubernetes Engine API。您首先需要在虚拟机级别https://www.googleapis.com/auth/projecthosting,cloud-platform上添加所需的范围。这也可以通过GCP控制台来完成。停止VM实例,然后转到“编辑”选项,最后您将找到Cloud API访问范围。

答案 3 :(得分:0)

第1步:gcloud init

第2步:选择[2]创建新配置

第3步:输入配置名称。名称以小写字母开头,并且仅包含小写字母a-z,数字0-9和连字符'-':kubernetes-service-account

第4步:选择您要用于执行此配置操作的帐户:[2]使用新帐户登录

第5步:是否要继续(是/否)? y

第6步:将链接复制粘贴到brwoser并使用用于创建您的Google Cloud帐户的ID登录

第7步:登录后复制google提供的验证码,并将其粘贴到控制台中。

第8步:选择要使用的云项目:

第9步:您要配置默认的计算区域和区域吗? (是/否)? y

步骤10:请输入数字选择或文本值(必须与列表项完全匹配):8

您的Google Cloud SDK已配置好并可以使用!

完成此操作后,请确保为VM配置的服务帐户具有执行所需任务的权限。