【问题标题】:Which permissions does a service account need to deploy to App Engine?服务帐号需要哪些权限才能部署到 App Engine?
【发布时间】:2018-10-25 14:41:42
【问题描述】:

我有一个项目 A,它是一个 App Engine 标准 nodejs8 应用程序。我有一个项目 B,它有一个带有 Jenkins 的 VM GCE 机器——这是我们的构建器,应该在提交发生时部署所有其他项目。

我可以使用 appcfg.py update .B 部署到 A 但如果我尝试使用 gcloud deploy app 进行部署,我会收到此错误:

Permissions error fetching application [apps/my-project]. Please make sure you are using the correct project ID and that you have permission to view applications on the project.

我已将与 Jenkins 机器关联的服务帐户添加到项目 A 中,并为其授予所有者权限。我还在这两个项目上启用了 App Engine API。

我缺少哪个权限?

【问题讨论】:

  • 那是哪个appcfg.py(可以有几个)?这些是确切的命令还是您还有其他参数?两个命令是否在应用程序源中执行,使用相同的用户 ID/凭据(jenkins 用户?)并以相同的方式(即手动或脚本,交互与否)?
  • 我建议先运行“$gcloud init [service account]”(其中 [service account] 是您在项目 A 中添加的服务帐户),然后尝试部署应用程序。尝试将应用部署到项目 A 时,您可能没有启动正确的帐户。
  • @DanCornilescu appcfg.py update . 没有其他参数。它是google_appengine 文件夹中的appcfg.py。这两个命令都是从 Jenkins 执行的(我也从 cmd 尝试过,它们的行为相同)
  • @Jason 我执行了gcloud init account 例程,我将服务帐户视为活动帐户(左侧有一个星号)

标签: google-app-engine google-compute-engine


【解决方案1】:

好的,问题解决了。除了向项目 A 中的服务帐户授予所有相关权限外,还需要启用对 VM 本身(在项目 B 中)上所有 API 的访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 2020-03-11
    • 2011-02-06
    • 1970-01-01
    • 2023-01-19
    • 2019-11-13
    • 1970-01-01
    相关资源
    最近更新 更多