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 :
-
Fédération des identités des employés : permet aux utilisateurs humains de se connecter à Google Cloud avec des identités gérées par un fournisseur d'identité externe. Si votre organisation a déjà configuré l'authentification unique (SSO), vous pouvez utiliser ce type d'identité pour vous authentifier auprès de Google Cloud.
Pour utiliser la fédération des identités des employés, votre fournisseur d'identité doit être compatible avec OpenID Connect (OIDC) ou SAML 2.0.
-
Fédération d'identité de charge de travail : permet aux charges de travail exécutées en dehors de Google Cloud d'opérer sur les ressources Google Cloud .
Vous pouvez utiliser la fédération d'identité de charge de travail avec les charges de travail qui s'authentifient à l'aide de certificats client X.509, qui s'exécutent sur Amazon Web Services (AWS) ou Azure, sur Active Directory sur site, avec des services de déploiement tels que GitHub et GitLab, et avec n'importe quel fournisseur d'identité compatible avec OpenID Connect (OIDC) ou Security Assertion Markup Language (SAML) V2.0.
-
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 :
Exécutez la commande suivante pour démarrer le processus :
gcloud auth loginSuivez 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 :
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-browserWindows (PowerShell)
gcloud auth login ` --no-browserCopiez la commande
gcloudqui commence pargcloud auth login --remote-bootstrap="pour l'utiliser sur l'autre appareil.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.
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.Dans le terminal, copiez l'URL qui commence par
https://localhostpour l'utiliser sur l'appareil d'origine.Revenez à l'appareil d'origine.
Dans le terminal, à l'invite, collez l'URL
https://localhostque 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 :
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-browserWindows (PowerShell)
gcloud auth login ` --no-launch-browserCopiez l'URL qui commence par
https://accounts.google.com/o/oauth2/authpour l'utiliser sur l'autre appareil.Accédez à un autre appareil de confiance sur lequel un navigateur Web est installé.
Ouvrez un navigateur Web, accédez à l'URL que vous avez copiée précédemment et suivez la procédure dans le navigateur.
Copiez le code de validation à utiliser sur l'appareil d'origine.
Revenez à l'appareil d'origine.
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 :
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" }
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 :
-
Définissez la variable d'environnement
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEsur le chemin d'accès du fichier de configuration de connexion. -
Exécutez la commande suivante :
gcloud auth login
- 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'environnementCLOUDSDK_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 :
-
Définissez la propriété
auth/login_config_filede 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
-
Exécutez la commande suivante :
gcloud auth login
- 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
--activatelors 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
--activatelors 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.
-
Définissez la variable d'environnement
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.
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.
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_OVERRIDEsur 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_overridede 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_PATHRemplacez
CONFIGURATION_PATHpar 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_overridegcloud auth login
Exécutez la commande suivante à l'aide de l'option
--cred-file:Linux et macOS
gcloud auth login \ --cred-file=CONFIGURATION_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=CONFIGURATION_PATHRemplacez
CONFIGURATION_PATHpar 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 :
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'autorisationserviceusage.services.enable. Découvrez comment attribuer des rôles.Choisissez un compte principal à utiliser pour emprunter l'identité d'un compte de service.
-
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.
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.
Choisissez un compte de service à emprunter. Recherchez un compte de service existant ou créez-en un.
Copiez l'adresse e-mail du compte de service.
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_ACCOUNTsur 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_accountde la configuration active de la gcloud CLI à l'aide de la commande suivante :gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_EMAILRemplacez
SERVICE_ACCOUNT_EMAILpar 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_EMAILWindows (PowerShell)
gcloud compute instances list ` --impersonate-service-account=SERVICE_ACCOUNT_EMAILRemplacez
SERVICE_ACCOUNT_EMAILpar 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 :
Créez une clé de compte de service et stockez-la dans un fichier à un emplacement sécurisé de votre environnement.
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_OVERRIDEsur 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_overridede 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_PATHRemplacez
KEY_PATHpar 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_overridegcloud auth login: exécutez la commande suivante à l'aide de l'indicateur--cred-file:Linux et macOS
gcloud auth login \ --cred-file=KEY_PATHWindows (PowerShell)
gcloud auth login ` --cred-file=KEY_PATHRemplacez
KEY_PATHpar 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_TOKENsur 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_filede 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_PATHRemplacez
ACCESS_TOKEN_PATHpar 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 :
Stockez le jeton d'accès dans un fichier.
Utilisez l'option
--access-token-fileavec n'importe quelle commande de servicegcloud.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_PATHWindows (PowerShell)
gcloud compute instances list ` --access-token-file ACCESS_TOKEN_PATHRemplacez
ACCESS_TOKEN_PATHpar 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 :
Variable d'environnement
CLOUDSDK_AUTH_ACCESS_TOKENdéfinie sur la chaîne du jeton d'accès.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 :
Option de ligne de commande
--access-token-file, utilisée avec n'importe quelle commande gcloud CLI.Variable d'environnement
CLOUDSDK_AUTH_ACCESS_TOKEN_FILE.La propriété
auth/access_token_filedans la configuration active de la gcloud CLI.
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 :
Variable d'environnement
CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE.Propriété
auth/credential_file_overridedans la configuration active de la gcloud CLI.
Ensemble de principaux actifs défini par la commande
gcloud auth loginou 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 :
Indicateur de ligne de commande
--impersonate-service-account.Variable d'environnement
CLOUDSDK_AUTH_IMPERSONATE_SERVICE_ACCOUNT.Le compte de service défini par la propriété
auth/impersonate_service_accountdans 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_TOKENCLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDECLOUDSDK_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_fileauth/credential_file_overrideauth/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 :
Créez une configuration distincte qui spécifie un autre compte principal actif, puis activez cette configuration.
Utilisez l'indicateur de ligne de commande
--accountpour spécifier un compte principal pour une seule commande.Utilisez un remplacement comme un indicateur de ligne de commande, une variable d'environnement ou une propriété de configuration.
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
Pour en savoir plus sur la personnalisation de gcloud CLI, consultez Propriétés de gcloud CLI.
Pour en savoir plus sur la gestion des ensembles nommés de propriétés gcloud CLI, consultez Configurations gcloud CLI.
Pour authentifier les charges de travail basées sur du code qui utilisent les bibliothèques clientes Cloud ou les bibliothèques clientes des API Google, consultez Fonctionnement des identifiants par défaut de l'application.