禁用对 AllUsers (GCP) 的 public-读取权限
Disable the public-read permission to AllUsers (GCP)
我正在为 AllUsers 设置上传文件的权限,
我用过:
gsutil acl ch -u AllUsers:R gs://[mywebsite.com]
gsutil defacl set public-read gs://[mywebsite.com]
但是我发现目录不对。
所以我想禁用对当前目录的权限。
首先,我通过
检查了我的设置的 IAM 策略
gsutil iam get gs://[mywebsite.com]
结果部分显示:
{
"members": [
"allUsers",
"projectViewer:[myprojectID]"
],
"role": "roles/storage.legacyBucketReader"
}
我猜这意味着所有用户的权限,所以我必须禁用它。
然后,通过以下方式从此目录中删除 AllUsers:
gsutil iam ch -d All gs://[mywebsite.com]
然而....它不能工作......它显示
CommandException: Incorrect public member type for binding AllUsers:R
有什么解决办法吗?
如果删除存储桶,权限也会被禁用吗?
(更新) "public-read" 是否意味着用户可以读取您设置的目录?或者只是将文件上传到存储的权限? (这才是我真正想知道的)
查看gsutil help iam ch
中提到的语法,它说要指定allUsers
,而不是AllUsers
。这在您指定前者时有效,但为后者抛出错误。
在 this GitHub commit, but it looks like it was never fixed for iam ch -d
. I've opened a GitHub issue for this 中为 acl ch -d
修复了删除 users/roles 的区分大小写问题。
我正在为 AllUsers 设置上传文件的权限, 我用过:
gsutil acl ch -u AllUsers:R gs://[mywebsite.com]
gsutil defacl set public-read gs://[mywebsite.com]
但是我发现目录不对。
所以我想禁用对当前目录的权限。
首先,我通过
检查了我的设置的 IAM 策略
gsutil iam get gs://[mywebsite.com]
结果部分显示:
{
"members": [
"allUsers",
"projectViewer:[myprojectID]"
],
"role": "roles/storage.legacyBucketReader"
}
我猜这意味着所有用户的权限,所以我必须禁用它。
然后,通过以下方式从此目录中删除 AllUsers:
gsutil iam ch -d All gs://[mywebsite.com]
然而....它不能工作......它显示
CommandException: Incorrect public member type for binding AllUsers:R
有什么解决办法吗?
如果删除存储桶,权限也会被禁用吗?
(更新) "public-read" 是否意味着用户可以读取您设置的目录?或者只是将文件上传到存储的权限? (这才是我真正想知道的)
查看gsutil help iam ch
中提到的语法,它说要指定allUsers
,而不是AllUsers
。这在您指定前者时有效,但为后者抛出错误。
在 this GitHub commit, but it looks like it was never fixed for iam ch -d
. I've opened a GitHub issue for this 中为 acl ch -d
修复了删除 users/roles 的区分大小写问题。