Autoriza gcloud CLI

Para acceder a Google Cloud, por lo general, deberás autorizar Google Cloud CLI. Esta página muestra opciones de autorización disponibles y te indica 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

Para 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 les permite a los usuarios finales autenticarse en tu aplicación. Para la mayoría de los casos de uso, especialmente con el uso interactivo de gcloud CLI, se recomienda usar una cuenta de usuario.

Una cuenta de servicio es una cuenta de Google Cloud asociada con tu proyecto de Google Cloud y no con un usuario específico. Puedes usar la cuenta de servicio integrada disponible cuando usas funciones de Cloud Run, 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 Google Cloud CLI para administrar los recursos de Google Cloud. Tanto la CLI de Google Cloud como Google Cloud usan OAuth2 para la autenticación y la 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 usarlas en una sola máquina.
Cuenta de servicio Se recomienda si instalarás y configurarás gcloud CLI como parte de un proceso de implementación de máquinas en producción o para usar con las 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 la descripción general de la autenticación.

Autoriza el acceso con una cuenta de usuario

En esta sección, se describe cómo realizar la autorización con una cuenta de usuario.

Autenticación con una Cuenta de Google

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 comunes de configuración.
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 convierte en la cuenta activa en tu configuración. 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 comunes de configuración. 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 comunes de configuración, sigue estos pasos:

  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 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 quieres autorizar gcloud CLI en una máquina que no tiene un navegador y puedes instalar 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 versión 372.0 o posterior de la herramienta de gcloud CLI.

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

    5. Vuelve a pegar 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 quieres autorizar gcloud CLI en una máquina que no tiene un 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 automáticamente un navegador web.

    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. Vuelve a pegar el código de autorización en la primera máquina en la solicitud "Enter verification code" 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 de acceso a través de la marca --access-token-file.
    • Almacena el token de acceso en un archivo y establece su ruta de acceso en la propiedad auth/access_token_file.
    • Establece la variable de entorno CLOUDSDK_AUTH_ACCESS_TOKEN en el valor del token de acceso.

Autenticación con la federación de identidades del personal

En esta sección, se describe cómo acceder a gcloud CLI con la federación de identidades de personal.

Acceso con el navegador de la gcloud CLI

Para acceder a la gcloud CLI con un flujo de acceso basado en el navegador, haz lo siguiente:

  1. Crea un archivo de configuración de acceso.

    Para crear el archivo de configuración de acceso, ejecuta el siguiente comando. De manera opcional, puedes activar el archivo como predeterminado para gcloud CLI mediante la marca --activate.

    gcloud iam workforce-pools create-login-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --output-file=LOGIN_CONFIG_FILE

    Reemplaza lo siguiente:

    • WORKFORCE_POOL_ID: el ID del grupo de la identidad de personal
    • PROVIDER_ID: El ID del proveedor del grupo de identidades de personal
    • LOGIN_CONFIG_FILE: Una ruta de acceso al archivo de configuración de acceso que especifiques, por ejemplo, login.json.

    El archivo contiene los extremos que usa la gcloud CLI para habilitar el flujo de autenticación basado en el navegador y establecer el público en el IdP que se configuró en el proveedor del grupo de identidad de personal. El archivo no contiene información confidencial.

    El resultado es similar al siguiente:

    {
      "type": "external_account_authorized_user_login_config",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
      "auth_url": "https://auth.cloud.google/authorize",
      "token_url": "https://sts.googleapis.com/v1/oauthtoken",
      "token_info_url": "https://sts.googleapis.com/v1/introspect",
    }

  2. Accede con la autenticación basada en el navegador.

    Para autenticar con la autenticación de acceso basada en el navegador, puedes usar uno de los siguientes métodos:

    • Si usaste la marca --activate cuando creaste el archivo de configuración o si activaste el archivo de configuración con gcloud config set auth/login_config_file, gcloud CLI usa el archivo de configuración de forma automática:

      gcloud auth login
    • Para acceder mediante la especificación de la ubicación del archivo de configuración, ejecuta el siguiente comando:

      gcloud auth login --login-config=LOGIN_CONFIG_FILE
    • Para usar una variable de entorno a fin de especificar la ubicación del archivo de configuración, establece CLOUDSDK_AUTH_LOGIN_CONFIG_FILE en la ruta de configuración.

Para dejar de usar el archivo de configuración de acceso, haz lo siguiente:

  • Si usaste la marca --activate cuando creaste el archivo de configuración o si activaste el archivo de configuración con gcloud config set auth/login_config_file, debes ejecutar el siguiente comando para anularlo:

    gcloud config unset auth/login_config_file
  • Borra la variable de entorno CLOUDSDK_AUTH_LOGIN_CONFIG_FILE, si está configurada.

Acceso sin interfaz gráfica de la CLI de gcloud

Para acceder a la gcloud CLI con un flujo sin interfaz gráfica, haz lo siguiente:

OIDC

  1. Haz que un usuario acceda a tu app de IdP y obtén el token de OIDC.

    Para obtener información sobre cómo obtener el token, consulta la documentación de OIDC de tu IdP.

  2. Guarda el token de OIDC que muestra el IdP en una ubicación segura de tu máquina local.

  3. Ejecuta el siguiente comando para generar un archivo de configuración:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:id_token" \
        --credential-source-file="PATH_TO_OIDC_ID_TOKEN" \
        --workforce-pool-user-project="WORKFORCE_POOL_USER_PROJECT" \
        --output-file="config.json"
    

Reemplaza lo siguiente:

  • WORKFORCE_POOL_ID: el ID del grupo de personal
  • PROVIDER_ID: el ID del proveedor
  • PATH_TO_OIDC_TOKEN: la ruta de acceso al archivo de credenciales del IdP de OIDC
  • WORKFORCE_POOL_USER_PROJECT: el número de proyecto asociado con el proyecto de usuario de grupos de personal.

La principal debe tener el permiso serviceusage.services.use en este proyecto.

Cuando ejecutas el comando, se produce un archivo de configuración del IdP de OIDC con un formato similar al siguiente:

{
  "type": "external_account",
  "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID",
  "subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
  "token_url": "https://sts.googleapis.com/v1/token",
  "workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
  "credential_source": {
    "file": "PATH_TO_OIDC_CREDENTIALS_FILE"
  }
}

SAML

  1. Haz que un usuario acceda a tu app de IdP y obtén la aserción de SAML.

    Para obtener información sobre cómo obtener la aserción de SAML de tu IdP, consulta la documentación de SAML de tu IdP.

  2. Guarda la respuesta SAML que muestra el IdP en una ubicación segura de tu máquina local y, luego, almacena la ruta de acceso de la siguiente manera:

    SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
    
  3. Para generar un archivo de configuración, ejecuta el siguiente comando:

    gcloud iam workforce-pools create-cred-config \
        locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
        --subject-token-type="urn:ietf:params:oauth:token-type:saml2" \
        --credential-source-file="SAML_ASSERTION_PATH"  \
        --workforce-pool-user-project="PROJECT_ID"  \
        --output-file="config.json"
    

    Reemplaza lo siguiente:

    • WORKFORCE_PROVIDER_ID: el ID del proveedor de personal que creaste antes en esta guía.
    • WORKFORCE_POOL_ID: el ID del grupo de personal que creaste antes en esta guía.
    • SAML_ASSERTION_PATH: la ruta de acceso del archivo de aserción de SAML.
    • PROJECT_ID: El ID del proyecto

    El archivo de configuración que se genera es similar al siguiente:

    {
      "type": "external_account",
      "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
      "subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
      "token_url": "https://sts.googleapis.com/v1/token",
      "credential_source": {
        "file": "SAML_ASSERTION_PATH"
      },
      "workforce_pool_user_project": "PROJECT_ID"
    }
    

Para acceder a gcloud mediante el intercambio de tokens, ejecuta el siguiente comando:

gcloud auth login --cred-file="config.json"

Luego, gcloud intercambia de manera transparente tus credenciales de IdP por tokens de acceso temporales de Google Cloud, lo que te permite realizar otras llamadas de gcloud a Google Cloud.

El resultado es similar a este:

Authenticated with external account user credentials for:
[principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].

Para enumerar las cuentas con credenciales y tu cuenta activa actual, ejecuta el siguiente comando:

gcloud auth list

Autoriza con 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. Esta credencial puede ser una credencial de usuario con permiso para robar 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.

Cómo autorizar una cuenta de servicio con la identidad temporal como cuenta de servicio

Para autorizar a gcloud CLI a usar 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 a proyectos, carpetas y organizaciones.

    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 para usar 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 cuenta de servicio con identidad de otra cuenta con gcloud CLI de forma predeterminada, anula la marca con el comando de configuración de la CLI de gcloud:

    gcloud config unset auth/impersonate_service_account
    

Autoriza una cuenta de servicio con la federación de Workload Identity

Para autorizar gcloud CLI con una cuenta de servicio que use credenciales externas de la federación de identidades de 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 Workload Identity siguiendo las instrucciones para tu proveedor de identidad compatible.

  4. Para activar tu 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 Workload Identity.

Cómo autorizar 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 para crear una clave de cuenta de servicio.

  4. Para activar tu 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 a un archivo de claves de 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 muestra la lista de las cuentas y qué cuenta está activa:

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

Cambia la cuenta activa

Para cambiar la cuenta activa, ejecuta gcloud config set:

gcloud config set account ACCOUNT

en el cual [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 deseas cambiar la cuenta que usa gcloud CLI por invocación, anula la cuenta activa mediante la marca --account.

Cómo establecer la duración de la sesión autorizada

Como administrador, puedes controlar durante cuánto tiempo los diferentes usuarios pueden acceder a gcloud CLI sin tener que volver a autenticarse. Por ejemplo, puedes forzar a los usuarios con privilegios elevados a volver a autenticarse con más frecuencia que los usuarios normales.

Para obtener más información, consulta Cómo configurar la duración de la sesión para los servicios de Google Cloud.

Cómo revocar credenciales de una cuenta

Puedes revocar credenciales cuando desees inhabilitar el acceso a gcloud CLI de una cuenta en particular. No necesitas revocar las credenciales para alternar entre cuentas.

Para revocar credenciales, ejecuta: gcloud auth revoke:

gcloud auth revoke ACCOUNT

Para revocar todo el acceso a gcloud CLI para 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 tu 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 admite la administración de credenciales predeterminadas de la aplicación (ADC) con el grupo de comandos gcloud auth application-default. Para que las credenciales de usuario estén disponibles para ADC, ejecuta gcloud auth application-default login:

gcloud auth application-default login

La CLI de gcloud no usa estas credenciales. Para conocer otras formas de configurar ADC, consulta Configura credenciales predeterminadas de la aplicación.

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

¿Qué sigue?