AWS提供了一种通过其IAM policies来限制从特定用户/角色到特定命名资源的访问的方法。
例如以下权限:
{
"Sid": "ThirdStatement",
"Effect": "Allow",
"Action": [
"s3:List*",
"s3:Get*"
],
"Resource": [
"arn:aws:s3:::confidential-data",
"arn:aws:s3:::confidential-data/*"
]
}
将允许对List*
存储桶及其内容进行所有Get*
和confidential-data
操作。
但是,通过GCP的custom roles时,我找不到这样的选项。
现在,我知道对于GCS存储桶(这是我的用例),您可以创建ACLs来实现(或多或少?)相同的结果。
我的问题是,假设我创建了一个由someone@myaccount-googlecloud.com
标识的服务帐户,并且希望该帐户具有对gs://mybucket-on-google-cloud-storage
的读/写权限,应该如何我要格式化ACL来做到这一点吗?
(暂时,从组织/文件夹/项目继承的其他任何权限对我来说都没有关系)
答案 0 :(得分:1)
ACL的格式如下
{
"bindings":[
{
"role": "[IAM_ROLE]",
"members":[
"[MEMBER_NAME]"
]
}
]
}
请参阅Google Docs
例如
{
"kind": "storage#policy",
"resourceId": "projects/_/buckets/bucket_name",
"version": 1,
"bindings": [
{
"role": "roles/storage.legacyBucketWriter",
"members": [
"projectEditor:projectname",
"projectOwner:projectname"
]
},
{
"role": "roles/storage.legacyBucketReader",
"members": [
"projectViewer:projectname"
]
}
],
"etag": "CAE="
}
答案 1 :(得分:1)
授予服务帐户 foo@developer.gserviceaccount.com 写访问存储桶示例存储桶:
gsutil acl ch -u foo@developer.gserviceaccount.com:W gs://example-bucket
授予服务帐户 foo@developer.gserviceaccount.com 读取访问存储桶示例存储桶:
gsutil acl ch -u foo@developer.gserviceaccount.com:R gs://example-bucket