如何让用户成为Google Cloud Platform(GCP)中服务帐户的角色?

时间:2017-04-26 16:45:12

标签: google-cloud-platform

我有一个服务帐户,我希望能够“充当”(在AWS中称为“假设”)。我的服务帐户名为“bucket-viewer-service-account”,如下所示:

$ gcloud projects get-iam-policy myproject
bindings:
- members:
  - serviceAccount:123456789012-compute@developer.gserviceaccount.com
  role: roles/editor
- members:
  - user:me@myemail.com
  role: roles/owner
- members:
  - serviceAccount:bucket-viewer-service-account@myproject.iam.gserviceaccount.com
  role: roles/storage.objectViewer
etag: BwVOE_CkjAo=
version: 1

我想授予其他用户“充当”此服务帐户的权限,我已应用以下内容,但未达到很远:

$ gcloud iam service-accounts add-iam-policy-binding \
    bucket-viewer-service-account@myproject.iam.gserviceaccount.com \
    --member='user:test.gcp1@myemail.com' --role='roles/iam.serviceAccountActor'
bindings:
- members:
  - user:user:test.gcp1@myemail.com
  role: roles/iam.serviceAccountActor
etag: BwVOFAhEVqY=

我是否必须这样做,以便用户test.gcp1@myemail.com(一旦他们登录)可以访问服务帐户可用的资源?或者用户是否还需要“假设”服务帐户?

我已经查看了许多文档页面Understanding Service Accounts作为初学者,但大多数人似乎在考虑使用服务帐户的应用程序,其中文档明确提到用户,组等可以使用服务帐户。

3 个答案:

答案 0 :(得分:2)

iam.serviceAccountActor role使用户能够创建和管理使用服务帐户的计算引擎实例。

我可能会误解某些内容,但是如果您想授权某人直接充当服务帐户,则最直接的方式可能是create a private key文件中的服务帐户代表该特定用户充当该服务帐户,然后为他们提供该私钥文件。

答案 1 :(得分:1)

为用户提供服务帐户角色不会像您建议的那样传递访问权限。相反,它允许用户“使用”服务帐户以启动具有该服务帐户作为身份的长期运行的作业(例如,创建计算引擎实例)。

答案 2 :(得分:0)

iam.serviceAccountActor 角色已弃用,您需要使用 Service Account User 角色

More details