Google cloud platform 使云存储桶只能由某个服务帐户访问

Google cloud platform 使云存储桶只能由某个服务帐户访问,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,我在GCP上创建了一个存储桶。我按照这里描述的说明创建了bucket。此外,我使用统一的桶级访问控制创建了它 但是,我希望bucket中的对象能够被在特定服务帐户下运行的实例访问。尽管如此,我不知道如何做到这一点。在权限设置中,我看不到如何为读写访问指定服务帐户 您必须创建一个服务帐户 设置新实例以作为服务帐户运行 在谷歌云控制台中,进入存储/存储桶/右下角点/编辑存储桶权限 添加会员/服务帐户/ 角色/Storage Admin要创建服务帐户,请在Cloud Shell中运行以下命令: gcl

我在GCP上创建了一个存储桶。我按照这里描述的说明创建了bucket。此外,我使用统一的桶级访问控制创建了它

但是,我希望bucket中的对象能够被在特定服务帐户下运行的实例访问。尽管如此,我不知道如何做到这一点。在权限设置中,我看不到如何为读写访问指定服务帐户

您必须创建一个服务帐户

设置新实例以作为服务帐户运行

在谷歌云控制台中,进入存储/存储桶/右下角点/编辑存储桶权限

添加会员/服务帐户/


角色/Storage Admin要创建服务帐户,请在Cloud Shell中运行以下命令:

gcloud iam service-accounts create storage-sa --display-name "storage service account"
您可以将角色授予服务帐户,以便该服务帐户可以对GCP项目中的资源执行特定操作。例如,您可以将storage.admin角色授予服务帐户,以便它可以控制Google云存储中的对象和存储桶

gcloud projects add-iam-policy-binding <Your Project ID> --member <Service Account ID> --role <Role You want to Grant>
授予角色后,您可以在创建实例时选择此服务帐户


或者,要通过Google云控制台执行此操作,请参见

创建服务帐户后,您可以使用gsutil命令更改/设置bucket或对象的访问控制列表ACL权限

具体而言:

gsutil acl set [-f] [-r] [-a] file-or-canned_acl_name url...
gsutil acl get url
gsutil acl ch [-f] [-r] <grant>... url...

where each <grant> is one of the following forms:

  -u <id|email>:<perm>
  -g <id|email|domain|All|AllAuth>:<perm>
  -p <viewers|editors|owners>-<project number>:<perm>
  -d <id|email|domain|All|AllAuth|<viewers|editors|owners>-<project number>>:<perm>
请阅读以下文章以了解更多的深度和说明:


您还可以通过云控制台web界面和GCS API设置/更改ACL。

您是说谷歌云存储GCS bucket,对吗?S3是AWS的特定名称。@K先生:是的,对不起,这是新名称。您可以在下面看到我的答案: