En esta página, se describen algunos problemas comunes que pueden surgir cuando usas las credenciales predeterminadas de la aplicación (ADC).
Para obtener información sobre cómo funcionan las ADC, incluso dónde se encuentran las credenciales, consulta Cómo funcionan las credenciales predeterminadas de la aplicación.
Las credenciales de usuario no funcionan
Si tu solicitud a la API muestra un mensaje de error sobre credenciales de usuario que no son compatibles con esta API, que la API no está habilitada en el proyecto o que no se estableció ningún proyecto de cuota, revisa la siguiente información.
Existen dos tipos de API de Google Cloud:
APIs basadas en recursos, que usan el proyecto asociado con los recursos a los que se accede para la facturación y la cuota.
APIs basadas en el cliente, que usan el proyecto asociado con el cliente que accede a los recursos para facturación y cuota.
Cuando proporcionas credenciales de usuario para autenticarte en una API basada en cliente, debes especificar el proyecto que se usará para la facturación y la cuota. Este proyecto se llama proyecto de cuota.
Existen varias formas de especificar un proyecto de cuota, incluidas las siguientes opciones:
Actualiza tu archivo de ADC para que use un proyecto diferente como el de cuota:
gcloud auth application-default set-quota-project YOUR_PROJECT
Si usas gcloud CLI para llamar a la API, puedes establecer el proyecto de cuota en la configuración de gcloud CLI:
gcloud config set billing/quota_project YOUR_PROJECT
Si llamas a la API de REST o de RPC directamente, usa el encabezado HTTP
x-goog-user-project
para especificar un proyecto de cuota en cada solicitud. Para obtener más detalles, consulta Configura el proyecto de cuota con una solicitud de REST.
Debes tener el permiso de IAM serviceusage.services.use
para que un proyecto pueda designarlo como tu proyecto de facturación. El permiso serviceusage.services.use
se incluye en el rol de IAM Service Usage Consumer. Si no tienes el permiso serviceusage.services.use
para ningún proyecto, comunícate con tu administrador de seguridad o un propietario del proyecto que pueda otorgarte el rol Service Usage Consumer en el proyecto.
Para obtener más información sobre los proyectos de cuota, consulta Descripción general del proyecto de cuota. Para obtener más información sobre cómo configurar el proyecto de cuota, consulta Configura el proyecto de cuota.
Las credenciales son incorrectas
Si parece que tus credenciales no proporcionan el acceso que esperas o no se encuentran, verifica lo siguiente:
Si usas la CLI de gcloud para acceder a Google Cloud en un entorno local, asegúrate de comprender qué credenciales usas. Cuando usas la CLI de gcloud, usas las credenciales que proporcionaste a la CLI de gcloud mediante el comando
gcloud auth login
. No usas las credenciales que proporcionaste a ADC. Para obtener más información sobre estos dos conjuntos de credenciales, consulta Configuración de la autenticación de gcloud CLI y configuración de ADC.Asegúrate de que la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
se configure solo si usas una clave de cuenta de servicio u otro archivo JSON para ADC. Las credenciales a las que apunta la variable de entorno tienen prioridad sobre otras credenciales, incluida Workload Identity Federation for GKE.Confirma que el principal que realiza la solicitud tenga los roles de IAM necesarios. Si usas credenciales de usuario, las funciones deben otorgarse a la dirección de correo electrónico asociada con la cuenta de usuario. Si usas una cuenta de servicio, esa cuenta debe tener los roles necesarios.
Si proporcionas una clave de API con la solicitud a la API, esta tendrá prioridad sobre ADC en cualquier ubicación. Si configuraste la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
y usas una clave de API, es posible que la API muestre una advertencia que te indique que se ignoran las credenciales que proporcionaste a ADC. Para detener la advertencia, desactiva la variable de entornoGOOGLE_APPLICATION_CREDENTIALS
.
Tipo de credencial no reconocido
Si tu solicitud a la API muestra un error que incluye "Error al crear la credencial desde JSON. No se reconoce el tipo de credencial", asegúrate de usar una credencial válida. Los archivos de ID de cliente no son compatibles con el fin de proporcionar credenciales para ADC.
Acceso bloqueado cuando se usan permisos
Cuando intentas crear un archivo de ADC local y se muestra un error similar a “Esta app está bloqueada” o “Acceso bloqueado: error de autorización”, es posible que estés intentando usar permisos que no son compatibles con el comando de configuración de ADC predeterminado. Por lo general, este problema se produce cuando se agregan permisos para aplicaciones fuera de Google Cloud, como Google Drive.
De forma predeterminada, los tokens de acceso generados a partir de un archivo de ADC local creado con credenciales de usuario incluyen
el
permiso para toda la nube https://www.googleapis.com/auth/cloud-platform
.
Para especificar los permisos de forma explícita, usa la
marca –-scopes
con el comando gcloud auth application-default login
.
Para agregar permisos a servicios fuera de Google Cloud, como
Google Drive, crea un ID de cliente de OAuth
y proporciónalo al comando gcloud auth application-default login
; para ello, usa la
marca –-client-id-file
y especifica los permisos con la
marca -–scopes
.