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

Nic*_*ion 3 service-accounts gcloud google-cloud-functions

我正在尝试使用gcloud beta functions deploy服务帐户从 CI 使用,但出现错误:

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

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

小智 5

检查您当前的配置: gcloud config list

查看结果和检查project =与您的目标项目的PROJECT_ID完全相同。

您可以列出您的项目: gcloud config set project

重要的

Project =未设置 NAME。必须设置PROJECT_ID


vig*_*y28 5

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

Cloud Functions Developer
Service Account User
Run Code Online (Sandbox Code Playgroud)

来自文档

为了向用户分配 Cloud Functions 开发人员角色 (roles/cloudfunctions.developer) 或可以部署函数的自定义角色,您还必须在 Cloud Functions 上为用户分配 IAM 服务账户用户角色 (roles/iam.serviceAccountUser)运行时服务帐户。

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

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


Pal*_*ani 3

要部署功能,用户应该具有角色roles/cloudfunctions.developer

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