如何在服务帐户上启用“iam.serviceAccounts.actAs”权限?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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: 等。还有其他类型,例如组、域等。这在我的答案中的链接中有记录。

以上是关于如何在服务帐户上启用“iam.serviceAccounts.actAs”权限?的主要内容,如果未能解决你的问题,请参考以下文章

400 未找到项目的计费帐户。必须启用计费才能激活服务

如何授予帐户列出已启用 API 的权限?

Server 2012 事件日志转发

如何在 LDAP ODSEE 中查看帐户是不是启用/禁用、锁定/解锁

Win10怎么启用来宾帐户

handsontable如何如何启用验证器