如何还原存储桶权限

问题描述 投票:0回答:1

我刚刚在默认项目“我的第一个项目”下创建了一个新存储桶。

我不小心删除了存储桶上的所有权限。是否可以恢复默认权限?

我不需要该存储桶,因此可以将其删除,但是我也没有这样做的权限。

更新

为了澄清,我拥有该项目和存储桶。没有其他用户有权访问。按照@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.buckets.create已启用
  • 我无法删除项目中的存储桶和对象,例如storage.buckets.delete已禁用
  • 我无法获得有关项目中存储区和对象的IAM策略,例如storage.buckets.getIamPolicy已禁用

与项目关联的“角色”在Storage Admin组中包含权限(请参阅GCP控制台的IAM&Admin部分中的Roles小节)。即应该启用了诸如storage.objects.delete之类的权限,但策略疑难解答显示该权限未被授予。

google-cloud-platform google-cloud-storage bucket
1个回答
1
投票

详细解释,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"
}

让我知道信息是否对您有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.