Fonctionnement des identifiants par défaut de l'application

Cette page décrit les emplacements dans lesquels les ADC (Identifiants par défaut de l'application) recherchent des identifiants. Comprendre le fonctionnement des ADC peut vous aider à comprendre les identifiants utilisés par ADC et le procédé utilisé pour les trouver.

Application Default Credentials (ADC) est une stratégie utilisée par les bibliothèques d'authentification pour rechercher automatiquement des identifiants en fonction de l'environnement d'application. Les bibliothèques d'authentification mettent ces identifiants à la disposition des bibliothèques clientes Cloud et des bibliothèques clientes des API Google. Lorsque vous utilisez le service ADC, votre code peut s'exécuter dans un environnement de développement ou bien de production, sans modifier la manière dont votre application s'authentifie auprès des API et services Google Cloud.

Pour savoir comment fournir des identifiants au service ADC, consultez la page Configurer les identifiants par défaut de l'application.

Rechercher une commande

L'ADC recherche les identifiants dans les emplacements suivants:

  1. Variable d'environnement GOOGLE_APPLICATION_CREDENTIALS
  2. Identifiants utilisateur configurés à l'aide de Google Cloud CLI
  3. Le compte de service associé, renvoyé par le serveur de métadonnées

L'ordre des emplacements vérifiés par le service ADC n'est pas lié au mérite relatif de chaque emplacement. Pour mieux comprendre quelles sont les meilleures façons de fournir des identifiants au service ADC, consultez la page Configurer les identifiants par défaut de l'application.

Variable d'environnement GOOGLE_APPLICATION_CREDENTIALS

Vous pouvez utiliser la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour fournir l'emplacement d'un fichier d'identifiants JSON. Ce fichier JSON peut correspondre à l'un des types de fichiers suivants :

  • Fichier de configuration des identifiants pour la fédération des identités des employés

    La fédération des identités des employés vous permet d'utiliser un fournisseur d'identité externe pour authentifier et autoriser les utilisateurs à accéder aux ressources Google Cloud. Pour en savoir plus, consultez la page Fédération des identités des employés dans la documentation IAM (Identity and Access Management).

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

    La fédération d'identité de charge de travail vous permet d'utiliser un fournisseur d'identité externe pour authentifier et autoriser les charges de travail à accéder aux ressources Google Cloud. Pour en savoir plus, consultez la page S'authentifier à l'aide de bibliothèques clientes, de la gcloud CLI ou de Terraform de la documentation d'Identity and Access Management (IAM).

  • Une clé de compte de service

    Les clés de compte de service créent un risque de sécurité et ne sont pas recommandées. Contrairement aux autres types de fichiers d'identifiants, les clés de compte de service compromises peuvent être utilisées par un acteur malintentionné sans aucune information supplémentaire. Pour plus d'informations, consultez la page Bonnes pratiques d'utilisation et de gestion des clés de compte de service.

Identifiants utilisateur fournis à l'aide de gcloud CLI

Vous pouvez fournir des identifiants utilisateur au service ADC en exécutant la commande gcloud auth application-default login. Cette commande insère, dans un emplacement connu de votre système de fichiers, un fichier JSON contenant les identifiants que vous fournissez (généralement à partir de votre compte utilisateur). Cet emplacement dépend de votre système d'exploitation :

  • Linux, macOS : $HOME/.config/gcloud/application_default_credentials.json
  • Windows : %APPDATA%\gcloud\application_default_credentials.json

Les identifiants que vous fournissez au service ADC à l'aide de gcloud CLI sont différents de vos identifiants gcloud, c'est-à-dire ceux qui permettent à gcloud CLI de s'authentifier auprès de Google Cloud. Pour en savoir plus sur ces deux ensembles d'identifiants, consultez la page Configuration de l'authentification via gcloud CLI et configuration de l'ADC.

Par défaut, les jetons d'accès générés à partir d'un fichier ADC local créé avec des identifiants utilisateur incluent le niveau d'accès à l'échelle du cloud https://www.googleapis.com/auth/cloud-platform. Pour spécifier des niveaux d'accès de manière explicite, utilisez l'option –scopes avec la commande gcloud auth application-default login.

Pour ajouter des niveaux d'accès pour des services en dehors de Google Cloud, tels que Google Drive, créez un ID client OAuth et fournissez-le à la commande gcloud auth application-default login en utilisant l'option –client-id-file, en spécifiant vos niveaux d'accès avec l'option –scopes.

Le compte de service associé

De nombreux services Google Cloud vous permettent d'associer un compte de service qui peut être utilisé pour fournir des identifiants afin d'accéder aux API Google Cloud. Si l'ADC ne trouve pas les identifiants qu'il peut utiliser dans la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS ou l'emplacement bien connu des identifiants ADC local, il utilise le serveur de métadonnées pour obtenir les identifiants du service sur lequel le code est exécuté.

L'utilisation des identifiants du compte de service associé est la méthode privilégiée pour rechercher des identifiants dans un environnement de production sur Google Cloud. Pour utiliser le compte de service associé, procédez comme suit :

  1. Créez un compte de service géré par l'utilisateur.
  2. Attribuez à ce compte de service les rôles IAM offrant le niveau d'accès le plus faible possible.
  3. Associez le compte de service à la ressource où votre code est exécuté.

Pour obtenir de l'aide concernant la création d'un compte de service, consultez la page Créer et gérer des comptes de service. Pour obtenir de l'aide sur l'association d'un compte de service, consultez la section Associer un compte de service à une ressource. Pour déterminer quels sont les rôles IAM requis pour votre compte de service, consultez la page Choisir des rôles prédéfinis.

Étapes suivantes