web-dev-qa-db-fra.com

Ne pas avoir la permission d'accéder à l'application lors du déploiement du compte de service Google

Après avoir créé un compte de service Google avec les autorisations indiquées ci-dessous, le déploiement échoue avec un message. Je ne comprends pas où cela ne va pas.

====

$ 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].
16
npr

Le faire fonctionner maintenant. 

$ gcloud app deploy --log-http --verbosity=debug

La raison pour laquelle il échouait semblait être liée à l'activation de l'API App Engine (le lien était affiché dans la sortie de la commande). Activez l'api - puis essayez à nouveau de déployer (cette fois sans --log-http car cela provoquerait un crash de gcloud). 

Vous pouvez activer "l'API d'administration de Google App Engine" via la page de la console de l'API Google Cloud Platform. https://console.cloud.google.com/apis/api/appengine.googleapis.com/

18
npr

Exécutez la commande suivante pour vérifier que le projet est associé au bon compte.

gcloud config list

S'il n'est pas associé au compte, utilisez 

gcloud auth login

pour le configurer avec le compte de projet correct.

3
Bhavesh

Pour ceux qui essaient de déployer à l'aide d'un compte de service et des commandes gcloud, vous devez définir les trois rôles suivants:

  • App Engine Deployer
  • Storage Admin
  • Cloud Build Editor

À partir de de la documentation de contrôle d'accès :

Le rôle App Engine Deployer à lui seul accorde une autorisation adéquate à déployer à l'aide de l'API d'administration. Pour utiliser d'autres outils App Engine, tels que commandes gcloud, vous devez également disposer du rôle Administrateur de stockage et de Cloud Construire le rôle d'éditeur.

1
m.spyratos

Si vous essayez de déployer une application de nœud, cela peut toujours être insuffisant. Mon API a été activée et j'ai tout suivi dans Les instructions de GCP , mais j'ai quand même eu l'erreur You do not have permission to access app. Enfin corrigé en ajoutant deux autres rôles au compte de service:

  • Projet> Navigateur
  • Cloud Build> Compte de service Cloud Build
1
carnun

Pour ajouter à la réponse de npr Exécutez ceci dans la commande si vous ne vous êtes pas authentifié pour votre application/projet par défaut (après avoir activé l'API):

gcloud auth application-default login
1
dardawk