web-dev-qa-db-ja.com

Googleサービスアカウントの展開中にアプリにアクセスする権限がありません

以下に示す権限を持つ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].
21
npr

これで動作するようになりました。

$ 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/

20
npr

サービスアカウントとgcloudコマンドを使用してデプロイしようとしている場合は、次の3つの役割をすべて設定する必要があります。

  • App Engine Deployer
  • Storage Admin
  • Cloud Build Editor

アクセス制御ドキュメント から:

App Engine Deployerロールだけで、Admin APIを使用してデプロイするための適切な権限が付与されます。 gcloudコマンドなどの他のApp Engineツールを使用するには、Storage AdminロールとCloud Build Editorロールも必要です。

6
m.spyratos

次のコマンドを実行して、プロジェクトが正しいアカウントに関連付けられている天気を確認します。

gcloud config list

アカウントに関連付けられていない場合は、使用します

gcloud auth login

正しいプロジェクトアカウントで構成します。

6
Bhavesh

ノードアプリを展開しようとしている場合、これではまだ不十分な場合があります。 APIが有効になっており、 GCPの指示 ですべてに従っていましたが、You do not have permission to access appエラー。最後に、サービスアカウントにさらに2つのロールを追加して修正しました。

  • プロジェクト>ブラウザ
  • クラウドビルド>クラウドビルドサービスアカウント
1
carnun

Nprの答えに追加します。デフォルトのアプリ/プロジェクトに対して自分自身を認証していない場合は、コマンドでこれを実行します(APIを有効にした後):

gcloud auth application-default login
1
dardawk