当前位置: 首页 > 知识库问答 >
问题:

谷歌云存储API:无法生成访问令牌,拒绝访问

穆彬郁
2023-03-14

我是谷歌API新手,几天来我一直在尝试使用服务帐户将内容上传到谷歌云存储桶。我能够做到这一点,但只能使用从谷歌API游乐场获得的临时访问令牌,我需要能够获得新的访问令牌,以便服务帐户能够始终上载内容。

我一直在尝试以下方法,但我一直被拒绝访问,即使有问题的帐户具有“所有者”权限。

curl -X POST / -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ -d @Documents/request.json \ https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/content-uploader@kol-hatorah-kulah.iam.gserviceaccount.com:generateAccessToken

答复:

{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }

当我运行gCloud配置列表时,我得到了正确的项目,该帐户是我的工作电子邮件,也是谷歌云的所有者。

提前谢谢!

共有1个答案

柳德义
2023-03-14

您的curl命令正试图使用服务帐户标识生成访问令牌。命令失败,因为您没有权限。

将角色角色/iam.serviceAcCountTokenCreator添加到运行命令的标识中。

 类似资料:
  • 我使用Reactjs创建一个网站并将其托管在Firebase上,并使用google cloud函数上的和设置,以处理函数。网站有一个

  • 我尝试使用下面列出的示例对存储API进行JWT调用,并做了如下更改- 在这里叫它 但是获取错误as无法解析指定的URI。非法URI。 我不明白为什么它是一个非法的URI。我尝试了https://googleapis.com/storage/b/BUCKETNMAE,但还是一样的错误。在SO或谷歌文档上找不到任何关于这个的东西。任何想法我在这里做什么错了吗?

  • 我找到的签名Google云存储Blob的示例和源代码都需要服务帐户凭据文件(私钥是特定的)。例如: https://cloud.google.com/storage/docs/access-control/signing-urls-with-helpers#storage-签名url获取对象python 但是,由于我遵循此处讨论的授权流程,因此我只有OAuth2.0访问令牌(并且我没有能够访问GC

  • 我试图设计一个应用程序,从我的谷歌云存储帐户下载适当的声音文件。该应用程序不访问用户帐户,但我自己的帐户。 我的阅读让我相信,最合适的模式是服务账户https://code.google.com/p/google-api-java-client/wiki/OAuth2#Service_Accounts 不幸的是,开发人员决定不提供Android的例子。他们确实提供了一个很好的例子,只是简单的Jav