0

我正在尝试使用服务帐户从 GCE 实例设置对 Cloud Storage 存储桶的读/写访问权限,但没有获得权限。我做了以下事情:

  • 创建服务帐户,比如说“my-sa”
  • 创建了一个存储桶,比如说“我的存储桶”
  • 在我的项目的 IAM 控制台中,将角色“云存储管理员”分配给服务帐户
  • 通过控制台创建了一个新的 GCE 实例,分配给服务帐户“my-sa”。然后访问范围自动设置为云平台
  • 使用 gcloud compute ssh 作为我的用户(项目所有者)连接到实例
  • 运行 gsutil ls gs://my-bucket

预期行为:获取存储桶中的项目列表

观察到的行为

gsutil 需要大约 5 秒的时间思考,然后给出: AccessDeniedException: 403 my-sa@my-project.iam.gserviceaccount.com 没有 storage.objects.list 对存储桶 my-bucket 的访问权限。

我尝试过的事情:

  • 实例上的 gcloud auth list 确实显示了服务帐户,并将其显示为处于活动状态
  • 我已向服务帐户添加了更多权限(最多为项目所有者),没有任何区别
  • 我也不能使用实例的其他权限。当我将 Compute Engine Admin 角色授予服务帐户时,我无法从实例运行 gcloud 计算实例列表
  • 我已删除 .gsutil 目录以确保清除缓存
  • 使用默认的 Compute Engine 服务帐户,我可以列出存储桶,但不能写入(如预期的那样)。当我从控制台添加 Cloud Storage 读/写访问范围时,我也可以写

我真的不知道如何调试这个了,所以任何帮助都会非常感激

4

0 回答 0