GCP:403来电者没有权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCP:403来电者没有权限相关的知识,希望对你有一定的参考价值。

编辑:我最终从工作表的共享设置中授予了对服务帐户的编辑权限。那让我插入表格。我不认为这是我的情况的最佳解决方案,但是是一个解决方案。

任何帮助,我将不胜感激。我不认为这是一个复杂的问题,只是我以前从未使用过GCP而且还在学习。

我正在尝试使用他们的.NET apis写入Google表格。我想在我正在开发的游戏中向用户提交反馈。我希望在用户不接受任何Google授权过程的情况下进行此过程。

我遇到了这个错误:

GoogleApiException: Google.Apis.Requests.RequestError
The caller does not have permission [403]
Errors [
    Message[The caller does not have permission] Location[ - ] Reason[forbidden] Domain[global]
]

这是我到目前为止所尝试的内容。

  1. 成功地按照Google的指南从表格中阅读。
  2. 使用日志写入权限创建服务帐户。
  3. 通过GoogleCredential下载并使用服务帐户的凭据。

我有一种感觉,我只选择了不正确的角色,虽然我不确定。我会继续研究。再次,任何帮助,我将不胜感激。

答案

对于人类用户而不是服务帐户,您可以更好地使用完整的OAuth(3-legged-auth)流程。

请参阅此处的示例。这使用人工用户帐户,并要求用户批准代码访问其Google表格数据的权限:https://developers.google.com/sheets/api/quickstart/dotnet

令人困惑的是,虽然IAM是用于例如IAM的现代授权机制。 Google Cloud Platform服务,其他Google服务不使用IAM,而是使用OAuth范围来定义客户端对API方法的访问权限。

所以,是的,IAM日志写入错误,因为您可能指的是客户端写入Stackdriver Logging所需的角色。

请参阅Google表格(OAuth)范围:https://developers.google.com/sheets/api/guides/authorizing

并注意示例代码:

static string[] Scopes =  SheetsService.Scope.SpreadsheetsReadonly ;

对应https://www.googleapis.com/auth/spreadsheets.readonly

所以,你需要使用:https://www.googleapis.com/auth/spreadsheets,这对应于:

static string[] Scopes =  SheetsService.Scope.Spreadsheets ;

Scope

HTH

以上是关于GCP:403来电者没有权限的主要内容,如果未能解决你的问题,请参考以下文章

将内容上传到 GCP 存储桶的 KMS 权限出现 403 错误

权限被拒绝 - GCP 云资源管理器 setIamPolicy

GCP 组织管理员缺少权限

403 禁止 没有权限

403 禁止 没有权限

GCP 等效于 aws 策略中的“拒绝”权限