如何使用 gsutil 从 GCE 上的容器中复制存储桶中的文件
Posted
技术标签:
【中文标题】如何使用 gsutil 从 GCE 上的容器中复制存储桶中的文件【英文标题】:How to copy files from a bucket using gsutil from within a container on GCE 【发布时间】:2019-07-22 16:43:13 【问题描述】:我有一个在 GCE kubernetes 引擎中运行的容器,它试图将一些数据从存储桶复制到已安装的永久磁盘:
gsutil -m rsync -r -d "gs://$DB_BUCKET/db" /db
当容器运行时,它会失败并显示以下消息:
AccessDeniedException: 403 xxx-service@my-project.iam.gserviceaccount.com does not have storage.objects.list access to my-bucket-db-data
如果我查看服务帐户,它似乎确实有权查看存储桶。如果这有什么不同,我会在部署过程中创建一个填充此存储桶。
我需要授予哪些权限/如何才能同步存储桶中的数据?
【问题讨论】:
【参考方案1】:您需要给xxx-service@my-project.iam.gserviceaccount.com
添加引用权限:
按照以下步骤操作:
1) 访问 Permissions 选项卡进入 $DB_BUCKET
2) 在搜索输入字段中搜索您的服务帐号
3) 在 Role(s) 列中找到“Storage Object Viewer”角色
【讨论】:
以上是关于如何使用 gsutil 从 GCE 上的容器中复制存储桶中的文件的主要内容,如果未能解决你的问题,请参考以下文章
从存储到计算实例运行容器的`gsutil cp`不会复制文件
如何在使用 gsutil 保留 ACL 的同时将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2
如何使用 gsutil 将所有文件和子文件夹从当前目录复制/移动到 Google Cloud Storage 存储桶
如何让 gsutil 在 docker 容器中使用 gcloud 凭据
使用 Workload Identity 在 Kubernetes 上的 Cloud ML Engine 中的容器中对独立 gsutil 进行身份验证