GCP 权限列出 GCS 对象但禁止下载

问题描述

我在 GCS 存储桶中保存了一些敏感数据。现在,需要生成 GCS 对象的 V4 签名 url,并且只允许某些用户下载拥有该 url 的对象。但是,其他用户应该只能看到该对象存在于 GCS 上,但不应被允许下载该对象。

为此,我们创建了一个具有 Storage Admin 角色的服务帐户(是的,我们可以进一步限制它)并使用它来生成 url。但是,问题是,任何具有 storage object viewer 角色的用户都可以下载我们不想要的对象。有什么办法可以限制除服务帐号以外的所有其他用户下载对象?

此外,我尝试创建一个被授予 storage.buckets.liststorage.objects.getstorage.objects.list 权限的自定义角色,然后将该角色分配给所需的用户,但在这两种情况下,用户都是能够下载文件。除了这两个权限之外,我找不到任何其他可以限制下载的权限。

解决方法

应用于您的项目的 IAM 政策定义了用户可以对您项目中的所有对象或存储桶执行的操作。应用于单个存储桶的 IAM 策略定义了用户可以对该特定存储桶和其中的对象执行的操作。

1.为您的存储桶创建 IAM 策略,让一个用户可以管理该存储桶。同时,您可以将另一个用户添加到您的项目范围的 IAM 策略中,让该用户能够查看您项目的任何存储分区中的对象。

2. 转到您的存储分区并定义成员和分配的角色,这使成员能够更广泛地在 Cloud Storage 和 Google Cloud 中执行操作。

这是 GCP 文档中的链接:https://cloud.google.com/storage/docs/collaboration