【发布时间】:2020-04-25 04:47:05
【问题描述】:
我正在尝试为 Google Cloud Storage 存储桶中的单个对象设置权限,以使它们公开可见,遵循 the steps indicated in Google's documentation。当我尝试使用我们的应用程序服务帐户发出这些请求时,它失败并显示 HTTP 状态 403 和以下消息:
访问被拒绝。提供范围未经授权。
其他请求工作正常。当我尝试做同样的事情但通过为我的个人帐户提供令牌时,对对象的 ACL 的 PUT 请求工作......大约 50% 的时间(其余时间是 503 错误,可能相关也可能不相关)。
更改服务帐户的 IAM 策略以匹配我的 - 它通常具有存储管理员和一些其他附带角色 - 没有帮助,即使我赋予它整体 Owner IAM 角色,这是我所拥有的。
既不使用XML API 也不使用JSON 版本会有所不同。该请求有时适用于我的个人凭据,这向我表明该请求的格式不正确,但必须有其他我迄今为止忽略的东西。有什么想法吗?
【问题讨论】:
-
您是否在该存储桶上使用统一的存储桶级访问策略?
-
您是否在同一环境中为用户和服务帐户凭据运行它?否则,它可能是范围不足的 GCE 实例
-
您检查过this reference 的 GCS 作用域吗?
-
@OliverAragon 不,我们不能只创建一个公共存储桶,因为并非存储桶中的所有文件都是公开的。
-
@GuillemXercavins 是的,我想是的。
标签: rest google-cloud-platform google-cloud-storage google-cloud-iam