You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建具备Google Cloud Storage存储桶权限的可共享虚拟机镜像?

可行解决方案及工作流设计

一、核心方案:通过虚拟机服务账号授予GCS访问权限

无法直接为镜像赋予权限,但可以给从镜像创建的虚拟机实例绑定团队专属服务账号,以此实现GCS桶的访问授权,这是GCP的标准实践:

  • 创建一个团队专用服务账号(例如gce-team-storage-access@your-project.iam.gserviceaccount.com),为其配置GCS桶所需权限(如roles/storage.objectViewer或更精细的读写权限,按需调整)。
  • 制作共享镜像时无需配置权限,而是在虚拟机实例模板中指定该服务账号。所有基于此模板创建的虚拟机,会自动继承服务账号的GCS访问权限。
  • 无论成员用终端SDK还是浏览器SSH登录,虚拟机内的工具(如gsutil、Python/R的GCS客户端库)都会默认使用服务账号身份访问桶,无需用户额外认证。

二、优化浏览器SSH登录体验

针对浏览器SSH登录的无权限问题,在镜像中做如下预设:

  • 预装google-cloud-sdk(仅在虚拟机内安装,不影响成员本地环境),并在/etc/profile.d/目录添加脚本(如gcs-access.sh),配置SDK默认使用服务账号凭证:
    export CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=/etc/google/auth/application_default_credentials.json
    
    该凭证文件由GCP自动为绑定服务账号的实例生成,用户登录后直接执行gsutil ls gs://your-team-bucket即可访问桶。
  • 可在镜像的系统用户配置文件(如.bashrc)中添加常用桶的别名,例如:
    alias team-bucket='gsutil ls gs://your-team-bucket'
    
    简化日常操作步骤。

三、统一虚拟机部署流程

为避免成员手动配置出错,建议标准化部署路径:

  • 基于预装环境的镜像创建实例模板,预设服务账号、机器类型、网络等配置。
  • 将模板加入管理实例组,团队成员可直接从实例组启动虚拟机,或在控制台创建实例时选择该模板,全程无需手动配置权限。

四、精细化权限管控(可选)

若需区分成员的访问权限,可采用工作负载身份联盟(适合需权限审计的场景):

  • 在镜像中配置gcloud auth login --no-launch-browser,用户登录虚拟机后,只需输入一次性验证码即可用组织账号完成认证,无需本地安装SDK。
  • 此方式可保留个人操作审计记录,便于追踪特定文件的访问者。

内容的提问来源于stack exchange,提问作者hfbbu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:20:59