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

使用gcloud服务账号执行services list --available遇权限拒绝问题求助

服务账号执行gcloud services list --available权限错误排查

问题描述

我使用服务账号通过gcloud排查API Gateway端点故障时遇到权限问题,操作流程及错误信息如下:

  1. 设置服务账号凭证环境变量:
    export GOOGLE_APPLICATION_CREDENTIALS=/path/to/credential/fils/PROJECTNAME-hash.json
    
  2. 运行命令:
    gcloud services list --available
    

终端返回错误:

ERROR: (gcloud.services.list) User [@.iam.gserviceaccount.com] does not have permission to access projects instance [] (or it may not exist): Permission denied to list services for consumer container [projects/]
Help Token:

  • '@type': type.googleapis.com/google.rpc.PreconditionFailure
    violations:
    • subject: ?error_code=110002&service=cloudresourcemanager.googleapis.com&permission=serviceusage.services.list&resource=projects/
      type: googleapis.com
  • '@type': type.googleapis.com/google.rpc.ErrorInfo
    domain: serviceusage.googleapis.com
    metadata:
    permission: serviceusage.services.list
    resource: projects/
    service: cloudresourcemanager.googleapis.com
    reason: AUTH_PERMISSION_DENIED

我已为该服务账号配置了对应权限(附权限截图),需明确错误原因及解决方法,让服务账号能成功执行该命令。

可能原因

  • 权限未生效或绑定错误:IAM权限变更存在1-5分钟的生效延迟,若刚添加权限可能未全局同步;或服务账号未被正确授予包含serviceusage.services.list权限的角色。
  • 权限不匹配:执行该命令需要serviceusage.services.list权限,对应默认IAM角色为Service Usage Viewer(roles/serviceusage.serviceUsageViewer),若服务账号无此角色或含该权限的其他角色(如Project Viewer),会触发报错。
  • 项目上下文错误:gcloud命令可能未在目标项目上下文执行,或凭证所属服务账号不属于报错中的项目。
  • 凭证无效:GOOGLE_APPLICATION_CREDENTIALS指向的JSON文件路径错误、文件损坏,或密钥已过期/被撤销。

解决步骤

  1. 确认权限配置
    登录Google Cloud控制台进入IAM页面,找到目标服务账号,检查是否已分配Service Usage Viewer、Project Viewer或包含serviceusage.services.list权限的自定义角色。若无,直接添加Service Usage Viewer角色。

  2. 等待权限生效
    添加权限后等待1-5分钟,让IAM权限全局同步,再重新执行命令测试。

  3. 锁定项目上下文
    确保gcloud命令在正确的项目下执行:

    gcloud config set project <MY PROJECT ID>
    

    执行完成后再次运行gcloud services list --available。

  4. 验证凭证有效性

    • 检查GOOGLE_APPLICATION_CREDENTIALS指向的JSON文件路径是否正确、文件未损坏。
    • 执行以下命令激活服务账号,验证凭证是否有效:
      gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS
      
      若激活失败,重新生成该服务账号的密钥文件。
  5. 确认项目存在性
    核实projects/<MY PROJECT NAME>项目确实存在,且服务账号所属项目与目标项目一致(跨项目访问需额外配置权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:50:26