有什么方法可以使GCP服务帐户访问GCS存储桶中的特定文件夹?

时间:2020-07-27 06:50:44

标签: google-cloud-platform google-cloud-storage amazon-iam bucket read-access

我们有一个存储桶,其中包含多个客户机的数据,并用“文件夹”分隔(当然,它不是真正的文件夹,而是密钥。) 我们想通过rsync将数据从每个文件夹同步到客户端存储桶, 因为客户向我们提供了一个可以访问其存储桶的“服务帐户”,问题是,如何限制该服务帐户只能读取特定文件夹中的内容?

例如

my_bucket / client1 / data

my_bucket / client2 / data

client1-service-account应该能够列出并读取以下内容:my_bucket / client1 / *

2 个答案:

答案 0 :(得分:1)

您可以使用Google Storage ACL允许电子邮件(用户电子邮件或服务帐户电子邮件)访问存储桶中的一部分文件。

但是,该目录在Google Cloud Storage中不存在。真实名称是“前缀”或“路径”。的确,如果您不再具有带有特定“前缀”的文件,则该文件将消失,而无需明确删除。我的意思是,它不是资源,因此不能仅在BLOB上对目录设置ACL。

因此,如果您在目录中添加文件,则还必须在这些文件上设置正确的ACL(或在整个前缀上重置ACL)。新文件不会继承ACL。

答案 1 :(得分:0)

找到了一些解决方法:

我们将使用我们自己的服务帐户,而不是使用客户的服务帐户,并授予客户对其存储桶的写权限,因此客户将无法访问我们的存储桶。 它不能满足所有要求,但可以满足要求。