GCP,仅列出用户具有权限的存储桶

时间:2019-05-08 17:58:40

标签: google-cloud-platform google-cloud-storage google-cloud-iam

我正在尝试找出一种方法,允许GCP用户列出存储桶,但仅列出该用户具有权限的存储桶(通过ACL)。原因是因为它可能会淹没存储桶的数量,并且用户体验不是最好的。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

  

我正在尝试找出一种方法,以允许GCP用户列出存储桶   但仅限那些具有用户权限(通过ACL)的用户。

您无法使用存储桶ACL或IAM权限来实现目标。

要列出Google Cloud Storage存储桶,您需要IAM权限storage.buckets.list

此权限授予IAM成员帐户权限,以列出项目中的所有存储桶。您不能进一步限制此权限以仅列出特定的存储桶名称。此权限不允许列出存储桶中的对象。

对于将来的设计决策,您可以使用不同的项目并在项目下组织存储桶。这将只能访问该项目的IAM成员。

创建存储分区时,您要永久定义其名称,位置以及它所属的项目。这些特征以后不能更改。

答案 1 :(得分:0)

如果使用的是CLI,则可以编写一个脚本来获取每个列出的存储桶的权限,并且仅当用户帐户在权限列表中时才显示该脚本:

for bucket in $(gsutil ls); do 
    if  gsutil acl get $bucket|grep -q $(gcloud config get-value account) ; then
        echo $bucket; 
    fi; 
done

请注意,此脚本不会显示继承的权限(例如,在项目级别)。

这不能通过控制台来完成,但是如果您需要仅列出某些存储桶的Web界面,则可以通过调用API并执行与CLI脚本相同的操作来自己构建它。