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

调用Google Cloud Vision API返回403项目权限不足问题求助

问题复现
  • 操作依据:Google Cloud Vision API CLI快速入门教程
  • 前置操作已完成:注册Google Cloud账号、新建项目、开启Vision API、完成账单设置
  • 执行的cURL请求:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-H "X-Goog-User-Project: dragon-ocr-324006" \
https://vision.googleapis.com/v1/images:annotate -d @request.json
  • 返回错误响应:
{
  "error": {
    "code": 403,
    "message": "Caller does not have required permission to use project dragon-ocr-324006. Grant the caller the Owner or Editor role, or a custom role with the serviceusage.services.use permission, by visiting https://console.developers.google.com/iam-admin/iam/project?project=dragon-ocr-324006 and then retry (propagation of new permission may take a few minutes).",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developer console IAM admin",
            "url": "https://console.developers.google.com/iam-admin/iam/project?project=dragon-ocr-324006"
          }
        ]
      },
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "USER_PROJECT_DENIED",
        "domain": "googleapis.com",
        "metadata": {
          "consumer": "projects/dragon-ocr-324006",
          "service": "vision.googleapis.com"
        }
      }
    ]
  }
}
  • 已尝试的排查操作:
    1. 确认账号在项目中持有Owner权限
    2. 删除本地gcloud配置文件rm -rf ~/.config/gcloud后重新执行gcloud auth application-default login,令牌可正常生成
    3. 新注册的其他账号执行相同操作可正常返回结果
问题解答

错误含义

该403 PERMISSION_DENIED错误表示:发起API请求的身份没有serviceusage.services.use权限,无法使用指定项目dragon-ocr-324006的Vision API服务,账单无法关联到该项目。

caller身份说明

此处的caller就是你gcloud auth application-default print-access-token生成的访问令牌对应的账号,也就是你执行gcloud auth application-default login时登录的谷歌账号,你的理解是正确的。

第一个账号配置异常的排查方向

按优先级从高到低排查:

  • 核对登录账号一致性:执行gcloud auth list,查看带*标记的激活账号,是否和你在后台确认过Owner权限的账号完全一致,很多用户会因为谷歌账号多登错账号而不自知。
  • 核对项目ID正确性:确认curl请求中X-Goog-User-Project参数的值是项目的唯一ID,而非项目显示名称,项目ID和项目名称是两个不同的属性,填错会直接触发权限错误。
  • 检查是否开启了服务账号冒充:执行gcloud config get-value auth/impersonate_service_account,如果返回了服务账号地址,说明你本地配置了默认冒充服务账号,即便你登录了个人账号,生成的令牌也属于该服务账号,此时需要执行gcloud config unset auth/impersonate_service_account清除配置,重新登录后再测试。
  • 检查组织级策略限制:如果你的第一个账号属于某企业/组织,可能组织管理员设置了组织级的服务使用限制、IAM策略限制,这类上层策略优先级高于项目级的Owner权限,会导致你即便有项目Owner权限也无法调用API,而新注册的个人账号不属于任何组织,没有这类限制所以可以正常调用。
  • 等待权限传播:如果是刚给账号加的Owner权限,最长需要等待15分钟让权限全网生效,刚加完立刻测试会临时触发该错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:54:03