Google VM权限不足,无法在已安装的存储桶上写入

时间:2018-07-02 12:33:01

标签: google-cloud-storage google-compute-engine gcsfuse

我正在运行一个Google Compute实例,该实例必须能够连接以读写本地安装的存储桶。

此刻,当我进入计算机时,我有权读取目录中的所有文件,但不能写入。

更多细节:

gcloud init
account: PROJECT_NUMBER-compute@developer.gserviceaccount.com

在Google平台上查看IAM时,该IAM具有专有角色,因此它应该能够访问项目中的所有资源。

gcsfuse -o allow_other --file-mode 777 --dir-mode 777 --o nonempty BUCKET LOCAL_DIR

现在查看权限,所有文件都具有(按预期)

ls -lh LOCAL_DIR/
drwxrwxrwx 1 ubuntu ubuntu 0 Jul  2 11:51 folder

但是,当运行一个非常简单的python代码将泡菜保存到这些目录之一中时,出现以下错误

OSError: [Errno 5] Input/output error: FILENAME

如果我使用--foreground标志运行gcsuse,则产生的错误是

fuse: 2018/07/02 12:31:05.353525 *fuseops.GetXattrOp error: function not implemented
fuse: 2018/07/02 12:31:05.362076 *fuseops.SetInodeAttributesOp error: SetMtime: \
UpdateObject: googleapi: Error 403: Insufficient Permission, insufficientPermissions

这很奇怪,因为VM上的帐户具有专有角色。

有人猜想如何克服这个问题吗?

1 个答案:

答案 0 :(得分:1)

您的实例需要适当的范围才能访问GCS存储桶。您可以通过控制台查看范围,也可以使用gcloud计算实例描述[instance_name] | grep范围-A 10

您必须具有读/写存储或https://www.googleapis.com/auth/devstorage.read_write