Google cloud platform 在不停止虚拟机的情况下修改gcloud虚拟机服务帐户权限
我正试图将一个文件从谷歌云虚拟机上传到云存储桶中 预期会失败,因为与VM关联的服务帐户没有权限:Google cloud platform 在不停止虚拟机的情况下修改gcloud虚拟机服务帐户权限,google-cloud-platform,virtual-machine,gcloud,Google Cloud Platform,Virtual Machine,Gcloud,我正试图将一个文件从谷歌云虚拟机上传到云存储桶中 预期会失败,因为与VM关联的服务帐户没有权限: $ gsutil cp file.png gs://bucket/ Copying file://file.png [Content-Type=image/png]... AccessDeniedException: 403 Insufficient Permission 据我所知,有两种方法可以解决这个问题: 从VM web管理面板修改作用域 更改bucket的权限并添加具有写访问权限的服务帐
$ gsutil cp file.png gs://bucket/
Copying file://file.png [Content-Type=image/png]...
AccessDeniedException: 403 Insufficient Permission
据我所知,有两种方法可以解决这个问题:
- 从VM web管理面板修改作用域
- 更改bucket的权限并添加具有写访问权限的服务帐户(我更喜欢这样做,因为另一个选项似乎允许访问同一项目中的所有bucket)
有没有办法在不停止VM的情况下修复此问题?有两种方法可以控制授予计算引擎VM的权限
- 将VM访问范围设置为“允许完全访问所有云API”
- 创建具有所需角色的新服务帐户,并将该服务帐户分配给计算引擎VM实例
- 访问范围
- 分配给实例的服务帐户 这两种方法一起工作。计算引擎实例的可用总权限由服务帐户控制。访问范围然后限制分配给虚拟机的权限 必须关闭VM才能更改访问范围。更改服务帐户角色不需要重新启动VM 有关云存储访问的此问题: 如果服务帐户具有授予云存储访问权限的云存储角色,但存储的访问范围设置为“无”,则即使服务帐户具有所需的角色,VM也将无法访问云存储。在这种情况下,您必须关闭VM以更改访问范围以启用对云存储的访问 如果VM访问范围已启用存储,但服务帐户没有云存储角色,则VM将无法访问云存储。在这种情况下,向服务帐户添加云存储角色将授予对云存储的访问权限,而无需重新启动VM 访问范围(OAuth范围)是Google Cloud IAM之前存在的一种遗留机制。鉴于您正在生产环境中使用此VM,并且不希望关闭该实例,我建议您执行以下操作:
- 将VM访问范围设置为“允许完全访问所有云API”
- 创建具有所需角色的新服务帐户,并将该服务帐户分配给计算引擎VM实例
有两种方法可以控制授予计算引擎VM的权限