web-dev-qa-db-fra.com

--recurse ERREUR: autorisation insuffisante: la demande avait des étendues d'authentification insuffisantes

J'essaie de copier un répertoire de mon VM sur le bureau de ma machine locale avec la commande suivante:

gcloud compute scp --recurse instance-1:~/directory ~/Desktop/

J'ai essayé de me réauthentifier avec "gcloud auth login" mais il dit toujours

ERROR: (gcloud.compute.scp) Could not fetch resource:
 - Insufficient Permission: Request had insufficient authentication scopes.
8
Wesley Cenatus

Essayez d'exécuter une "connexion d'authentification gcloud" à partir de la machine sur laquelle vous essayez d'exécuter la commande gcloud.

Pour plus d'informations jetez un œil à cet ancien article , ils signalent le même problème.

16
Eduardo Ruela

Tu auras besoin de roles/compute.instanceAdmin.v1 pour utiliser SSH ou SCP sur une instance des informations d'identification que vous utilisez. La méthode la plus simple consiste à ajouter Compute Instance Admin à vos informations d'identification.

Pour voir les informations d'identification que vous utilisez, exécutez gcloud auth list. Le compte aura un astérisque dans la colonne de gauche.

Pour savoir quelles autorisations vous avez exécuter gcloud projects get-iam-policy PROJECT_ID

3
John Hanley

Fournir un code complet pour une meilleure compréhension

private static void upload() throws GeneralSecurityException, IOException {
    final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
    Drive driveService = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT))
            .setApplicationName(APPLICATION_NAME)
            .build();
    File fileMetadata = new File();

    fileMetadata.setName("My Report");
    fileMetadata.setMimeType("application/vnd.google-apps.spreadsheet");

    Java.io.File filePath = new Java.io.File("/exportData.csv");
    FileContent mediaContent = new FileContent("text/csv", filePath);
    File file = driveService.files().create(fileMetadata, mediaContent)
            .setFields("id")
            .execute();
    System.out.println("File ID: " + file.getId());
}
0
harshal bhavsar