我想授予服务帐户对项目中每个存储桶的只读访问权限。最佳做法是什么?
答案here提出以下建议之一:
bucket.get
访问这些对我来说都不理想,因为:
是否有某种方法可以避免bucket.get
的要求并仍然访问存储桶中的对象?还是有另一种我不知道的提供访问的方法?
答案 0 :(得分:0)
最接近的预建角色是对象查看器。这允许列出和读取对象。它不包含storage.buckets.get权限,但这不是通常需要的-混淆存储桶元数据实际上是一项管理功能。它还不包含更常用的storage.buckets.list,但它仍然不是GCS正常使用模式的一部分-通常,在设计应用程序时,您有固定数量的存储桶用于特定用途,因此不会列出有用。
如果您确实确实想提供服务帐户存储区列表并获得许可,则必须在项目上创建自定义角色。这很简单,您可以使用以下方法做到这一点:
gcloud iam roles create StorageViewerLister --project=$YOUR_POJECT --permissions=storage.objects.get,storage.objects.list,storage.buckets.get,storage.buckets.list
gcloud projects add-iam-policy-binding $YOUR_PROJECT --member=$YOUR_SERVICE_ACCOUNT --role=StorageViewerLister