已完成认证,调用Google VisionAI创建产品集仍返回403错误求助
关于Google VisionAI创建产品集时403权限错误的原因分析
我正尝试为Google VisionAI创建产品集,设置应用凭据后,将Google官方文档中的PowerShell命令复制到PowerShell 7.2中执行,终端操作日志如下:
PS C:\Users[USERNAME]\Desktop\Work\VisionApi> $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users[USERNAME]\Desktop\Work\VisionApi\machinelearning-285617-9fd5155827e0.json" PS C:\Users[USERNAME]\Desktop\Work\VisionApi> $cred = gcloud auth application-default print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest -Method POST -Headers $headers -ContentType: "application/json; charset=utf-8" -InFile request.json -Uri "https://vision.googleapis.com/v1/projects/[PROJECTID]/locations/europe-west1/products" | Select-Object -Expand Content Invoke-WebRequest: Line | 4 | Invoke-WebRequest | ~~~~~~~~~~~~~~~~~~~ | { "error": { "code": 403, "message": "Permission denied.", "status": "PERMISSION_DENIED" } }
导致403错误的常见原因如下:
- 服务账号权限不足:你使用的JSON凭据对应的服务账号未被授予创建VisionAI产品集的权限,比如缺少
Cloud Vision API Product Search Admin角色,或者没有包含vision.products.create权限的自定义角色。 - 凭据未正确加载:虽然设置了
GOOGLE_APPLICATION_CREDENTIALS环境变量,但gcloud auth application-default print-access-token可能未读取到该凭据,而是使用了其他默认凭据(比如当前用户的gcloud登录凭据),而该凭据无对应操作权限。可执行gcloud auth application-default describe检查当前默认凭据是否为指定的服务账号。 - 项目或区域参数错误:确认请求URL中的
[PROJECTID]已替换为正确的Google Cloud项目ID,同时检查europe-west1是否是你项目中启用VisionAI服务的区域,参数不匹配可能引发权限校验失败。 - Cloud Vision API未启用:检查Google Cloud控制台,确认你的项目已启用
Cloud Vision API,未启用API时即便有权限也会返回403错误。
内容的提问来源于stack exchange,提问作者user16537303
相关产品推荐
相关产品推荐

