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

时间:2017-06-16 10:54:40

标签: gcloud google-cloud-functions service-accounts

我尝试使用服务帐户从CI中使用CheckBox,但收到错误:

  

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

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

4 个答案:

答案 0 :(得分:1)

您始终可以从这两个选项开始。至少他们必须工作。

enter image description here

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

答案 1 :(得分:1)

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

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

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

重要

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

答案 2 :(得分:1)

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

我是通过更改UI中的角色来发现这一点的。我找不到任何官方的Google文档。本文https://medium.com/google-cloud/triggering-cloud-functions-deployments-97691f9b5416

中也提到了此角色

答案 3 :(得分:1)

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

Cloud Functions Developer
Service Account User

来自文档

  

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

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

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