Cómo funcionan las credenciales de aplicación predeterminadas

En esta página se describen las ubicaciones en las que las credenciales predeterminadas de la aplicación (ADC) buscan credenciales. Si sabes cómo funciona ADC, podrás entender qué credenciales usa y cómo las encuentra.

Application Default Credentials (ADC) es una estrategia que usan las bibliotecas de autenticación para buscar automáticamente las credenciales en función del entorno de la aplicación. Las bibliotecas de autenticación ponen esas credenciales a disposición de las bibliotecas de cliente de Cloud y de las bibliotecas de cliente de las APIs de Google. Cuando usas ADC, tu código puede ejecutarse en un entorno de desarrollo o de producción sin cambiar la forma en que tu aplicación se autentica en los Google Cloud servicios y las APIs.

Para obtener información sobre cómo proporcionar credenciales a las ADC, incluido cómo generar un archivo ADC local, consulta Configurar credenciales predeterminadas de la aplicación.

Buscar pedido

ADC busca credenciales en las siguientes ubicaciones:

  1. Variable de entorno GOOGLE_APPLICATION_CREDENTIALS
  2. Un archivo de credenciales creado con el comando gcloud auth application-default login
  3. La cuenta de servicio adjunta, devuelta por el servidor de metadatos

El orden en el que ADC comprueba las credenciales de las ubicaciones no está relacionado con el mérito relativo de cada ubicación. Para obtener ayuda sobre las mejores formas de proporcionar credenciales a las ADC, consulta Configura credenciales predeterminadas de la aplicación.

Variable de entorno GOOGLE_APPLICATION_CREDENTIALS

Puedes usar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS para indicar la ubicación de un archivo JSON de credenciales. Este archivo JSON puede ser de uno de los siguientes tipos:

  • Un archivo de configuración de credenciales para Workforce Identity Federation

    Workforce Identity Federation te permite usar un proveedor de identidades (IdP) externo para autenticar y autorizar a los usuarios a acceder a los recursos. Google CloudPara obtener más información, consulta Federación de identidades de la fuerza de trabajo en la documentación de Gestión de Identidades y Accesos (IAM).

  • Un archivo de configuración de credenciales para la federación de identidades de cargas de trabajo

    Workload Identity Federation te permite usar un proveedor de identidades externo para autenticar y autorizar cargas de trabajo para que accedan a recursos deGoogle Cloud . Para obtener más información, consulta el artículo sobre autenticación mediante bibliotecas de cliente, la CLI de gcloud o Terraform en la documentación de Gestión de Identidades y Accesos (IAM).

  • Una clave de cuenta de servicio

    Las claves de cuentas de servicio suponen un riesgo para la seguridad, por lo que no se recomiendan. A diferencia de otros tipos de archivos de credenciales, los agentes perniciosos pueden usar las claves de cuenta de servicio vulneradas sin necesidad de información adicional. Para obtener más información, consulta las prácticas recomendadas para usar y gestionar las claves de cuentas de servicio.

Un archivo de credenciales creado con el comando gcloud auth application-default login

Puedes proporcionar credenciales a ADC ejecutando el comando gcloud auth application-default login. Este comando crea un archivo JSON que contiene las credenciales que proporciones (ya sea de tu cuenta de usuario o de la suplantación de una cuenta de servicio) y lo coloca en una ubicación conocida de tu sistema de archivos. La ubicación depende de tu sistema operativo:

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

Las credenciales que proporcionas a las credenciales predeterminadas de la aplicación mediante la CLI de gcloud son distintas de tus credenciales de gcloud, que son las que usa la CLI de gcloud para autenticarse en Google Cloud. Para obtener más información sobre estos dos conjuntos de credenciales, consulta Configuración de autenticación de la CLI de gcloud y configuración de ADC .

De forma predeterminada, los tokens de acceso generados a partir de un archivo ADC local creado con credenciales de usuario incluyen el ámbito de toda la nube https://www.googleapis.com/auth/cloud-platform. Para especificar los alcances de forma explícita, usa la marca –-scopes con el comando gcloud auth application-default login.

Para añadir permisos de servicios que no sean de Google Cloud, como Google Drive, crea un ID de cliente de OAuth y proporciónalo al comando gcloud auth application-default login mediante la marca –-client-id-file, especificando tus permisos con la marca -–scopes.

La cuenta de servicio adjunta

Muchos Google Cloud servicios te permiten adjuntar una cuenta de servicio que se puede usar para proporcionar credenciales para acceder a las APIs Google Cloud . Si ADC no encuentra credenciales que pueda usar en la variable de entorno GOOGLE_APPLICATION_CREDENTIALS o en la ubicación conocida de las credenciales de ADC locales, utiliza el servidor de metadatos para obtener las credenciales del servicio en el que se ejecuta el código.

Usar las credenciales de la cuenta de servicio adjunta es el método preferido para encontrar credenciales en un entorno de producción en Google Cloud. Para usar la cuenta de servicio adjunta, sigue estos pasos:

  1. Crea una cuenta de servicio gestionada por el usuario.
  2. Concede a esa cuenta de servicio los roles de IAM con privilegios mínimos posibles.
  3. Asocia la cuenta de servicio al recurso en el que se ejecuta tu código.

Para obtener ayuda sobre cómo crear una cuenta de servicio, consulta el artículo Crear y gestionar cuentas de servicio. Para obtener ayuda sobre cómo adjuntar una cuenta de servicio, consulta el artículo Adjuntar una cuenta de servicio a un recurso. Si necesitas ayuda para determinar los roles de gestión de identidades y accesos necesarios para tu cuenta de servicio, consulta el artículo Elegir roles predefinidos.

Siguientes pasos