部署谷歌云功能的服务帐户角色

问题描述 投票:0回答:5

我正在尝试使用服务帐户从 CI 中使用

gcloud beta functions deploy
,但出现错误:

(gcloud.beta.functions.deploy) ResponseError: status=[403], code=[Forbidden], message=[调用方没有权限]

我在 IAM Web 控制台中找不到任何看起来合适的角色。我用哪一个?

gcloud google-cloud-functions service-accounts
5个回答
5
投票

检查您当前的配置:

gcloud config list

查看结果并检查

project =
与目标项目的PROJECT_ID完全相同。

您可以列出您的项目:

gcloud config set project

重要

Project =
未设置名称。必须设置PROJECT_ID.


4
投票

这是我的服务帐户(不是默认的 Cloud Functions 服务帐户)使用 CI 成功部署 Cloud Functions 所需的最低角色。

Cloud Functions Developer
Service Account User

来自文档

为了给用户分配 Cloud Functions Developer 角色 (roles/cloudfunctions.developer) 或可以部署函数的自定义角色,您还必须为用户分配 Cloud 上的 IAM Service Account User 角色 (roles/iam.serviceAccountUser)函数运行时服务帐户。

参考:https://cloud.google.com/functions/docs/reference/iam/roles

我不明白的一件事是提到运行时服务帐户。您不必将服务帐户用户角色分配给运行时服务帐户,而应该分配给您用于部署的 SA。(不确定我是否正确理解文档)


3
投票

部署功能用户应该有角色

roles/cloudfunctions.developer

我通过改变 UI 中的角色发现了这一点。我找不到任何官方谷歌文档。这篇文章也提到了这个角色https://medium.com/google-cloud/triggering-cloud-functions-deployments-97691f9b5416


0
投票

你总是可以从这两个选项开始。至少他们必须工作。

并确保设置所有必需的环境变量以使默认应用程序凭据正常工作。


0
投票

它几乎解释了如何在此处添加正确的角色:部署谷歌云功能的服务帐户角色

长话短说:

  1. roles/cloudfunctions.developer
  2. roles/iam.serviceAccountUser
© www.soinside.com 2019 - 2024. All rights reserved.