【发布时间】:2018-02-26 09:53:32
【问题描述】:
我希望我的服务帐户能够在我的存储桶中创建文件和文件夹,但不允许对该存储桶中的对象进行任何读取/列出/下载。我无法弄清楚为我的存储桶/服务帐户设置什么权限。对此有什么想法吗?
【问题讨论】:
标签: google-cloud-platform google-cloud-storage service-accounts bucket
我希望我的服务帐户能够在我的存储桶中创建文件和文件夹,但不允许对该存储桶中的对象进行任何读取/列出/下载。我无法弄清楚为我的存储桶/服务帐户设置什么权限。对此有什么想法吗?
【问题讨论】:
标签: google-cloud-platform google-cloud-storage service-accounts bucket
你可以看看通用Identity and Access Management (IAM) page for Google Cloud Storage。由此,您可以使用其中一个预定义的 Cloud Storage 角色,也可以创建具有您需要的特定 IAM 权限的自定义角色。让我们遵循这两种方法:
roles/storage.objectCreator 角色,因为它只授予storage.objects.create 权限,您无法查看或列出对象。storage.objects.create,但您可能有兴趣添加不同的权限,例如storage.objects.delete,以便服务帐户能够覆盖内容(这不能通过roles/storage.objectCreator 角色完成,因为它确实如此没有删除权限)。因此,一般而言,并应用您的特定用例,您可以说您可以使用roles/storage.objectCreator 标准角色。但是,您必须考虑到使用它,您将无法覆盖内容,为此,您还需要storage.objects.delete 权限。在这种情况下,您可以创建自定义角色。
【讨论】:
gsutil cp file gs://bucket/folder之类的操作,这会提示有关列表权限要求的错误。但是,您应该改用gsutil cp file gs://bucket/folder/。 Cloud Storage 没有目录的概念,而是有一个“平面”存储系统,可以区分文件和“文件夹”,因为我们知道它们的末尾有一个 /。因此,为了上传到“文件夹”,您只需将文件夹名称(和/)附加到目录。