以下に示す権限を持つGoogleサービスアカウントを作成した後、メッセージが表示されてデプロイメントが失敗します。これがどこに問題があるのか理解できない。
====
$ 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クラッシュが発生するため)。
Google Cloud Platform APIコンソールページから「Google App Engine Admin API」を有効にできます。 https://console.cloud.google.com/apis/api/appengine.googleapis.com/
サービスアカウントとgcloudコマンドを使用してデプロイしようとしている場合は、次の3つの役割をすべて設定する必要があります。
App Engine Deployer
Storage Admin
Cloud Build Editor
アクセス制御ドキュメント から:
App Engine Deployerロールだけで、Admin APIを使用してデプロイするための適切な権限が付与されます。 gcloudコマンドなどの他のApp Engineツールを使用するには、Storage AdminロールとCloud Build Editorロールも必要です。
次のコマンドを実行して、プロジェクトが正しいアカウントに関連付けられている天気を確認します。
gcloud config list
アカウントに関連付けられていない場合は、使用します
gcloud auth login
正しいプロジェクトアカウントで構成します。
ノードアプリを展開しようとしている場合、これではまだ不十分な場合があります。 APIが有効になっており、 GCPの指示 ですべてに従っていましたが、You do not have permission to access app
エラー。最後に、サービスアカウントにさらに2つのロールを追加して修正しました。
Nprの答えに追加します。デフォルトのアプリ/プロジェクトに対して自分自身を認証していない場合は、コマンドでこれを実行します(APIを有効にした後):
gcloud auth application-default login