web-dev-qa-db-fra.com

Compositeur cloud: "PERMISSION_DENIED: l'appelant n'a pas d'autorisation"

J'ai implémenté quelques tâches avec BashOperator. Ceux avec "gsutil rm" et "gsutil cp" ont bien fonctionné. Mais celui avec "gcloud alpha firestore export" génère cette erreur:

{bash_operator.py:101} INFO - ERROR: (gcloud.alpha.firestore.export) PERMISSION_DENIED: The caller does not have permission

Cette commande elle-même fonctionne très bien dans gcloud Shell. J'ai essayé de donner des autorisations liées à Firestore au compte de service utilisé par le Composer mais cela ne fonctionne toujours pas. Toute idée

5
kee

Essayez de créer un nouveau compte de service avec les autorisations liées à Firestore nécessaires et utilisez-le dans un environnement fraîchement créé. https://cloud.google.com/composer/docs/how-to/access-control

Autres idées de débogage: * Essayez ssh-ing dans les travailleurs Kubernetes sur votre environnement Composer et exécutez la commande. * L'API Firestore est-elle activée sur votre projet?

3
Crystal Qian

Il se peut que vous n'ayez pas d'autorisations pour un projet particulier.

L'erreur que j'obtenais était: PERMISSION_DENIED: Caller does not have required permission to use project project:random-id-11111.

J'ai résolu le problème en exécutant gcloud config set project 'the-right-project-id' puis la commande réelle gcloud.

5
Roy Shilkrot
  1. Ouvert https://console.cloud.google.com/iam-admin/iam
  2. Trouvez le compte de service que vous utilisez pour les sauvegardes
  3. Ajoutez le rôle de propriétaire au compte de service

Ce n'est pas vraiment intuitif ou logique car il n'y a pas d'autorisations ou de rôles pour Firestore.

Malheureusement, il m'a fallu beaucoup de temps pour le comprendre. J'espère que ça aide les autres!

3
Gambo

Je pense que vous avez besoin d'un accès Cloud Import Datastore Export. Voici les étapes selon la disposition actuelle de la plateforme Google Cloud actuelle.

https://console.cloud.google.com > Tiroir de gauche> IAM et administrateur> Contre l'utilisateur - Modifier l'icône> Ajouter un autre rôle> Magasin de données> Importation et exportation de magasin de données cloud> Enregistrer

1
Sanket Patel

Semblable à la réponse de Roy, le problème pour moi était que gcloud était réglé sur un projet différent.

vérifier dans quel projet il est configuré

gcloud config list

liste des projets auxquels vous avez accès

liste des projets gcloud

définir le bon projet

gcloud config set project 'foo-project'

0
Julian Orinyol

vous devez d'abord définir votre projet où vous êtes propriétaire gcloud config définir le projet project-id Vous pouvez trouver votre identifiant de projet en cliquant sur la console gcloud, il sera là dans une fenêtre contextuelle dans project-name-somerandomnumbers

0
Sakshi Chauhan