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 tout au long d'un flux d'authentification, configure une configuration gcloud CLI et autorise gcloud CLI à agir en votre nom. Il n'est pas nécessaire d'effectuer une étape d'authentification distincte.

Le reste de ce document couvre 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 humains 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 de gcloud CLI à agir en votre nom 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. La gcloud CLI s'authentifie à l'aide du compte de service associé à la VM et peut accéder aux mêmes ressources que ce compte de service dans les limites des niveaux d'accès 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 n'est pas équipé d'un 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 d'identité de personnel 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":