Résoudre les problèmes de configuration de vos ADC

Cette page décrit certains problèmes courants que vous pouvez rencontrer lors de l'utilisation des identifiants par défaut de l'application (ADC).

Pour en savoir plus sur le fonctionnement des ADC, y compris sur l'emplacement des identifiants, consultez la page Fonctionnement des identifiants par défaut de l'application.

Les identifiants utilisateur ne fonctionnent pas

Si votre requête API renvoie un message d'erreur indiquant que les identifiants de l'utilisateur ne sont pas compatibles avec cette API, que l'API n'est pas activée dans le projet ou qu'aucun projet de quota n'est défini, consultez les informations suivantes.

Il existe deux types d'API Google Cloud :

  • Les API basées sur des ressources, qui utilisent le projet associé aux ressources accessibles pour la facturation et les quotas.

  • Les API basées sur un client, qui utilisent le projet associé au client qui accède aux ressources pour la facturation et les quotas.

Lorsque vous fournissez des identifiants utilisateur pour vous authentifier auprès d'une API basée sur un client, vous devez spécifier le projet à utiliser pour la facturation et les quotas. Ce projet est appelé projet de quota.

Il existe plusieurs façons de spécifier un projet de quota, y compris les options suivantes :

  • Mettez à jour votre fichier ADC pour utiliser un projet différent comme projet de quota :

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  • Si vous utilisez gcloud CLI pour appeler l'API, vous pouvez définir votre projet de quota dans votre configuration gcloud CLI :

    gcloud config set billing/quota_project YOUR_PROJECT
    
  • Si vous appelez directement l'API REST ou RPC, utilisez l'en-tête HTTP x-goog-user-project pour spécifier un projet de quota dans chaque requête. Pour en savoir plus, consultez la section Définir le projet de quota avec une requête REST.

Vous devez disposer de l'autorisation IAM serviceusage.services.use pour un projet si vous souhaitez le désigner comme votre projet de facturation. L'autorisation serviceusage.services.use est incluse dans le rôle IAM Consommateur Service Usage. Si vous ne disposez pas de l'autorisation serviceusage.services.use pour un projet, contactez votre administrateur de sécurité ou un propriétaire de projet qui peut vous attribuer le rôle Consommateur Service Usage sur le projet.

Pour en savoir plus sur les projets de quota, consultez la page Présentation des projets de quota. Pour en savoir plus sur les autres méthodes de définition de projet de quota, consultez la page Définir le projet de quota.

Identifiants incorrects

Si vos identifiants ne semblent pas vous fournir l'accès attendu, ou si vous ne les trouvez pas, vérifiez les points suivants:

  • Si vous utilisez gcloud CLI pour accéder à Google Cloud dans un environnement local, assurez-vous de bien comprendre les identifiants que vous utilisez. Lorsque vous utilisez gcloud CLI, vous utilisez les identifiants que vous avez fournis à gcloud CLI à l'aide de la commande gcloud auth login. Vous n'utilisez pas les identifiants que vous avez fournis au service ADC. 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.

  • Assurez-vous que la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS n'est définie que si vous utilisez une clé de compte de service ou un autre fichier JSON pour ADC. Les identifiants pointés par la variable d'environnement sont prioritaires sur les autres identifiants, y compris pour Workload Identity Federation for GKE.

  • Vérifiez que le compte principal effectuant la requête dispose des rôles IAM requis. Si vous utilisez des identifiants utilisateur, les rôles doivent être attribués à l'adresse e-mail associée au compte utilisateur. Si vous utilisez un compte de service, ce compte doit disposer des rôles requis.

  • Si vous fournissez une clé API avec la requête API, la clé API est prioritaire sur ADC, quel qu'en soit l'emplacement. Si vous avez défini la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS et que vous utilisez une clé API, celle-ci peut renvoyer un avertissement vous informant que les identifiants que vous avez fournis à ADC sont ignorés. Pour arrêter l'avertissement, supprimez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS.

Type d'identifiants non reconnus

Si votre requête API renvoie une erreur qui inclut "Erreur de création des identifiants à partir du fichier JSON. Type d'identifiant non reconnu", assurez-vous d'utiliser un identifiant valide. Les fichiers d'ID client ne sont pas compatibles avec la saisie des identifiants pour ADC.

Accès bloqué lors de l'utilisation de niveaux d'accès

Lorsque vous essayez de créer un fichier ADC local et qu'une erreur semblable à "Cette application est bloquée" ou "Accès bloqué : erreur d'autorisation" s'affiche, vous essayez peut-être d'utiliser des niveaux d'accès qui ne sont pas compatibles avec la commande de configuration ADC par défaut. En règle générale, ce problème est dû à l'ajout de niveaux d'accès pour des applications en dehors de Google Cloud, comme Google Drive.

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, vous devez utiliser 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.