Autoriser la CLI gcloud

Pour accéder à Trusted Cloud, vous devez généralement autoriser Google Cloud CLI. Cette page présente les options d'autorisation disponibles et explique comment gérer les comptes utilisés pour l'autorisation. Si vous utilisez une instance Compute Engine ou Cloud Shell, vous n'avez pas besoin d'autoriser gcloud CLI.

Types de comptes

Pour autoriser la gcloud CLI à accéder àTrusted Cloud, vous pouvez utiliser un compte utilisateur ou un compte de service.

Un compte utilisateur est un compte Trusted Cloud qui permet aux utilisateurs finaux de s'authentifier auprès de votre application. Dans la plupart des cas d'utilisation courants, en particulier lors de l'utilisation interactive de gcloud CLI, le recours à un compte utilisateur fait partie des bonnes pratiques.

Un compte de service est un compte Trusted Cloud associé à votre projetTrusted Cloud et non à un utilisateur spécifique. Vous pouvez utiliser le compte de service intégré disponible lorsque vous utilisez des fonctions Cloud Run, App Engine, Compute Engine ou Google Kubernetes Engine. Un compte de service est recommandé pour exécuter des scripts gcloud CLI sur plusieurs machines.

Choisir un type d'autorisation

Vous devez autoriser Google Cloud CLI à gérer les ressources Trusted Cloud. La Google Cloud CLI et Trusted Cloud utilisent OAuth2 pour l'authentification et l'autorisation.

Choisissez l'un des types d'autorisation suivants :

Type Description
Compte utilisateur Recommandé si vous utilisez gcloud CLI à partir de la ligne de commande ou si vous écrivez des scripts avec gcloud CLI pour une utilisation sur une seule machine.
Compte de service Recommandé si vous installez et configurez gcloud CLI dans le cadre d'un processus de déploiement de machine en production, ou pour utilisation sur des instances de machine virtuelle Compute Engine où tous les utilisateurs ont accès à root.

Pour en savoir plus sur l'authentification et Trusted Cloud, consultez la présentation de l'authentification.

Autoriser avec un compte utilisateur

Cette section explique comment se connecter à gcloud CLI à l'aide de la fédération des identités des employés.

Avant de vous connecter à gcloud CLI, vous devez définir la propriété core/universe_domain dans votre configuration en exécutant la commande suivante :

gcloud config set universe_domain s3nsapis.fr

Connexion à gcloud CLI depuis un navigateur

Pour vous connecter à la gcloud CLI à l'aide d'un flux de connexion basé sur un navigateur, procédez comme suit :

  1. Créez un fichier de configuration de connexion.

    Pour créer le fichier de configuration de connexion, exécutez la commande suivante. Vous pouvez éventuellement définir par défaut l'activation du fichier pour gcloud CLI en ajoutant l'option --activate. Vous pouvez ensuite exécuter gcloud auth login sans spécifier le chemin d'accès au fichier de configuration à chaque fois.

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

    Remplacez les éléments suivants :

    • WORKFORCE_POOL_ID : ID du pool de personnel
    • PROVIDER_ID : ID du fournisseur
    • LOGIN_CONFIG_FILE_PATH : chemin d'accès à un fichier de configuration que vous spécifiez, par exemple login.json

    Le fichier 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 pool d'identités de personnel. Votre fichier ne contient aucune information confidentielle.

    La sortie ressemble à ceci :

    {
      "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.s3nscloud.fr/authorize",
      "token_url": "https://sts.s3nsapis.fr/v1/oauthtoken",
      "token_info_url": "https://sts.s3nsapis.fr/v1/introspect",
    }

    Pour empêcher gcloud auth login d'utiliser automatiquement ce fichier de configuration, vous pouvez le désactiver en exécutant gcloud config unset auth/login_config_file.

  2. Connectez-vous à l'aide d'une authentification basée sur le navigateur.

    Pour vous authentifier à l'aide de l'authentification de connexion basée sur le navigateur, vous pouvez utiliser l'une des méthodes suivantes :

    • Si vous avez utilisé l'option --activate lors de la création du fichier de configuration ou si vous avez activé le fichier de configuration avec la commande gcloud config set auth/login_config_file, gcloud CLI va utiliser automatiquement votre fichier de configuration :

      gcloud auth login
    • Pour vous connecter en spécifiant l'emplacement du fichier de configuration, exécutez la commande suivante :

      gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
    • Pour utiliser une variable d'environnement afin de spécifier l'emplacement du fichier de configuration, définissez CLOUDSDK_AUTH_LOGIN_CONFIG_FILE sur le chemin d'accès de la configuration.

Pour arrêter d'utiliser le fichier de configuration de connexion, procédez comme suit :

  • Si vous avez utilisé l'option --activate lors de la création du fichier de configuration ou si vous avez activé le fichier de configuration avec la commande gcloud config set auth/login_config_file, vous devez exécuter la commande suivante pour le désactiver :

    gcloud config unset auth/login_config_file
  • Si elle est définie, effacez la variable d'environnement CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.

Connexion à gcloud CLI sans interface graphique

Pour vous connecter à gcloud CLI à l'aide d'une procédure sans interface graphique, procédez comme suit :

OIDC

  1. Connectez un utilisateur à votre application IdP et obtenez le jeton OIDC.

    Pour savoir comment obtenir le jeton, consultez la documentation OIDC de votre IdP.

  2. Enregistrez le jeton OIDC renvoyé par le fournisseur d'identité dans un emplacement sécurisé sur votre ordinateur local.

  3. Générez un fichier de configuration en exécutant la commande suivante :

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \
        --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \
        --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \
        --output-file="config.json"
    

Remplacez les éléments suivants :

  • WORKFORCE_POOL_ID : ID du pool de personnel
  • PROVIDER_ID : ID du fournisseur
  • PATH_TO_OIDC_TOKEN : chemin d'accès au fichier d'identifiants du fournisseur d'identité OIDC
  • WORKFORCE_POOL_USER_PROJECT : numéro de projet associé au projet utilisateur des pools de personnel

Le compte principal doit disposer de l'autorisation serviceusage.services.use sur ce projet.

Lorsque vous exécutez la commande, vous obtenez un fichier de configuration IdP OIDC semblable à celui-ci :

{
  "type": "external_account",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
  "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
  "token_url": "https://sts.googleapis.com/v1/token",
  "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
  "credential_source": {
    "file": "PATH_TO_OIDC_CREDENTIALS_FILE"
  }
}

SAML

  1. Connectez un utilisateur à votre application IdP et obtenez l'assertion SAML.

    Pour savoir comment obtenir l'assertion SAML auprès de votre fournisseur d'identité, consultez la documentation SAML de votre fournisseur d'identité.

  2. Enregistrez la réponse SAML renvoyée par le fournisseur d'identité dans un emplacement sécurisé sur votre ordinateur local, puis stockez le chemin d'accès comme suit :

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Pour générer un fichier de configuration, exécutez la commande suivante :

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \
        --credential-source-file="SAML_ASSERTION_PATH"  \
        --workforce-pool-user-project="PROJECT_ID"  \
        --output-file="config.json"
    

    Remplacez les éléments suivants :

    • WORKFORCE_PROVIDER_ID : ID du fournisseur de personnel que vous avez créé précédemment dans ce guide.
    • WORKFORCE_POOL_ID : ID de pool de personnel que vous avez créé précédemment dans ce guide.
    • SAML_ASSERTION_PATH : chemin d'accès du fichier d'assertion SAML.
    • PROJECT_ID : ID du projet

    Le fichier de configuration généré se présente comme suit :

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    

Pour vous connecter à gcloud en utilisant l'échange de jetons, exécutez la commande suivante :

gcloud auth login --cred-file="config.json"

gcloud échange ensuite de manière transparente vos identifiants IdP contre des jetons d'accès Trusted Cloud temporaires, ce qui vous permet d'effectuer d'autres appels gcloud vers Trusted Cloud.

Le résultat ressemble à ce qui suit :

Authenticated with external account user credentials for:
[principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].

Pour répertorier les comptes avec identifiants et votre compte actuellement actif, exécutez la commande suivante :

gcloud auth list

Autoriser avec un compte de service

La commande gcloud auth login peut autoriser l'accès avec un compte de service en utilisant un fichier d'identifiants stocké sur votre système de fichiers local. Ces identifiants peuvent être des identifiants utilisateur autorisés à emprunter l'identité du compte de service, un fichier de configuration des identifiants pour la fédération d'identité de charge de travail ou une clé de compte de service.

Autoriser un compte de service à l'aide de l'emprunt d'identité d'un compte de service

Pour autoriser la gcloud CLI à utiliser les identifiants du compte de service emprunté, procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page "Comptes de service".

    Accéder à la page "Comptes de service"

  2. Sélectionnez un compte existant ou créez un compte en cliquant sur Créer un compte de service.

  3. Pour obtenir l'autorisation nécessaire pour emprunter l'identité d'un compte de service, demandez à votre administrateur de vous accorder 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 la page 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.

    Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

  4. Autorisez la gcloud CLI avec votre identité d'utilisateur en exécutant gcloud auth login.

  5. Pour configurer gcloud CLI afin d'utiliser l'identité et l'accès fournis par un compte de service par défaut, utilisez la commande gcloud CLI config :

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Pour arrêter d'utiliser les identifiants de compte de service empruntés avec gcloud CLI par défaut, supprimez l'indicateur avec la commande gcloud CLI config :

    gcloud config unset auth/impersonate_service_account
    

Autoriser un compte de service à l'aide de la fédération d'identité de charge de travail

Pour autoriser gcloud CLI avec un compte de service à l'aide d'identifiants externes provenant de la fédération d'identité de charge de travail, procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page "Comptes de service".

    Accéder à la page "Comptes de service"

  2. Sélectionnez un compte existant ou créez un compte en cliquant sur Créer un compte de service.

  3. 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.

  4. Pour activer votre compte de service, exécutez gcloud auth login avec l'option --cred-file :

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    Remplacez CONFIGURATION_FILE par le chemin d'accès à un fichier de configuration des identifiants pour la fédération d'identité de charge de travail.

Autoriser un compte de service à l'aide d'une clé de compte de service

Pour autoriser gcloud CLI avec un compte de service à l'aide d'une clé de compte de service, procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page "Comptes de service".

    Accéder à la page "Comptes de service"

  2. Sélectionnez un compte existant ou créez un compte en cliquant sur Créer un compte de service.

  3. Pour créer des clés de compte de service, consultez les instructions IAM Créer une clé de compte de service.

  4. Pour activer votre compte de service, exécutez gcloud auth login avec l'option --cred-file :

    gcloud auth login --cred-file=KEY_FILE
    

    Remplacez KEY_FILE par le chemin d'accès à un fichier de clé de compte de service.

Répertorier les comptes

Pour répertorier les comptes dont les identifiants sont stockés sur le système local, exécutez gcloud auth list :

gcloud auth list

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

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

Changer de compte actif

Pour changer de compte actif, exécutez gcloud config set :

gcloud config set account ACCOUNT

[ACCOUNT] est l'adresse e-mail complète du compte.

Vous pouvez également changer de compte en créant une configuration distincte spécifiant le nouveau compte et en basculant entre les configurations :

gcloud config configurations activate CONFIGURATION

Si vous voulez changer le compte utilisé par gcloud CLI au niveau d'un appel individuel, remplacez le compte actif à l'aide du paramètre --account.

Définir la durée de session autorisée

En tant qu'administrateur, vous pouvez 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 fréquemment que les utilisateurs standards.

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

Révoquer des identifiants pour un compte

Vous pouvez révoquer les identifiants d'un compte particulier si vous souhaitez lui interdire l'accès à gcloud CLI. Vous n'avez pas besoin de révoquer les identifiants pour basculer entre les comptes.

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

gcloud auth revoke ACCOUNT

Pour révoquer tous les accès à la gcloud CLI pour toutes les machines, supprimez la gcloud CLI de la liste des applications ayant accès à votre compte.

Utiliser des fichiers d'identifiants

Trouver vos fichiers d'identifiants

Pour trouver l'emplacement de vos 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 :

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

Configurer les identifiants par défaut de l'application

gcloud CLI permet de gérer les identifiants par défaut de l'application (ADC) avec le groupe de commandes gcloud auth application-default. Pour mettre les identifiants utilisateur à la disposition des ADC, exécutez la commande gcloud auth application-default login :

gcloud auth application-default login

Ces identifiants ne sont pas utilisés par gcloud CLI. Pour découvrir d'autres façons de configurer ADC, consultez Configurer les identifiants par défaut de l'application.

unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login

Étapes suivantes