创建许可谷歌服务帐户,如下所示之后 - 部署失败的消息。我不理解这是怎么回事错误。
====
$ gcloud iam service-accounts get-iam-policy [email protected]
bindings:
- members:
- serviceAccount:[email protected]
role: roles/owner
etag: Bxxxxxxxxg=
====
$ gcloud auth activate-service-account --key-file ../a.json
Activated service account credentials for: [[email protected]]
$ gcloud app deploy
ERROR: (gcloud.app.deploy) You do not have permission to access app [appid].
已完成了现在的工作。
$ gcloud app deploy --log-http --verbosity=debug
它为什么失败的原因,似乎与启用App Engine的API(链接在命令输出所示)。启用API - 然后再次尝试部署(这次没有--log-HTTP,因为这是导致gcloud崩溃)。
您可以启用“谷歌App Engine管理API”,通过谷歌云平台API控制台页面。 https://console.cloud.google.com/apis/api/appengine.googleapis.com/
运行以下命令来检查该项目是否与正确的帐户关联。
gcloud config list
如果没有与帐户相关联,然后使用
gcloud auth login
用正确的项目帐户配置。
对于那些谁尝试使用服务帐户和gcloud命令部署,您将需要设置以下所有三个角色:
App Engine Deployer
Storage Admin
Cloud Build Editor
App Engine的部署者角色单独授予足够的权限来部署使用管理API。要使用其他App Engine的工具,像gcloud命令外,还必须具备存储管理员的角色和云构建编辑器的作用。
要添加到NPR的答案。在命令中运行这个,如果你还没有验证自己作为默认的应用程序/项目(启用API后):
gcloud auth application-default login
如果您正在尝试部署节点的应用程序,这仍然可能是不够的。我的API启用了,我跟着上GCP's instructions的一切,但我还是得到了You do not have permission to access app
错误。最后固定它通过向服务帐户两个角色: