我刚刚在默认项目“我的第一个项目”下创建了一个新存储桶。
我不小心删除了存储桶上的所有权限。是否可以恢复默认权限?
我不需要该存储桶,因此可以将其删除,但是我也没有这样做的权限。
更新
为了澄清,我拥有该项目和存储桶。没有其他用户有权访问。按照@gso_gabriel的建议,我尝试了以下操作:
我可以列出存储桶中的对象:
> gsutil ls -r gs://my-bucket-name/
gs://my-bucket-name/name-of-my-file
我无法更改ACL:
> gsutil defacl set public-read gs://my-bucket-name/
Setting default object ACL on gs://my-bucket-name/...
AccessDeniedException: 403 my-email-address does not have storage.buckets.update access to the Google Cloud Storage bucket.
> gsutil acl set -R public-read gs://my-bucket-name/
Setting ACL on gs://my-bucket-name/name-of-my-file...
AccessDeniedException: 403 my-email-address does not have storage.objects.update access to the Google Cloud Storage object.
我认为没有ACL(请参阅最后一行):
> gsutil ls -L gs://my-bucket-name/
gs://my-bucket-name/name-of-my-file
Creation time: Wed, 10 Jun 2020 01:31:20 GMT
Update time: Wed, 10 Jun 2020 01:31:20 GMT
Storage class: STANDARD
Content-Length: 514758
Content-Type: application/octet-stream
Hash (crc32c): AD4ziA==
Hash (md5): W3aLFrdB/eF85IZux9UVfQ==
ETag: CIPc1uiM9ukCEAE=
Generation: 1591752680386051
Metageneration: 1
ACL: []
更新2
@ gso_gabriel建议的gcloud命令的输出为:
> gcloud projects get-iam-policy my_project_ID
bindings:
- members:
- user:my-email-address
role: roles/owner
etag: BwWnsC5jgkw=
version: 1
我还尝试了GCP控制台的IAM&Admin部分中的“策略疑难解答”。它显示以下内容:
与项目关联的“角色”在Storage Admin组中包含权限(请参阅GCP控制台的IAM&Admin部分中的Roles小节)。即应该启用了诸如storage.objects.delete之类的权限,但策略疑难解答显示该权限未被授予。
详细解释,here,如果您是存储分区的所有者-或至少有权访问拥有该存储分区的帐户-您应该能够修改存储分区的ACL并重新添加权限。
一旦您以所有者身份登录,您只需要运行命令gsutil acl set -R public-read gs://bucketName
为用户提供对存储桶的公共读取。您也可以检查确切的默认权限here。如果您不确定哪个帐户是Owner
,请运行以下命令-如here所示-它将返回所有具有权限的帐户,包括其中将提及Owner
的帐户。
gsutil ls -L gs://your-bucket/your-object
返回应该是这样的。
{
"email": "[email protected]",
"entity": "[email protected]",
"role": "OWNER"
}
让我知道信息是否对您有帮助!