我正在尝试做gsutil ls
,但结果是:
ubuntu@ip:~$ gsutil ls
AccessDeniedException: 403 xxxxxxxxxxxx@xxxxxxxxxx.iam.gserviceaccount.com does not have storage.buckets.list access to project xxxxxxxxxxxxxxx.
我可以仅使用 个读/查看者访问IAM角色来授予此权限吗?
答案 0 :(得分:1)
您当然可以。至少,您始终可以创建具有所需权限的custom role。通过单击roles tab顶部的“创建角色”按钮来执行此操作。然后,与其他任何角色一样,将其创建后,将该角色应用于IAM page上的服务帐户。
或者,您可以在云控制台中使用same roles tab来显式搜索该权限,以查看包含该权限的角色,并查看是否有任何适合您的权限。
在这种情况下,我看不到明显的默认值受到限制。也就是说,在这种情况下,您可以将Storage Legacy Bucket Reader(roles/storage.legacyBucketReader
)视为自定义角色的起点-如果在“角色”选项卡上选择此角色,则可以“从选择中创建角色”以它为起点)。
答案 1 :(得分:1)
命令gsutil ls
列出了项目中的存储桶。
要列出存储桶,您需要权限storage.buckets.list
。
要列出存储桶中的对象,您需要权限storage.objects.list
。
这些权限均不允许您读取对象。要读取对象,您需要权限storage.objects.get
。
仅读取对象,不需要列表权限。但是,由于您使用的是gsutil
命令,因此可以。
您可以将多个预定义角色附加到服务帐户,以授予gsutil
的必要权限。
推荐
roles/storage.objectViewer
或以下两个角色:
roles/storage.legacyObjectReader
roles/storage.legacyBucketReader
如果您只想分配一个角色来读取对象但不列出它们:
roles/storage.legacyObjectReader