我创建了一个服务帐户。它唯一的工作是将数据上传到GCS存储桶中的特定路径,例如gs://bucket/current/
。在此路径中,该服务帐户应能够创建诸如2019/
之类的文件夹并将数据上传到gs://bucket/current/2019/file.csv
。该帐户将无法查看此存储桶中除gs://.../current/...
之后的其他路径如果将数据上传到此路径,则无法删除或编辑文件。
我认为我无法使用IAM授予这样的权限。因此,我研究了acl
和defacl
,但找不到使这项工作有效的方法。如何使用acl
授予此任务的服务帐户?
编辑:感谢您帮助我提高此问题的可读性。我已经读过google document,其中有很多有关acl的示例,但找不到与我的问题匹配的示例。
Edit2:我已经尝试过此gsutil acl ch -r -u serviceaccount:W gs://bucket/current/
我得到了这个结果:
Skipping serviceaccount:W on gs://bucket/current/, as WRITER does not apply to objects
No changes to gs://bucket/current/
这很有意义,因为现在该路径中没有任何对象。我想做的就是只希望该服务帐户仅查看此GCS路径,并能够将文件上传到存储桶中
我的解决方案:我没有使用ACL,而是使用了IAM权限,并将存储桶中的storage.objectCreator角色授予了该服务帐户