【问题标题】:service account roles to deploy google cloud function服务帐户角色部署谷歌云功能
【发布时间】:2017-11-19 03:03:27
【问题描述】:

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

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

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

【问题讨论】:

  • - 你能扩展 CI 的首字母缩写词吗? - 请使用 --log-http 运行命令以查看哪个调用失败。 - 请运行gcloud auth list 以检查 gcloud 验证的帐户。
  • @BasketWeaver CI = 持续集成(Jenkins/Bamboo/Bitbucket 管道等)。我正在使用 gcloud 服务帐户 (bitbucket-authorization@my-project.iam.gserviceaccount.com)。很清楚网络上发生了什么——我正在尝试执行“gcloud.beta.functions.deploy”,响应为 403,因为服务帐户没有正确的权限。按照 QuestionAndAnswer 的建议添加“所有者”和“编辑者”可能会解决问题,但我希望有一个更具体的角色。
  • 似乎没有任何具有更窄权限的角色可以部署功能。而且没有这样做的权限,所以看起来你甚至不能为此创建自己的角色:(
  • 根据cloudfunctions.googleapis.com/$discovery/rest?version=v1beta2,所需的范围是“googleapis.com/auth/cloud-platform”……但仍然没有映射到角色中的任何内容……

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


【解决方案1】:

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

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

【讨论】:

  • 我希望“嗨,我来自 google,我们刚刚添加了 'Cloud Functions' 角色”,但现在“编辑器”可以工作了......
  • @NicholasAlbion 似乎低于预期 :)
【解决方案2】:

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

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

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

重要

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

【讨论】:

  • 谢谢@takashi!这是来自 google 的另一个误导性错误消息
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

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

    Cloud Functions Developer
    Service Account User
    

    来自文档

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-22
      • 2019-07-21
      • 2019-05-15
      • 2020-06-30
      • 2020-04-20
      • 2019-01-30
      • 2017-08-15
      • 2021-02-26
      • 2018-09-14
      相关资源
      最近更新 更多