提交了类似的问题,但没有一个解决方案有效。
尝试从Google Cloud文档执行this tutorial时,尝试访问数据存储区时出现以下错误:
google.api_core.exceptions.Forbidden: 403 Missing or insufficient
permissions.
可以找到执行的文件here。
我确实执行了以下命令:
gcloud auth application-default login
export GOOGLE_APPLICATION_CREDENTIALS="file.json"
请注意我正在本地计算机上执行该文件。目标是直接从Google Engine应用程序对数据存储区执行读/写操作。
答案 0 :(得分:3)
您尝试使用两种不同形式的身份验证,我不建议这样做。
来自Google的documentation," gcloud auth application-default login"如果您希望本地应用程序暂时使用您自己的用户凭据进行API访问。
当您使用"导出GOOGLE_APPLICATION_CREDENTIALS =' file.json'",根据Google的documentation,您要为&#设置环境变量34; file.json&#34 ;.这意味着您需要创建一个服务帐户,为服务帐户分配适当的权限,创建/下载一个密钥(在这种情况下是" file.json")然后环境变量将生效当你的代码被执行时。
由于您刚开始使用,我建议您开始使用Cloud Shell中提供的Google Cloud Console并使用拥有Google所有权的帐户项目。这将使您更容易学习基础知识(然后您可以在以后和/或生产中更安全地运行它)。 Cloud Shell已安装和更新所有内容。
如果您必须通过本地计算机运行此快速入门,我建议使用上面的第一个选项:" gcloud auth application-default login"。您需要为您的操作系统安装Google Cloud SDK。当您运行该命令时,它应该打开一个浏览器,系统将提示您登录您的Google Cloud帐户。这将授予您在本地运行脚本的权限。希望这有帮助!
答案 1 :(得分:3)
从本地计算机运行教程时,我也遇到相同的错误消息。我正在使用服务帐户(而不是“ gcloud auth应用程序默认登录名”),因为这是Google教程中推荐的首选方法。
但是,经过大量调查,我发现问题是由于Google文档中的错误而引起的(该文档似乎不是最新的)。
{'list_of_values': [{1: [{0: ['must be of string type'],
1: ['must be of integer type']}]}]}
文档中的错误与说明的第4步有关。在GCP控制台的当前实现中,无法直接从“服务帐户密钥”页面设置角色。相反,您必须转到“ IAM和管理员”页面来设置“所有者”角色:
Setting up authentication
To run the client library, you must first set up authentication by creating a service
account and setting an environment variable. Complete the following steps to set up
authentication. For more information, see the GCP authentication documentation .
GCP CONSOLECOMMAND LINE
In the GCP Console, go to the Create service account key page.
1. GO TO THE CREATE SERVICE ACCOUNT KEY PAGE
2. From the Service account drop-down list, select New service account.
3. In the Service account name field, enter a name .
**4. From the Role drop-down list, select Project > Owner.**
以下文章“为Google BigQuery设置Google Cloud Service帐户缺少指南”提供了更多信息。本文是在BigQuery的上下文中编写的,但同样适用于Google数据存储区:
答案 2 :(得分:0)
如果上述解决方案不起作用,请转到您的 firebase 控制台 点击设置图标,然后导航到
并将 GOOGLE_APPLICATION_CREDENTIALS 变量设置为 json 文件路径 这对我有用:)