Cómo funcionan las credenciales predeterminadas de la aplicación

En esta página, se describen las ubicaciones en las que las credenciales predeterminadas de la aplicación (ADC) busca credenciales. Comprende cómo funcionan las ADC puede ayudarte a comprender qué credenciales usa ADC y cómo las encuentra.

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

Para obtener información sobre cómo proporcionar credenciales a ADC, consulta Configura las credenciales predeterminadas de la aplicación.

Orden de búsqueda

ADC busca las credenciales en las siguientes ubicaciones:

  1. Variable de entorno GOOGLE_APPLICATION_CREDENTIALS
  2. Credenciales de usuario configuradas con Google Cloud CLI
  3. La cuenta de servicio adjunta, que muestra el servidor de metadatos

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

Variable de entorno GOOGLE_APPLICATION_CREDENTIALS

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

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

    La federación de identidades de personal te permite usar un proveedor de identidad (IdP) externo para autenticar y autorizar a los usuarios a acceder a los recursos de Google Cloud. Para obtener más información, consulta la federación de identidades de personal en la documentación de Identity and Access Management (IAM).

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

    La federación de identidades para cargas de trabajo te permite usar un IdP externo para autenticar y autorizar las cargas de trabajo a modo de acceder a los recursos de Google Cloud. Para obtener más información, consulta Autentica mediante bibliotecas cliente, la CLI de gcloud o Terraform en la documentación de Identity and Access Management (IAM).

  • Una clave de cuenta de servicio

    Las claves de las cuentas de servicio crean un riesgo de seguridad y no se recomiendan. A diferencia de los otros tipos de archivos de credenciales, una persona que actúa de mala fe puede usar las claves de cuenta de servicio vulneradas sin ninguna información adicional. Si deseas obtener más información, consulta Recomendaciones para usar y administrar claves de cuentas de servicio.

Credenciales de usuario proporcionadas mediante gcloud CLI

Puedes proporcionar credenciales de usuario a ADC mediante la ejecución del comando gcloud auth application-default login. Este comando coloca un archivo JSON que contiene las credenciales que proporcionas (generalmente de tu cuenta de usuario) en una ubicación conocida en tu sistema de archivos. La ubicación depende del sistema operativo:

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

Las credenciales que proporcionas a ADC mediante la CLI de gcloud son distintas de tus credenciales de gcloud, es decir, las credenciales 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 la autenticación de gcloud CLI y configuración de ADC.

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.

La cuenta de servicio adjunta

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

El uso de las credenciales de la cuenta de servicio conectada 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 administrada por el usuario.
  2. Otorga a esa cuenta de servicio los roles de IAM con privilegios mínimos posibles.
  3. Conecta la cuenta de servicio al recurso en el que se ejecuta tu código.

Para obtener ayuda con la creación de una cuenta de servicio, consulta Crea y administra cuentas de servicio. Para obtener ayuda con la conexión de una cuenta de servicio, consulta Conecta una cuenta de servicio a un recurso. A fin de obtener ayuda con la definición de los roles de IAM requeridos para tu cuenta de servicio, consulta Elige roles predefinidos.

¿Qué sigue?