【问题标题】:GCloud gcsfuse permission deniedGCloud gcsfuse 权限被拒绝
【发布时间】:2018-04-30 18:41:20
【问题描述】:

有人成功使用 gcsfuse 吗?

我已尝试删除存储桶的所有默认权限, 并设置一个服务帐户:

 gcloud auth activate-service-account to activate serviceaccname

然后运行:

gcsfuse --debug_gcs --foreground cloudbuckethere /backup

gcs: Req 0x0: -> ListObjects() (307.880239ms): googleapi: 错误 403: xxxxxx-compute@developer.gserviceaccount.com 没有 storage.objects.list 访问权限

它抱怨用户xxxxx-compute不是我激活的服务帐户,这很奇怪:

gcloud auth list

是否显示我当前的服务帐户处于活动状态...

我还向我的serviceaccname 授予了管理员所有者、管理员对象所有者、写入对象、读取对象到存储桶的权限。

如果我向我的存储桶授予所有权限(包括旧权限)xxxxx-compute,则列表似乎有效。但将任何文件写入目录失败:

googleapi: Error 403: Insufficient Permission, insufficientPermissions

谁有运气?

【问题讨论】:

  • 您是否有可能在您的 Google Cloud Platform 中设置的计算实例上运行该命令?
  • 是的,我在我的实例中运行,我找到了修复,我会在一段时间内发布它

标签: google-cloud-storage fuse gcsfuse


【解决方案1】:

我找到了一个解决方案,不确定这是否是一个好的解决方案,但它确实有效。

设置服务帐号并下载 JSON 文件。

使用上述服务帐户名称以存储桶管理员身份授予对存储桶的访问权限。

然后运行 ​​add into 环境变量,指向服务 JSON 文件的路径。

GOOGLE_APPLICATION_CREDENTIALS=/path-to-json/gcloud.json gcsfuse --debug_gcs --foreground bucketname /path-to-mount

另外请注意,默认情况下它可能会使用 tmp 目录中的大量空间。添加标志:

... --temp-dir=/someotherpath

如果您在 /tmp 中的空间有限,这真的很有帮助。

【讨论】:

    猜你喜欢
    • 2018-08-19
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2018-01-31
    • 2015-08-30
    相关资源
    最近更新 更多