禁用对 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 的区分大小写问题。