【发布时间】:2021-06-10 06:10:21
【问题描述】:
我正在尝试将文件从 Google Cloud VM 上传到云存储桶中。
预计会失败,因为与 VM 关联的服务帐户没有权限:
$ gsutil cp file.png gs://bucket/
Copying file://file.png [Content-Type=image/png]...
AccessDeniedException: 403 Insufficient Permission
据我了解,有两种方法可以解决此问题:
- 从 VM Web 管理面板修改范围
- 更改存储桶的权限并添加具有写入权限的服务帐户(我更喜欢这样做,因为其他选项似乎可以访问同一项目中的所有存储桶)
但是,这两种解决方案似乎都需要停止 VM,这是有问题的,因为它是生产服务器。
有没有办法在不停止 VM 的情况下解决这个问题?
【问题讨论】:
-
将服务帐户添加到存储桶(作为资源)不需要关闭或重新启动 VM。更改 VM 范围确实需要关闭 VM。
-
@JohnHanley 很有趣,我试过了,添加了各种写权限,但仍然出现这个错误......我可能错过了一些东西,不确定。无论如何,我最终停止了 VM 并修改了范围,它现在工作正常。
-
Compute Engine 虚拟机范围限制授予服务帐号的权限。如果您已取消选择 Cloud Storage 的范围,则可以,您需要关闭 VM 以更改范围。请注意,范围不会向服务帐户授予权限,范围会限制已分配的权限。 VM 范围是在实施 IAM 和服务帐户之前存在的遗留机制。我的建议是启用 VM 的所有范围,然后限制分配给服务帐户的角色。
标签: google-cloud-platform virtual-machine gcloud