【问题标题】:GCSFuse Provided scope(s) are not authroized errorGCSFuse 提供范围未授权错误
【发布时间】:2021-12-09 19:30:16
【问题描述】:

我正在使用具有公共访问权限的 Google Cloud Storage 的 gcsfuse。

当我尝试使用命令 (gcsfuse -o allow_other --implicit-dirs bucket-name /mnt/my_directory) 挂载存储时,我可以看到以下消息。

2021/10/22 09:08:46.859250 Using mount point: /mnt/my_directory
2021/10/22 09:08:46.876966 Opening GCS connection...
2021/10/22 09:08:47.408667 Mounting file system "bucket-name"...
2021/10/22 09:08:47.410248 File system has been successfully mounted.

但在那之后,当我尝试将我的文件存储在挂载目录中时,出现如下错误。

 [ERROR] Error executing an HTTP request: HTTP response code 403 with body '{
  "error": {
    "code": 403,
    "message": "Provided scope(s) are not authorized",
    "errors": [
      {
        "message": "Provided scope(s) are not authorized",
        "domain": "global",
        "reason": "forbidden"
      }
    ]
  }
}
'
     when initiating an upload to gs://my_bucket/static/dir/1211/53714/

我该如何解决这个问题? 3天前还好好的,突然就不行了,好尴尬。

【问题讨论】:

  • 从错误消息中,它看起来与您正在使用的客户端的the auth scopes 相关,而不是对您上传到的存储桶的授权访问。您如何为 GCSfuse 创建凭据?确保包含https://www.googleapis.com/auth/cloud-platform 范围。
  • 如果您在 Compute Engine 上运行此功能,则默认范围会禁用 Cloud Storage 写入。编辑您的实例并启用写入。这需要停止 VM 实例才能进行此更改。
  • @JohnHanley 我解决了问题。我检查了 k8s 节点池的范围。他们没有云存储写入权限。当我修复它时,我解决了问题。谢谢。

标签: google-cloud-platform google-cloud-storage cloud mount gcsfuse


【解决方案1】:

此错误可能是由allow_other 命令引起的。用于覆盖FUSE的access permissions

作为一种安全措施,fuse 本身将文件系统的访问权限限制为安装文件系统的用户(参见 fuse.txt)。出于这个原因,gcsfuse 默认显示调用用户拥有的所有文件。因此,您应该以将要使用文件系统的用户而不是 root 用户身份调用 gcsfuse。

如果您知道自己在做什么,则可以使用 fuse 支持的 allow_other 挂载选项以及 gcsfuse 支持的 --uid 和 --gid 标志来覆盖这些行为。小心,这可能会带来安全隐患!

如果您阅读description of the command,您会发现:

allow_other

此选项覆盖限制文件访问的安全措施 给安装文件系统的用户。此选项仅默认为 允许到根目录,但可以使用 (用户空间)配置选项。

我认为您收到超出范围的消息是因为您没有指定 --uid(用户 ID)和 --gid(组 ID)标志以及 allow_other 命令,或者因为您没有设置使用此命令创建一个尚未正确覆盖 root 权限的用户空间如果您不需要使用 root 访问权限,我只需删除这部分命令并重试。

我在question related 中发现错误403 的另一个可能原因是存储桶或其中的对象没有正确的访问控制系统。您提到您正在使用public access Google Cloud Storage,但请注意您的存储桶也可能没有正确的访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2012-07-20
    • 2016-09-21
    • 2019-04-27
    • 2020-09-15
    • 2017-02-22
    • 2020-04-25
    相关资源
    最近更新 更多