You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gcloud CLI管理Google Cloud VM时出现身份验证范围不足错误

错误成因及排查解决建议

错误成因

这个错误的核心原因是运行gcloud命令的instance1虚拟机,其自身配置的OAuth2访问范围(scopes)不足以允许该服务账号访问Compute Engine资源:

  • 本地PC使用服务账号时,是通过服务账号密钥文件直接完成认证,不受GCP虚拟机实例级别的scopes限制,只要服务账号本身有对应的IAM权限就能执行命令。
  • 但在GCP虚拟机内部使用服务账号时,虚拟机实例启动时设置的scopes会作为额外的权限边界——哪怕服务账号本身有足够的IAM权限,只要实例的scopes没包含对应服务的访问权限,就会触发这个权限不足的错误。

排查步骤

  • 检查instance1的scopes配置:
    登录GCP控制台,进入Compute Engine实例列表找到instance1,在详情页查看「云API访问范围」部分,确认是否包含Compute Engine相关权限(比如https://www.googleapis.com/auth/compute.readonly或https://www.googleapis.com/auth/compute)。
  • 验证服务账号IAM权限:
    确认服务账号XXXXXXXXXXXX-compute@developer.gserviceaccount.com在项目my-project中拥有Compute Instance Viewer(只读)或更高的Compute Engine相关IAM角色(如Compute Admin)。

解决方法

方法1:修改instance1的云API访问范围(需重启实例)

  1. 停止instance1虚拟机。
  2. 进入实例详情页的「编辑」界面,找到「云API访问范围」。
  3. 选择「为每个API设置访问权限」,将「Compute Engine」设置为「只读」或「完全」权限;若为测试环境,也可直接选择「允许所有云API的完全访问权限」(生产环境不推荐)。
  4. 保存设置后重启instance1,重新执行目标命令即可。

方法2:在instance1中使用服务账号密钥文件认证(无需重启)

  1. 在GCP控制台「IAM与管理」-「服务账号」页面,找到目标服务账号,创建并下载JSON格式的密钥文件。
  2. 将密钥文件上传到instance1的Windows系统中。
  3. 在CMD控制台执行:
    gcloud auth activate-service-account XXXXXXXXXXXX-compute@developer.gserviceaccount.com --key-file=本地路径\密钥文件.json
    
  4. 完成认证后再执行gcloud compute instances describe instance2 --zone=my-zone --project=my-project即可。

内容的提问来源于stack exchange,提问作者El_Merendero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:54:59