Autoriza gcloud CLI

Para acceder a Google Cloud, por lo general, deberás autorizar a Google Cloud CLI. En esta página, se muestran las opciones de autorización disponibles y cómo administrar las cuentas que usas para la autorización. Si usas una instancia de Compute Engine o Cloud Shell, no es necesario que autorices gcloud CLI.

Tipos de cuenta

Si deseas otorgar autorización a gcloud CLI para acceder a Google Cloud, puedes usar una cuenta de usuario o una cuenta de servicio.

Una cuenta de usuario es una cuenta de Google Cloud que permite a los usuarios finales autenticarse en tu aplicación. Para la mayoría de los casos de uso, en especial de forma interactiva con gcloud CLId, se recomienda usar una cuenta de usuario.

Una cuenta de servicio es una cuenta de Google Cloud asociada a tu proyecto de Google Cloud y no a un usuario específico. Puedes usar la cuenta de servicio integrada disponible cuando usas Cloud Functions, App Engine, Compute Engine o Google Kubernetes Engine. Se recomienda una cuenta de servicio para ejecutar secuencias de comandos de gcloud CLI en varias máquinas.

Elige un tipo de autorización

Debes autorizar a Google Cloud CLI para que administre los recursos de Google Cloud. Tanto Google Cloud CLI como Google Cloud usan OAuth2 para la autenticación y autorización.

Elige uno de los siguientes tipos de autorización:

Tipo Descripción
Cuenta de usuario Se recomienda si usas gcloud CLI desde la línea de comandos o si escribes secuencias de comandos con gcloud CLI para usarla en una sola máquina.
Cuenta de servicio Se recomienda si instalas y configuras gcloud CLI como parte de un proceso de implementación de máquinas en producción o para usarla en instancias de máquina virtual de Compute Engine en las que todos los usuarios tienen acceso a root.

Para obtener más información sobre la autenticación y Google Cloud, consulta Descripción general de la autenticación.

Autoriza una cuenta de usuario

Usa los siguientes comandos de gcloud CLI para autorizar el acceso con una cuenta de usuario:

Comando Descripción
gcloud init Autoriza el acceso y realiza otros pasos de configuración comunes.
gcloud auth login Autoriza solo el acceso.

Durante la autorización, estos comandos obtienen credenciales de cuenta de Google Cloud y las almacenan en el sistema local. La cuenta especificada se convertirá en la cuenta activa en tu configuración. La gcloud CLI usa las credenciales almacenadas para acceder a Google Cloud. Puedes tener cualquier cantidad de cuentas con credenciales almacenadas para una sola instalación de gcloud CLI, pero solo una cuenta está activa a la vez.

Ejecuta gcloud init

gcloud init autoriza el acceso y realiza otros pasos de configuración comunes. gcloud init usa un flujo de autorización basado en la Web para autenticar la cuenta de usuario y otorgar permisos de acceso.

Para autorizar el acceso y realizar otros pasos de configuración comunes:

  1. Ejecuta gcloud init:

    gcloud init
    

    O, para evitar que el comando abra automáticamente un navegador web, el siguiente:

    gcloud init --console-only
    

    Usar la marca --console-only es útil si ejecutas el comando desde un sistema remoto mediante ssh y no tienes acceso a un navegador en ese sistema. Debes, entonces, abrir manualmente la URL proporcionada en un navegador en tu sistema local para completar el proceso de autorización.

  2. Sigue el flujo de autorización basado en el navegador para autenticar la cuenta y otorgar permisos de acceso.

Para obtener más información sobre gcloud init, consulta Inicializa la CLI de gcloud.

Ejecuta gcloud auth login

Ejecutar gcloud auth login solo autoriza la cuenta de usuario. Para autorizar el acceso sin realizar otros pasos de configuración, usa una de las siguientes opciones.

  • Si deseas autorizar la gcloud CLI en una máquina con un navegador, sigue estos pasos.

    1. Autoriza gcloud CLI:

      gcloud auth login
      
    2. Sigue el flujo de autorización basado en el navegador para autenticar la cuenta y otorgar permisos de acceso.

  • Si deseas autorizar la gcloud CLI en una máquina que no tiene un navegador y puedes instalar la gcloud CLI en otra máquina con un navegador, usa la marca --no-browser.

    1. Autoriza gcloud CLI:

      gcloud auth login --no-browser
      
    2. Copia el comando largo que comienza con gcloud auth login --remote-bootstrap=".

    3. Pega y ejecuta este comando en la línea de comandos de una máquina diferente y confiable que tenga instalaciones locales de un navegador web y la herramienta de gcloud CLI versión 372.0 o posterior.

    4. Copia el resultado de la URL larga de la máquina con el navegador web.

    5. Pega la URL larga en la primera máquina debajo del mensaje “Enter the output of the above command” y presiona Intro para completar la autorización.

  • Si deseas autorizar gcloud CLI en una máquina que no tiene navegador y no puedes instalar gcloud CLI en otra máquina con un navegador, usa la marca --no-launch-browser. La marca --no-launch-browser evita que el comando abra un navegador web automáticamente.

    1. Autoriza gcloud CLI:

      gcloud auth login --no-launch-browser
      
    2. Copia la URL larga que comienza con https://accounts.google.com/o/oauth2/auth....

    3. Pega esta URL en el navegador de otra máquina de confianza que tenga un navegador web.

    4. Copia el código de autorización de la máquina con el navegador web.

    5. Pega el código de autorización de nuevo en la primera máquina cuando aparezca el mensaje “Enter verification code” (Ingresar código de verificación) y presiona Intro para completar la autorización.

  • Si ya tienes un token de acceso, usa uno de los siguientes métodos para pasarlo a gcloud CLI:

    • Almacena el token de acceso en un archivo y establece su ruta a través de la marca --access-token-file.
    • Almacena el token de acceso en un archivo y configura su ruta de acceso en la propiedad auth/access_token_file.
    • Configura la variable de entorno CLOUDSDK_AUTH_ACCESS_TOKEN con el valor del token de acceso.

Autoriza una cuenta de servicio

El comando gcloud auth login puede autorizar el acceso con una cuenta de servicio mediante un archivo de credenciales almacenado en tu sistema de archivos local. Puede ser una credencial de usuario con permiso para usar la identidad de la cuenta de servicio, un archivo de configuración de credenciales para la federación de identidades para cargas de trabajo o una clave de cuenta de servicio.

Autoriza una cuenta de servicio con la suplantación de cuentas de servicio

A fin de autorizar a gcloud CLI para que use credenciales de cuenta de servicio suplantadas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.

  3. Para garantizar que la cuenta principal tenga el permiso necesario para usar la identidad de otra cuenta de servicio, pídele a tu administrador que le otorgue a la cuenta principal el rol de IAM Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator) en la cuenta de servicio. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

    Este rol predefinido contiene el permiso iam.serviceAccounts.getAccessToken, que se requiere para usar la identidad de otra cuenta de servicio.

    Es posible que tu administrador también pueda otorgar este permiso a la cuenta principal con roles personalizados o con otros roles predefinidos.

  4. Ejecuta gcloud auth login para autorizar gcloud CLI con tu identidad de usuario.

  5. Para configurar gcloud CLI a fin de que use la identidad y el acceso que proporciona una cuenta de servicio de forma predeterminada, usa el comando de configuración de la CLI de gcloud:

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
    
  6. Para dejar de usar las credenciales de la cuenta de servicio suplantadas con la gcloud CLI de forma predeterminada, desactiva la marca con el gcloud CLI config command:

    gcloud config unset auth/impersonate_service_account
    

Autoriza una cuenta de servicio mediante la federación de identidades para cargas de trabajo

Para autorizar gcloud CLI con una cuenta de servicio que use credenciales externas de la federación de identidades para cargas de trabajo, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.

  3. Crea un archivo de configuración de credenciales para la federación de identidades para cargas de trabajo siguiendo las instrucciones de tu proveedor de identidad compatible.

  4. Para activar la cuenta de servicio, ejecuta gcloud auth login con la marca --cred-file:

    gcloud auth login --cred-file=CONFIGURATION_FILE
    

    Reemplaza CONFIGURATION_FILE por la ruta de acceso a un archivo de configuración de credenciales para la federación de identidades para cargas de trabajo.

Autoriza una cuenta de servicio con una clave de cuenta de servicio

Para autorizar gcloud CLI con una cuenta de servicio mediante una clave de cuenta de servicio, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.

  3. Para crear claves de cuenta de servicio, consulta las instrucciones de IAM sobre cómo crear una clave de cuenta de servicio.

  4. Para activar la cuenta de servicio, ejecuta gcloud auth login con la marca --cred-file:

    gcloud auth login --cred-file=KEY_FILE
    

    Reemplaza KEY_FILE por la ruta de acceso al archivo de claves de la cuenta de servicio.

Mostrar cuentas

Para mostrar una lista de las cuentas cuyas credenciales están almacenadas en el sistema local, ejecuta gcloud auth list:

gcloud auth list

Gcloud CLI enumera las cuentas y muestra qué cuenta está activa:

Credentialed accounts:
 - user-1@gmail.com (active)
 - user-2@gmail.com

Cambiar la cuenta activa

Para cambiar la cuenta activa, ejecuta gcloud config set:

gcloud config set account ACCOUNT

En el ejemplo anterior, [ACCOUNT] es la dirección de correo electrónico completa de la cuenta.

También puedes cambiar de cuenta creando una configuración distinta que especifique la cuenta diferente y alternando entre configuraciones:

gcloud config configurations activate CONFIGURATION

Si quieres cambiar la cuenta que usa gcloud CLI por invocación, anula la cuenta activa con la marca --account.

Establecer la duración autorizada de la sesión

Como administrador, puedes controlar por cuánto tiempo los diferentes usuarios pueden acceder a la gcloud CLId sin tener que volver a autenticarse. Por ejemplo, puedes obligar a los usuarios con privilegios elevados a que vuelvan a autenticarse con más frecuencia que los usuarios normales.

Si deseas obtener más información, consulta Establece la duración de las sesiones para los servicios de Google Cloud.

Revocar las credenciales de una cuenta

Puedes revocar credenciales cuando desees inhabilitar el acceso de la gcloud CLI a una cuenta en particular. No es necesario que revoques las credenciales para alternar entre las cuentas.

Para revocar credenciales, ejecuta: gcloud auth revoke:

gcloud auth revoke ACCOUNT

Para revocar todo el acceso a gcloud CLI en todas las máquinas, quita gcloud CLI de la lista de apps que tienen acceso a tu cuenta.

Cómo trabajar con archivos de credenciales

Cómo encontrar tus archivos de credenciales

Para encontrar la ubicación de tus archivos de credenciales, ejecuta gcloud info:

gcloud info

Gcloud CLI imprime información sobre la instalación. Los archivos de credenciales se almacenan en el directorio de configuración del usuario:

User Config Directory: [/home/USERNAME/.config/gcloud]

Configura credenciales predeterminadas de la aplicación

Gcloud CLI proporciona compatibilidad para administrar las credenciales predeterminadas de la aplicación (ADC) con el grupo de comandos gcloud auth application-default. Si quieres que las credenciales de usuario estén disponibles para ADC, ejecuta gcloud auth application-default login:

gcloud auth application-default login

Estas credenciales no se usan en gcloud CLI. Para ver más formas de configurar ADC, consulta Configura las credenciales predeterminadas de la aplicación.

unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login

¿Qué sigue?