【问题标题】:How do you enable "iam.serviceAccounts.actAs" permissions on a sevice account?如何在服务帐户上启用“iam.serviceAccounts.actAs”权限?
【发布时间】:2020-08-03 16:01:20
【问题描述】:

我正在尝试按照this guide 使用非默认服务帐户部署服务,它说我需要“正在部署的服务帐户的iam.serviceAccounts.actAs 权限”。我使用的服务帐户是 @cloudbuild.gserviceaccount.com,但我在项目的权限页面上没有看到添加它的选项。

【问题讨论】:

    标签: google-cloud-platform service-accounts google-iam google-cloud-iam


    【解决方案1】:

    关键是服务帐户是一种资源。您需要将您的身份的 IAM 角色添加到服务账户(资源)。这会授予您对资源(服务帐户)的权限。

    • 打开Google Cloud Console。转到 IAM 和管理员 -> 服务帐户。

    • 找到服务帐户。勾选服务帐户左侧的框。

    • 在右侧的“权限”面板中,点击添加成员

    • 添加您的 IAM 成员电子邮件地址。对于角色,选择服务帐户 -> 服务帐户用户。

    • 点击保存

    您也可以使用 CLI:

    gcloud iam service-accounts add-iam-policy-binding [SERVICE_ACCOUNT] --member [MEMBER_EMAIL] --role roles/iam.serviceAccountUser
    

    gcloud iam service-accounts add-iam-policy-binding

    【讨论】:

    • 对于 Cloud Run,我需要将权限添加到 [PROJECT_NUMBER]-compute@developer.gserviceaccount.com(根据 this guide),我在服务帐户页面上看不到,但我在 IAM 上看到了页。我已经向我的云构建服务帐户添加了Secret Manager Admin 角色,但是我部署的容器无法访问 Secret Manager
    • 该服务帐号是“Compute Engine 默认服务帐号”。它必须在“服务帐户”下。这是由 Google 为您创建的。回去再看一遍。如果您删除了它,请联系 Google 支持。 “IAM”下的条目用于项目(授予服务帐户对项目中资源的权限)而不是服务帐户资源。 cloud.google.com/compute/docs/access/…
    • 由于某种原因,答案中的 CLI 命令在我的 Ubuntu 中失败。这有效:gcloud iam service-accounts add-iam-policy-binding 89random-compute@developer.gserviceaccount.com --member='user:kmonsoor@example.com' --role='roles/iam.serviceAccountUser' 注意额外的“=user:”。
    • @kmonsoor - 您的评论是正确的。对于用户,请在电子邮件地址前面加上user:,对于服务帐户,在前面加上serviceAccount: 等。还有其他类型,例如组、域等。这在我的答案中的链接中有记录。
    猜你喜欢
    • 2022-08-17
    • 2021-10-05
    • 1970-01-01
    • 2019-07-04
    • 2019-05-23
    • 2010-10-06
    • 1970-01-01
    • 2012-07-04
    • 2019-09-07
    相关资源
    最近更新 更多