小编D3r*_*D3r的帖子

计算引擎的服务帐户没有足够的云视觉 API 范围

我需要在我的 python 解决方案中使用 Cloud Vision API,我已经依赖 API 密钥有一段时间了,但目前我正在尝试为我的计算引擎的默认服务帐户提供调用 Vision 所需的范围,到目前为止运气不佳。

我已经通过云控制台在我的项目中启用了 Vision API ,但我仍然收到 403 错误:

请求的身份验证范围不足。

我会从 gce 的编辑详细信息选项卡中单独设置每个 API 的访问权限,但找不到与其他 API 一起列出的 Vision。我成功地从 Vision API 正确接收正确响应的唯一方法是再次从我的 gce 的编辑详细信息选项卡中标记“允许完全访问所有云 API”复选框,但这对我来说听起来不太安全。

希望有更好的方法来做到这一点,但我在 Vision 的身份验证文档中找不到任何内容,也没有在堆栈溢出的任何问题中找到任何内容(有些问题有一个密切的主题,但没有一个建议的答案完全适合我的情况,或者提供一个可行的解决方案)。

预先感谢您的帮助。

goole 云控制台中的 gce 编辑详细信息选项卡


编辑

我添加了可以从云控制台在 gce 的默认服务帐户中单独启用的每个 API 的列表:

大查询;大表管理;大表数据;云数据存储;云调试器;云发布/订阅;云源存储库;云SQL;计算引擎;服务控制;服务管理;Stackdriver 日志 API;Stackdriver 监控 API;堆栈驱动程序跟踪;贮存; 任务队列;用户信息

尽管启用对它们的完全访问可以解决我的问题这一事实让我感到非常困惑,但它们似乎都对我的需求没有用处。


编辑#2

我将尝试更简洁地陈述我的问题:How do I add https://www.googleapis.com/auth/cloud-vision to my gce instance's default account?

我正在寻找一种通过以下任何方式来做到这一点的方法:GCP控制台、gcloud命令行,甚至通过Python(目前我正在使用googleapiclient.discovery.build,我不知道是否有任何通过库请求 Vision API 范围的方法)。

或者只要通过 IAM 限制角色就可以启用所有范围吗?如果是这样的话我该怎么做?

我真的找不到文档的方法,再次感谢您。

python google-compute-engine google-cloud-platform google-cloud-vision

5
推荐指数
1
解决办法
2007
查看次数