S'authentifier pour gcloud CLI

Ce document ne concerne que l'authentification pour Google Cloud CLI afin d'accéder aux ressourcesGoogle Cloud . Si vous devez authentifier des charges de travail à l'aide des bibliothèques clientes Cloud ou des bibliothèques clientes des API Google, consultez Fonctionnement des identifiants par défaut de l'application.

Avant de commencer

Si vous débutez avec Google Cloud et que vous souhaitez simplement commencer à utiliser les commandes gcloud CLI dans votre environnement de développement local, vous pouvez initialiser gcloud CLI avec la commande suivante :

gcloud init

L'initialisation vous guide à travers un flux d'authentification, configure une configuration gcloud CLI et autorise la gcloud CLI à agir en votre nom. Il n'est pas nécessaire d'effectuer une étape d'authentification distincte.

Le reste de ce document aborde des scénarios plus complexes, tels que l'utilisation de la gcloud CLI avec différents types de principaux, les méthodes d'authentification appropriées pour différents environnements, le changement de principaux et la gestion des identifiants stockés.

Méthodes d'authentification

Toutes les commandes gcloud CLI doivent s'authentifier auprès des API Google Cloud. Vous pouvez vous authentifier de différentes manières :

  • Autoriser et stocker les identifiants : convient aux utilisateurs dans un environnement de développement local. Vous pouvez autoriser la gcloud CLI à agir au nom d'un compte principal à l'aide de la commande gcloud auth login. Après l'authentification initiale, cette commande stocke les identifiants dans le répertoire de configuration de la gcloud CLI. gcloud CLI utilise ces identifiants stockés pour s'authentifier automatiquement pour les commandes suivantes jusqu'à l'expiration de votre session ou la révocation de l'autorisation.

  • S'authentifier avec un fichier d'identifiants : convient aux charges de travail exécutées en dehors de Google Cloud. Vous pouvez utiliser des variables d'environnement ou des propriétés de configuration gcloud CLI pour spécifier un fichier d'identifiants pour l'authentification automatique. Ce fichier peut être l'un des suivants :

    • Fichier de configuration des identifiants pour la fédération d'identité de charge de travail.

    • Une clé de compte de service.

  • Fournir un jeton d'accès : convient aux workflows automatisés très isolés ou aux sessions sans état sur des machines partagées. Vous pouvez contourner le stockage des identifiants en fournissant un jeton d'accès directement à la gcloud CLI. Pour ce faire, vous pouvez définir une variable d'environnement spécifique sur la chaîne du jeton d'accès brut ou indiquer à gcloud CLI un fichier contenant le jeton d'accès.

Après l'authentification, vous pouvez éventuellement autoriser la gcloud CLI à emprunter l'identité d'un compte de service en fournissant l'adresse e-mail du compte de service.

Vous pouvez utiliser plusieurs méthodes d'authentification dans un même environnement. Toutefois, un seul compte principal est utilisé pour chaque commande gcloud. Pour déterminer quel compte principal utiliser, gcloud CLI suit un ordre de priorité.

Quand l'authentification n'est pas nécessaire

Vous n'avez pas besoin de vous authentifier pour la gcloud CLI dans les situations suivantes :

  • Immédiatement après avoir initialisé la gcloud CLI. L'authentification et l'autorisation sont incluses dans le processus d'initialisation. Vous devrez peut-être vous authentifier à nouveau si vous devez accéder à différentes ressources à l'aide d'un autre compte principal ou si vous devez réauthentifier votre compte principal.
  • Lorsque vous utilisez gcloud CLI à partir d'une ressource qui expose un serveur de métadonnées Compute Engine. Cela inclut des ressources telles que les instances de VM Compute Engine, les services Cloud Run et les compilations Cloud Build. gcloud CLI s'authentifie à l'aide du compte de service associé à la VM et est autorisé à accéder aux mêmes ressources que ce compte de service, dans les limites des qui ont été appliqués.
  • Lorsque vous utilisez Cloud Shell. La gcloud CLI s'authentifie automatiquement à l'aide du compte principal avec lequel vous vous êtes connecté à la console Google Cloud . Lorsque vous exécutez une commande gcloud CLI pour la première fois dans une nouvelle session Cloud Shell, vous êtes invité à autoriser Cloud Shell à l'aide de ce compte principal.

Choisir le bon compte principal pour la tâche

Il existe différents types de comptes principaux pour l'utilisation humaine et les charges de travail automatisées. Le type de compte principal que vous devez utiliser a une incidence sur la façon dont vous vous authentifiez.

  • Comptes utilisateur : il s'agit de comptes Google destinés aux utilisateurs humains pour effectuer des tâches interactives, telles que des tâches administratives ponctuelles, la configuration non programmatique des services Google Cloud , les tests, les expérimentations et l'observabilité.

    Vous vous authentifiez en tant que compte utilisateur avec des identifiants utilisateur, tels qu'un mot de passe et un code à usage unique.

  • Comptes de service : il s'agit de comptes spécifiques à Google Cloud que les charges de travail peuvent utiliser pour accéder à des services ou des ressources. En général, vous ne vous authentifiez pas directement en tant que compte de service. À la place, vous associez un compte de service à une ressource telle qu'une VM Compute Engine ou vous utilisez l'emprunt d'identité d'un compte de service.

  • Principaux fédérés : il s'agit d'identités qui font référence à des comptes utilisateur ou de service dans un fournisseur d'identité externe. Google Cloudaccepte deux types de comptes principaux fédérés, qui ont des noms similaires :

Utiliser gcloud CLI en tant qu'humain

Pour les tâches interactives, vous vous authentifiez généralement avec l'une des méthodes suivantes :

  • Un compte utilisateur

  • Identité utilisateur fédérée, à l'aide de la fédération des identités des employés

Comptes utilisateur

La façon dont vous vous authentifiez avec un compte utilisateur pour gcloud CLI dépend de la présence ou non d'un navigateur Web sur votre appareil.

Mon appareil dispose d'un navigateur Web

Pour vous authentifier avec un compte utilisateur sur un appareil doté d'un navigateur Web, procédez comme suit :

  1. Exécutez la commande suivante pour démarrer le processus :

    gcloud auth login
    
  2. Suivez le flux basé sur le navigateur pour authentifier et autoriser la gcloud CLI à accéder aux ressources en votre nom pour les commandes futures.

La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Mon appareil ne dispose pas de navigateur Web

Si l'appareil sur lequel vous devez utiliser la gcloud CLI ne dispose pas de navigateur Web, vous pouvez vous authentifier avec votre compte utilisateur sur un autre appareil de confiance. Cette procédure varie en fonction du logiciel installé sur l'autre appareil de confiance.

S'authentifier à l'aide d'un autre appareil de confiance

Sélectionnez le logiciel disponible sur l'autre appareil vérifié.

gcloud CLI et un navigateur Web

Utilisez l'option --no-browser pour terminer le processus d'authentification sur un autre appareil sur lequel un navigateur Web et gcloud CLI sont installés :

  1. Exécutez la commande suivante sur l'appareil d'origine sur lequel vous souhaitez utiliser la gcloud CLI :

    Linux et macOS

    gcloud auth login \
        --no-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-browser
    
  2. Copiez la commande gcloud qui commence par gcloud auth login --remote-bootstrap=" pour l'utiliser sur l'autre appareil.

  3. Accédez à un autre appareil de confiance sur lequel un navigateur Web et gcloud CLI version 372.0.0 ou ultérieure sont installés.

  4. Dans le terminal, exécutez la commande que vous avez copiée précédemment et qui commence par gcloud auth login --remote-bootstrap=", puis suivez la procédure dans le navigateur.

  5. Dans le terminal, copiez l'URL qui commence par https://localhost pour l'utiliser sur l'appareil d'origine.

  6. Revenez à l'appareil d'origine.

  7. Dans le terminal, à l'invite, collez l'URL https://localhost que vous avez copiée précédemment. Appuyez sur la touche Entrée ou Retour de votre clavier pour terminer la procédure.

La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Navigateur Web uniquement

Utilisez l'indicateur --no-launch-browser pour terminer le processus d'authentification à l'aide du navigateur Web d'un autre appareil :

  1. Exécutez la commande suivante sur l'appareil d'origine sur lequel vous souhaitez utiliser la gcloud CLI :

    Linux et macOS

    gcloud auth login \
        --no-launch-browser
    

    Windows (PowerShell)

    gcloud auth login `
        --no-launch-browser
    
  2. Copiez l'URL qui commence par https://accounts.google.com/o/oauth2/auth pour l'utiliser sur l'autre appareil.

  3. Accédez à un autre appareil de confiance sur lequel un navigateur Web est installé.

  4. Ouvrez un navigateur Web, accédez à l'URL que vous avez copiée précédemment et suivez la procédure dans le navigateur.

  5. Copiez le code de validation à utiliser sur l'appareil d'origine.

  6. Revenez à l'appareil d'origine.

  7. Dans le terminal, à l'invite, collez le code de validation que vous avez copié précédemment. Appuyez sur Entrée ou Retour sur votre clavier pour terminer le processus.

La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Identités des utilisateurs fédérées

Vous pouvez utiliser la gcloud CLI avec une identité utilisateur fédérée gérée dans un fournisseur d'identité (IdP) externe. Pour ce faire, utilisez la fédération des identités des employés.

Les instructions suivantes supposent que vous disposez déjà d'un pool et d'un fournisseur de fédération des identités des employés configurés pour fonctionner avec votre IdP.

Pour utiliser la gcloud CLI avec une identité utilisateur fédérée, vous devez créer un fichier de configuration de connexion, puis vous connecter à l'aide d'un flux basé sur un navigateur :

  1. Exécutez la commande suivante pour créer un fichier de configuration de connexion :

    Linux et macOS

    gcloud iam workforce-pools create-login-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --output-file=LOGIN_CONFIG_PATH

    Windows (PowerShell)

    gcloud iam workforce-pools create-login-config `
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID `
        --output-file=LOGIN_CONFIG_PATH

    Remplacez les éléments suivants :

    • WORKFORCE_POOL_ID : ID du pool de fédération des identités des employés.
    • WORKFORCE_PROVIDER_ID : ID du fournisseur de fédération des identités des employés
    • LOGIN_CONFIG_PATH : chemin d'accès au fichier de configuration de connexion. Exemple :login-config.json

    Le fichier de configuration de connexion contient les points de terminaison utilisés par gcloud CLI pour activer le flux d'authentification via le navigateur et définir l'audience sur le fournisseur d'identité configuré dans le fournisseur de pools d'identités des employés. Votre fichier ne contient aucune information confidentielle.

    Le contenu du fichier de configuration de connexion ressemble à ce qui suit :

    {
      "universe_domain": "googleapis.com",
      "universe_cloud_web_domain": "cloud.google",
      "type": "external_account_authorized_user_login_config",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "auth_url": "https://auth.cloud.google/authorize",
      "token_url": "https://sts.googleapis.com/v1/oauthtoken",
      "token_info_url": "https://sts.googleapis.com/v1/introspect"
    }

  2. Pointez vers le fichier de configuration de connexion avec une variable d'environnement, une propriété dans la configuration active de gcloud CLI, ou utilisez-le directement avec la commande gcloud auth login :

    Variable d'environnement

    Pour utiliser le fichier de configuration de connexion avec une variable d'environnement, suivez les instructions ci-dessous :

    1. Définissez la variable d'environnement CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sur le chemin d'accès du fichier de configuration de connexion.
    2. Exécutez la commande suivante :

      gcloud auth login
    3. gcloud CLI fait référence à la variable d'environnement pour trouver le fichier de configuration de connexion, puis lance le processus d'authentification. Suivez le flux basé sur le navigateur pour authentifier et autoriser la gcloud CLI à accéder aux ressources en votre nom pour les commandes futures.

    Pour arrêter d'utiliser le fichier de configuration de connexion pour les commandes gcloud auth login, effacez la variable d'environnement CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.

    Configuration de gcloud CLI

    Pour utiliser le fichier de configuration de connexion avec une propriété de configuration gcloud CLI, suivez les instructions ci-dessous :

    1. Définissez la propriété auth/login_config_file de la configuration gcloud CLI active sur le chemin d'accès au fichier de configuration de connexion à l'aide de la commande suivante :

      gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
    2. Exécutez la commande suivante :

      gcloud auth login
    3. gcloud CLI référence la propriété de configuration pour trouver le fichier de configuration de connexion, puis démarre le processus d'authentification. Suivez le flux basé sur le navigateur pour authentifier et autoriser la gcloud CLI à accéder aux ressources en votre nom pour les commandes futures.

    Pour arrêter d'utiliser le fichier de configuration de connexion pour les commandes gcloud auth login, annulez la définition de la propriété à l'aide de la commande suivante :

    gcloud config unset auth/login_config_file

    gcloud auth login

    Pour utiliser le fichier de configuration de connexion directement avec la commande gcloud auth login, suivez les instructions ci-dessous :

    • Si vous avez utilisé l'option --activate lors de la création du fichier de configuration de connexion, exécutez la commande suivante :

      gcloud auth login
    • Si vous n'avez pas utilisé l'option --activate lors de la création du fichier de configuration de connexion, exécutez la commande suivante :

      Linux et macOS

      gcloud auth login \
          --login-config=LOGIN_CONFIG_PATH

      Windows (PowerShell)

      gcloud auth login `
          --login-config=LOGIN_CONFIG_PATH

      Remplacez LOGIN_CONFIG_PATH par le chemin d'accès à votre fichier de configuration de connexion.

    La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Utiliser gcloud CLI avec des charges de travail

Pour les charges de travail automatisées, vous vous authentifiez généralement avec l'un des éléments suivants :

  • Identité de charge de travail fédérée utilisant la fédération d'identité de charge de travail

  • Un compte de service utilisant l'emprunt d'identité

Identités de charge de travail fédérées

Vous pouvez utiliser la gcloud CLI avec une identité de charge de travail fédérée. Pour ce faire, vous devez utiliser la fédération d'identité de charge de travail.

Une charge de travail peut accéder directement aux ressources Google Cloud en agissant en tant que compte principal défini par un pool d'identités de charge de travail, ou emprunter l'identité d'un compte de service associé à un pool d'identités de charge de travail.

Nous vous recommandons d'utiliser la méthode d'accès direct pour éviter les comptes de service disposant de trop d'autorisations et pour consigner l'accès aux ressources à l'aide de l'identifiant du principal fédéré. N'utilisez l'emprunt d'identité d'un compte de service que lorsque les APIGoogle Cloud ne sont pas compatibles avec la fédération d'identité de charge de travail.

Les instructions suivantes supposent que vous disposez déjà d'un pool et d'un fournisseur de fédération d'identité de charge de travail configurés pour fonctionner avec votre IdP.

  1. Créez un fichier de configuration des identifiants pour la fédération d'identité de charge de travail en suivant les instructions pour votre fournisseur d'identité compatible.

  2. Définissez le chemin d'accès au fichier de configuration des identifiants dans une variable d'environnement, en tant que propriété dans la configuration gcloud CLI active ou avec la commande gcloud auth login :

    Variable d'environnement

    Définissez la variable d'environnement CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE sur le chemin d'accès du fichier de configuration des identifiants. gcloud CLI fait référence au fichier chaque fois qu'il exécute une commande et obtient un identifiant auprès de votre IdP. Cet identifiant est échangé contre un jeton d'accès à Google Cloud.

    Pour arrêter d'utiliser le fichier de configuration des identifiants, effacez la variable d'environnement CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.

    Configuration de gcloud CLI

    Définissez la propriété auth/credential_file_override de la configuration gcloud CLI active sur le chemin d'accès au fichier de configuration des identifiants à l'aide de la commande suivante :

    gcloud config set auth/credential_file_override CONFIGURATION_PATH
    

    Remplacez CONFIGURATION_PATH par le chemin d'accès au fichier de configuration des identifiants.

    Pour arrêter d'utiliser le fichier de configuration des identifiants par défaut pour les commandes gcloud, supprimez la propriété à l'aide de la commande suivante :

    gcloud config unset auth/credential_file_override
    

    gcloud auth login

    Exécutez la commande suivante à l'aide de l'option --cred-file :

    Linux et macOS

    gcloud auth login \
        --cred-file=CONFIGURATION_PATH
    

    Windows (PowerShell)

    gcloud auth login `
        --cred-file=CONFIGURATION_PATH
    

    Remplacez CONFIGURATION_PATH par le chemin d'accès à un fichier de configuration des identifiants.

    La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Comptes de service

Vous pouvez utiliser la gcloud CLI avec un compte de service de différentes manières :

  • Sur une ressource qui expose un serveur de métadonnées Compute Engine, comme une instance de VM Compute Engine ou un service Cloud Run. Par défaut, la gcloud CLI utilise le compte de service associé à la ressource pour l'authentification.

  • En utilisant un autre compte principal pour emprunter l'identité d'un compte de service.

  • En utilisant une clé de compte de service.

Emprunter l'identité d'un compte de service

Pour l'accès aux ressources qui n'est pas normalement disponible pour votre compte principal, nous vous recommandons de gérer l'élévation des privilèges avec Privileged Access Manager au lieu d'utiliser l'emprunt d'identité du compte de service.

Si Privileged Access Manager ne correspond pas à votre cas d'utilisation, procédez comme suit pour utiliser la gcloud CLI avec un compte de service :

  1. Pour emprunter l'identité d'un compte de service, assurez-vous que l'API Service Account Credentials est activée dans votre projet.

    Rôles requis pour activer les API

    Pour activer les API, vous avez besoin du rôle IAM Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin), qui contient l'autorisation serviceusage.services.enable. Découvrez comment attribuer des rôles.

    Activer l'API

  2. Choisissez un compte principal à utiliser pour emprunter l'identité d'un compte de service.

  3. Pour vous assurer que le compte principal dispose des autorisations nécessaires pour emprunter l'identité d'un compte de service, demandez à votre administrateur d'accorder au compte principal le rôle IAM Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator) sur le compte de service. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

    Ce rôle prédéfini contient l'autorisation iam.serviceAccounts.getAccessToken, qui est requise pour emprunter l'identité d'un compte de service.

    Votre administrateur peut également attribuer au compte principal cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

  4. Authentifiez-vous pour la gcloud CLI avec le compte principal que vous avez choisi précédemment, qu'il s'agisse d'un compte utilisateur , d'une identité utilisateur fédérée , d'une identité de charge de travail fédérée ou d'un autre compte de service.

  5. Choisissez un compte de service à emprunter. Recherchez un compte de service existant ou créez-en un.

  6. Copiez l'adresse e-mail du compte de service.

  7. Choisissez d'emprunter l'identité du compte de service pour toutes les commandes ou pour une seule commande :

    Toutes les commandes

    Pour utiliser l'emprunt d'identité d'un compte de service avec la gcloud CLI pour les commandes futures, vous pouvez définir une variable d'environnement ou une propriété dans la configuration gcloud CLI active :

    • Variable d'environnement : définissez la variable d'environnement CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT sur l'adresse e-mail du compte de service.

      Pour arrêter d'utiliser le compte de service, effacez la variable d'environnement CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.

    • Configuration de la gcloud CLI : définissez la propriété auth/impersonate_service_account de la configuration active de la gcloud CLI à l'aide de la commande suivante :

      gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_EMAIL
      

      Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail du compte de service.

      Pour arrêter d'utiliser l'emprunt d'identité d'un compte de service par défaut pour les commandes gcloud, supprimez la propriété à l'aide de la commande suivante :

      gcloud config unset auth/impersonate_service_account
      

    Commande unique

    Pour utiliser l'emprunt d'identité d'un compte de service avec la gcloud CLI pour une seule commande, vous pouvez ajouter l'option --impersonate-service-account à une commande de service gcloud CLI.

    Par exemple, pour lister les instances de VM Compute Engine à l'aide de l'emprunt d'identité d'un compte de service, exécutez la commande suivante :

    Linux et macOS

    gcloud compute instances list \
        --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
    

    Windows (PowerShell)

    gcloud compute instances list `
        --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
    

    Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail du compte de service.

Clé de compte de service

Nous vous recommandons d'utiliser la fédération d'identité de charge de travail pour la plupart des charges de travail qui s'exécutent en dehors de Google Cloud. N'utilisez des clés de compte de service que si votre charge de travail s'exécute dans un environnement externe isolé qui ne prend pas en charge la fédération d'identité de charge de travail.

La fédération d'identité de charge de travail offre les avantages suivants :

  • L'accès aux ressources est accordé via Identity and Access Management (IAM), les charges de travail étant traitées comme des comptes principaux individuels. Cela signifie que vous n'avez pas besoin d'accorder trop d'autorisations à un compte de service pour plusieurs cas d'utilisation.

  • Vous pouvez auditer la charge de travail qui effectue une tâche donnée. Les actions ne sont pas masquées derrière une adresse e-mail de compte de service.

  • La fédération d'identité de charge de travail utilise des jetons d'accès éphémères pour réduire le risque d'exfiltration. Les clés de compte de service n'expirent pas, sauf si elles sont révoquées manuellement.

Pour utiliser un compte de service avec la gcloud CLI pour les commandes futures, procédez comme suit :

  1. Créez une clé de compte de service et stockez-la dans un fichier à un emplacement sécurisé de votre environnement.

  2. Définissez le chemin d'accès au fichier de clé de compte de service dans une variable d'environnement, en tant que propriété dans la configuration active de gcloud CLI ou avec la commande gcloud auth login :

    • Variable d'environnement : définissez la variable d'environnement CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE sur le chemin d'accès au fichier de clé du compte de service.

      Pour arrêter d'utiliser la clé de compte de service, effacez la variable d'environnement CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.

    • Configuration de la gcloud CLI : définissez la propriété auth/credential_file_override de la configuration active de la gcloud CLI sur le chemin d'accès à la clé du compte de service à l'aide de la commande suivante :

      gcloud config set auth/credential_file_override KEY_PATH
      

      Remplacez KEY_PATH par le chemin d'accès au fichier de clé du compte de service.

      Pour arrêter d'utiliser la clé de compte de service par défaut pour les commandes gcloud, supprimez la propriété à l'aide de la commande suivante :

      gcloud config unset auth/credential_file_override
      
    • gcloud auth login : exécutez la commande suivante à l'aide de l'indicateur --cred-file :

      Linux et macOS

      gcloud auth login \
          --cred-file=KEY_PATH
      

      Windows (PowerShell)

      gcloud auth login `
          --cred-file=KEY_PATH
      

      Remplacez KEY_PATH par le chemin d'accès au fichier de clé du compte de service.

      La commande gcloud auth login stocke les identifiants d'accès dans votre répertoire personnel. Le principal authentifié devient le principal actif dans votre configuration gcloud CLI active. Sauf indication contraire, la gcloud CLI utilise ces identifiants stockés pour accéder à Google Cloud.

Utiliser la gcloud CLI avec un jeton d'accès

Si vous vous êtes déjà authentifié pour la gcloud CLI sur un autre appareil, vous pouvez obtenir un jeton d'accès pour le principal actif de cet appareil à l'aide de la commande suivante :

gcloud auth print-access-token

Vous pouvez ensuite utiliser ce jeton d'accès sur un autre appareil pour accéder aux ressources Google Cloud. L'utilisation d'un jeton d'accès permet de ne pas avoir à définir de principal actif et remplace tout principal actif défini dans la configuration active de gcloud CLI.

Les jetons d'accès pour les comptes utilisateur ont une durée de vie par défaut d'une heure.

Vous pouvez utiliser un jeton d'accès avec la gcloud CLI pour les commandes futures ou pour une seule commande.

Toutes les commandes

Pour utiliser un jeton d'accès avec gcloud CLI pour les commandes futures, vous pouvez définir une variable d'environnement ou une propriété dans la configuration active de gcloud CLI :

  • Variable d'environnement : définissez la variable d'environnement CLOUDSDK_AUTH_ACCESS_TOKEN sur la chaîne du jeton d'accès.

    Pour arrêter d'utiliser le jeton d'accès, effacez la variable d'environnement CLOUDSDK_AUTH_ACCESS_TOKEN.

  • Configuration de gcloud CLI : stockez le jeton d'accès dans un fichier, puis définissez la propriété auth/access_token_file de la configuration gcloud CLI active sur le chemin d'accès au fichier à l'aide de la commande suivante :

    gcloud config set auth/access_token_file ACCESS_TOKEN_PATH
    

    Remplacez ACCESS_TOKEN_PATH par le chemin d'accès au fichier du jeton d'accès.

    Pour ne plus utiliser de jeton d'accès par défaut pour les commandes gcloud, annulez la définition de la propriété à l'aide de la commande suivante :

    gcloud config unset auth/access_token_file
    

Commande unique

Pour utiliser un jeton d'accès avec la gcloud CLI pour une seule commande, vous pouvez ajouter l'option --access-token-file à une commande de service gcloud CLI :

  1. Stockez le jeton d'accès dans un fichier.

  2. Utilisez l'option --access-token-file avec n'importe quelle commande de service gcloud.

    Par exemple, pour lister les instances de VM Compute Engine à l'aide d'un jeton d'accès, exécutez la commande suivante :

    Linux et macOS

    gcloud compute instances list \
        --access-token-file ACCESS_TOKEN_PATH
    

    Windows (PowerShell)

    gcloud compute instances list `
        --access-token-file ACCESS_TOKEN_PATH
    

    Remplacez ACCESS_TOKEN_PATH par le chemin d'accès au fichier du jeton d'accès.

Priorité des identifiants

Étant donné que plusieurs méthodes d'authentification peuvent être utilisées dans un même environnement, la gcloud CLI évalue les méthodes dans un ordre spécifique pour déterminer quel compte principal utiliser. La gcloud CLI commence par les identifiants fournis, puis évalue si l'emprunt d'identité d'un compte de service a été demandé.

L'ordre d'évaluation des identifiants fournis est le suivant :

  1. Variable d'environnement CLOUDSDK_AUTH_ACCESS_TOKEN définie sur la chaîne du jeton d'accès.

  2. Fichiers de jetons d'accès. Les méthodes utilisées pour définir les chemins d'accès aux fichiers de jetons d'accès sont évaluées dans l'ordre suivant :

    1. Option de ligne de commande --access-token-file, utilisée avec n'importe quelle commande gcloud CLI.

    2. Variable d'environnement CLOUDSDK_AUTH_ACCESS_TOKEN_FILE.

    3. La propriété auth/access_token_file dans la configuration active de la gcloud CLI.

  3. Fichiers d'identifiants. Les méthodes utilisées pour définir les chemins d'accès aux fichiers d'identifiants sont évaluées dans l'ordre suivant :

    1. Variable d'environnement CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.

    2. Propriété auth/credential_file_override dans la configuration active de la gcloud CLI.

  4. Ensemble de principaux actifs défini par la commande gcloud auth login ou en définissant la propriété core/account.

Priorité de l'emprunt d'identité d'un compte de service

Si l'emprunt d'identité d'un compte de service a été demandé, la gcloud CLI vérifie quel compte de service emprunter après que les identifiants ont été fournis pour le compte principal qui effectue l'emprunt d'identité. Les méthodes utilisées pour définir les comptes de service à emprunter sont évaluées dans l'ordre suivant :

  1. Indicateur de ligne de commande --impersonate-service-account.

  2. Variable d'environnement CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.

  3. Le compte de service défini par la propriété auth/impersonate_service_account dans la configuration active.

Ajouter Google Drive à votre portée

Le champ d'application de gcloud CLI peut être étendu pour inclure l'accès à Google Drive en plus de Google Cloud. Cela signifie que vous pouvez utiliser des jetons d'accès Google Cloud avec Google Drive.

Pour étendre le champ d'application afin d'inclure Google Drive, ajoutez l'option --enable-gdrive-access lorsque vous autorisez la gcloud CLI :

Linux et macOS

gcloud auth login \
    --enable-gdrive-access

Windows (PowerShell)

gcloud auth login `
    --enable-gdrive-access

Vous pouvez ensuite appeler les API Google Drive à l'aide de la gcloud CLI pour fournir un jeton d'accès. Par exemple, pour lister tous les fichiers de votre compte Google Drive, vous pouvez envoyer la requête suivante :

Linux et macOS

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://www.googleapis.com/drive/v3/files"

Windows (PowerShell)

Invoke-WebRequest `
  -Method GET `
  -Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
  -ContentType "application/json; charset=utf-8" `
  -UseBasicParsing `
  -Uri "https://www.googleapis.com/drive/v3/files" | Select-Object -Expand Content

Vous pouvez ensuite, par exemple, utiliser un ID de fichier de la réponse de la commande précédente pour extraire du texte d'un fichier Google Docs :

Linux et macOS

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain"

Windows (PowerShell)

Invoke-WebRequest `
  -Method GET `
  -Headers @{ "Authorization" = "Bearer $(gcloud auth print-access-token)" } `
  -ContentType "application/json; charset=utf-8" `
  -UseBasicParsing `
  -Uri "https://www.googleapis.com/drive/v3/files/FILE_ID/export?mimeType=text/plain" | Select-Object -Expand Content

Un cas d'utilisation courant de l'accès à Google Drive consiste à utiliser BigQuery avec des données stockées dans Google Sheets.

Pour en savoir plus sur l'API Google Drive, consultez la présentation de l'API Google Drive.

Ajouter gcloud CLI en tant qu'assistant d'identification à Docker

Pour extraire des images des registres de conteneurs Artifact Registry, vous pouvez ajouter la gcloud CLI en tant qu'assistant d'identification à votre configuration Docker.

Pour ce faire, exécutez la commande gcloud auth configure-docker :

gcloud auth configure-docker REGION-docker.pkg.dev

Gérer les principaux et les identifiants

Vous pouvez utiliser la commande gcloud auth login pour authentifier plusieurs comptes principaux dans le même environnement et autoriser la gcloud CLI à accéder aux ressources en leur nom. Toutefois, un seul principal peut être actif à la fois. Les sections suivantes expliquent comment gérer les principaux dans votre configuration gcloud CLI, y compris les lister, passer de l'un à l'autre et révoquer leurs identifiants.

Lister les comptes principaux

Pour lister les principaux dont les identifiants d'accès sont stockés sur le système local (c'est-à-dire ceux qui ont été authentifiés à l'aide de gcloud auth login), exécutez la commande gcloud auth list :

gcloud auth list

Gcloud CLI répertorie les principaux et indique celui qui est actif :

Credentialed Accounts
ACTIVE  ACCOUNT
        alex@altostrat.com
*       bola@altostrat.com
        principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/cruz@cymbalgroup.com

Les remplacements pour le compte principal actif ne sont pas inclus dans cette liste. Cela inclut les variables d'environnement suivantes :

  • CLOUDSDK_AUTH_ACCESS_TOKEN
  • CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE
  • CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT

Pour vérifier si ces variables d'environnement sont définies, exécutez la commande suivante pour votre système d'exploitation :

Linux et macOS

echo "$ENVIRONMENT_VARIABLE"

Windows (PowerShell)

echo $env:ENVIRONMENT_VARIABLE

Remplacez ENVIRONMENT_VARIABLE par la variable d'environnement que vous souhaitez vérifier.

Les remplacements pour le principal actif incluent également les propriétés de configuration suivantes :

  • auth/access_token_file
  • auth/credential_file_override
  • auth/impersonate_service_account

Pour vérifier si ces propriétés de configuration sont définies, exécutez la commande suivante :

gcloud config list

Changer de principal actif

Pour passer à un compte principal actif qui a des identifiants stockés (c'est-à-dire qu'il a déjà effectué le flux gcloud auth login), exécutez gcloud config set :

gcloud config set account PRINCIPAL_IDENTIFIER

Remplacez PRINCIPAL_IDENTIFIER par l'identifiant complet du compte principal.

Vous pouvez également changer de compte principal de différentes manières :

Définir la durée des sessions

Les administrateurs peuvent contrôler la durée pendant laquelle différents utilisateurs peuvent accéder à la gcloud CLI sans avoir à s'authentifier à nouveau. Par exemple, vous pouvez forcer les utilisateurs disposant de droits élevés à se réauthentifier plus souvent que les utilisateurs standards.

Pour en savoir plus, consultez Définir la durée de session pour les services Google Cloud .

Révoquer les identifiants d'un compte principal

Vous pouvez révoquer les identifiants des principaux qui se sont authentifiés avec gcloud auth login afin que la gcloud CLI ne puisse pas agir en leur nom. La révocation invalide les identifiants sur les serveurs d'autorisation de Google et supprime le principal de la configuration active de gcloud CLI.

Pour révoquer des identifiants, exécutez la commande gcloud auth revoke suivante :

gcloud auth revoke PRINCIPAL_IDENTIFIER

Remplacez PRINCIPAL_IDENTIFIER par l'identifiant complet du compte principal.

Pour révoquer l'accès à gcloud CLI sur tous les appareils associés à votre compte Google, accédez à Applications et services tiers dans les paramètres de votre compte Google, puis supprimez toutes les connexions avec le SDK Google Cloud.

Gérer les identifiants stockés

gcloud CLI stocke les fichiers d'identifiants qu'il utilise dans le répertoire de configuration de gcloud CLI. Pour trouver l'emplacement des fichiers d'identifiants, exécutez la commande gcloud info :

gcloud info

La gcloud CLI affiche des informations sur votre installation. Les fichiers d'identifiants sont stockés dans le répertoire de configuration de l'utilisateur défini dans le résultat :

User Config Directory: [/home/USERNAME/.config/gcloud]

Pour Linux et macOS, le répertoire de configuration de gcloud CLI est généralement /home/USERNAME/.config/gcloud. Pour Windows, il s'agit de %APPDATA%\gcloud.

Étapes suivantes