gcloud auth list Credentialed accounts: - 1234567890-co-6ren">
gpt4 book ai didi

google-cloud-storage - gsutil 副本从 GCE 返回 "AccessDeniedException: 403 Insufficient Permission"

转载 作者:行者123 更新时间:2023-12-03 05:11:53 26 4
gpt4 key购买 nike

我通过 SSH 登录到 GCE 实例。从那里我想在服务帐户的帮助下访问存储:

GCE> gcloud auth list
Credentialed accounts:
- 1234567890-compute@developer.gserviceaccount.com (active)

我首先确保该服务帐户在我正在工作的项目的权限中被标记为“可以编辑”。我还确保为他提供了我希望他复制文件的存储桶上的写入 ACL:

local> gsutil acl ch -u 1234567890-compute@developer.gserviceaccount.com:W gs://mybucket

但是下面的命令失败了:

GCE> gsutil cp test.txt gs://mybucket/logs

(我还确保“logs”是在“mybucket”下创建的)。

我收到的错误消息是:

Copying file://test.txt [Content-Type=text/plain]...
AccessDeniedException: 403 Insufficient Permission 0 B

我错过了什么?

最佳答案

需要注意的另一件事是确保在创建 GCE VM 时设置适当的范围。即使虚拟机附加了服务帐户,也必须为其分配 devstorage 范围才能访问 GCS。

例如,如果您创建的虚拟机具有 devstorage.read_only 范围,则尝试写入存储桶将会失败,即使您的服务帐户有权写入该存储桶也是如此。您需要 devstorage.full_controldevstorage.read_write

请参阅 Preparing an instance to use service accounts 部分了解详情。

注意:默认计算服务帐户的范围非常有限(包括对 GCS 具有只读权限)。这样做是因为默认服务帐户具有项目编辑器 IAM 权限。如果您使用任何用户服务帐户,这通常不是问题,因为用户创建的服务帐户默认获得所有范围访问权限。

向虚拟机添加必要的范围后,gsutil 可能仍在使用没有新范围的缓存凭据。再次尝试 gsutil 命令之前删除 ~/.gsutil。 (感谢 @mndrix 在评论中指出这一点。)

关于google-cloud-storage - gsutil 副本从 GCE 返回 "AccessDeniedException: 403 Insufficient Permission",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27275063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com