使Cloud Storage存储桶仅可由特定服务帐户访问

时间:2019-11-12 11:38:45

标签: google-cloud-platform google-cloud-storage

我有一个在GCP上创建的存储桶。我按照此处(https://cloud.google.com/storage/docs/creating-buckets)的说明创建了存储区。另外,我使用统一的存储桶级访问控制创建了它。

但是,我希望在某个服务帐户下运行的实例可以访问存储桶中的对象。虽然,我不知道该怎么做。在权限设置中,我看不到如何为读写访问指定服务帐户。

3 个答案:

答案 0 :(得分:2)

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

gcloud iam service-accounts create storage-sa --display-name "storage service account"

您可以向服务帐户授予角色,以便该服务帐户可以对GCP项目中的资源执行特定的操作。例如,您可以将storage.admin角色授予服务帐户,以便它可以控制Google Cloud Storage中的对象和存储桶。

gcloud projects add-iam-policy-binding <Your Project ID> --member <Service Account ID> --role <Role You want to Grant>

授予角色后,您可以在创建实例时选择此服务帐户。

或者,要通过Google Cloud Console执行此操作,请参见Creating and enabling service accounts for instances

答案 1 :(得分:2)

创建服务帐户后,即可使用gsutil命令更改/设置存储桶或对象上的访问控制列表(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>

请查看以下文章以获取更多的深度和描述:

您还可以通过Cloud Console Web界面和GCS API设置/更改ACL。

答案 2 :(得分:1)

  1. 您必须创建一个服务帐户Creating a new service account

  2. 设置新实例以作为服务帐户Set instance运行。

  3. 在Google Cloud Console中,转到“存储/存储桶/ right_corner点/编辑存储桶权限”

添加会员/服务帐户/

角色/存储管理员