Google cloud storage 对象不继承bucket权限
在GCS存储中,向bucket(不是整个项目;该项目中只有一个bucket)添加权限时,您可以设置bucket的权限,以便放入bucket的任何新对象都继承bucket的权限。 然而,在最新版本的地面军事系统中,我们还没有弄清楚如何做到这一点。我们可以设置根bucket的权限:Google cloud storage 对象不继承bucket权限,google-cloud-storage,Google Cloud Storage,在GCS存储中,向bucket(不是整个项目;该项目中只有一个bucket)添加权限时,您可以设置bucket的权限,以便放入bucket的任何新对象都继承bucket的权限。 然而,在最新版本的地面军事系统中,我们还没有弄清楚如何做到这一点。我们可以设置根bucket的权限: { "email": "someuser@someaccount.iam.gserviceaccount.com", "entity": "someuser@someaccount.iam.gservic
{
"email": "someuser@someaccount.iam.gserviceaccount.com",
"entity": "someuser@someaccount.iam.gserviceaccount.com",
"role": "READER"
}
但是,当一个新对象放入该bucket时,它不会继承该角色。
是否有办法(a)继承角色,或(b)将IAM角色设置为bucket(我们只能将IAM角色设置为项目,而不是特定bucket)?
谢谢 有五种不同的方式来配置云存储桶。我建议您使用访问控制列表(ACL)来继承单个bucket中的角色,因为ACL是在“需要对单个对象进行细粒度控制”时使用的 要使用控制台更改项目中单个bucket的权限
gsutil acl ch -u [USER_EMAIL]:[PERMISSION] gs://[BUCKET_NAME]
查找预定义角色的列表
更新2
考虑到下一个错误:
命令例外:
user@account.iam.gserviceaccount.com:角色/storage.legacyBucketReader
不是有效的ACL更改允许权限为所有者、写入者、,
读取器
事实上,涉及到两种类型的角色:
该命令不起作用,因为这两个命令是混合的。对于
gsutil acl
,您可以看到,唯一可能的权限是READER、WRITER、OWNER、Default 可能相关-标准的Viewer
角色只能应用于项目,但是角色/存储。objectViewer
(不同的权限)可以应用于bucket。看见检查您的阅读器角色的权限(这似乎是一个自定义角色?)不,它不起作用。这是我得到的:Command:gsutil acl ch-uuser@bucket-account.iam.gserviceaccount.com:roles/storage.objectViewer gs://bucket/Result:CommandException:user@bucket-account.iam.gserviceaccount.com:角色/storage.objectViewer不是有效的ACL更改允许的权限为所有者、写入者、读取者。这似乎是一个间歇性的bug,因为昨天控制台中没有这个确切的函数(我们过去就是这样做的),而且gsutil acl ch也不会影响任何新创建的对象。很奇怪。控制台现在仍然说“您不能再在控制台中设置ACL来管理访问。要了解IAM和ACL之间的关系,请参阅文档”,但它现在可以工作了。我现在更困惑了,您是否能够正确地修复所有存储权限?如果没有,请告诉我您最近是否更改了除云存储阅读权限(云存储管理员、IAM等)之外的其他相关权限。我在IAM中使用了权限,当不允许访问时,错误消息将被清除。P.e.:AccessDeniedException:403[EMAIL]没有存储。BUCKET.get访问[BUCKET]。
这不起作用。我得到:CommandException:user@account.iam.gserviceaccount.com:roles/storage.legacyBucketReader不是有效的ACL更改允许的权限为所有者、写入者、读取器。bucket已经具有读权限(我尝试过,它说“没有更改”),当我在其中创建新对象时,它不会继承用户的读权限。AIM说我是项目的所有者。到目前为止,这已经足够我做任何需要做的事情了;它变了吗?对不起,我在更新1中错了。你说得对,项目的所有者就足够了。看看更新2(我删除了第一个更新,因为离开它可能会让人困惑)。