Para acceder a Google Cloud, normalmente tendrás que autorizar la CLI de Google Cloud. En esta página se muestran las opciones de autorización disponibles y se explica cómo gestionar las cuentas que usas para la autorización. Si usas una instancia de Compute Engine o Cloud Shell, no es necesario que autorices la interfaz de línea de comandos gcloud.
Tipos de cuentas
Para conceder autorización a la CLI de gcloud para acceder aGoogle Cloud, puedes usar una cuenta de usuario o una cuenta de servicio.
Una cuenta de usuario es una cuenta que permite a los usuarios finales autenticarse en tu aplicación. Google Cloud En la mayoría de los casos prácticos, sobre todo si se usa gcloud CLI de forma interactiva, lo más recomendable es usar una cuenta de usuario.
Una cuenta de servicio es una cuenta asociada a tu proyecto deGoogle Cloud y no a un usuario específico. Google Cloud Puedes usar la cuenta de servicio integrada que está disponible al usar funciones de Cloud Run, App Engine, Compute Engine o Google Kubernetes Engine. Se recomienda usar una cuenta de servicio para ejecutar scripts de la CLI de gcloud en varios equipos.
Elige un tipo de autorización
Debes autorizar a Google Cloud CLI para que gestione los recursos. 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 la CLI de gcloud desde la línea de comandos o si escribes secuencias de comandos con la CLI de gcloud para usarlas en una sola máquina. |
Cuenta de servicio | Se recomienda si vas a instalar y configurar la CLI de gcloud como parte de un proceso de despliegue de máquinas en producción o para usarla en instancias de máquinas virtuales de Compute Engine en las que todos los usuarios tengan acceso a root . |
Para obtener más información sobre la autenticación y Google Cloud, consulta el artículo Descripción general sobre la autenticación.
Autorizar con una cuenta de usuario
En esta sección se describe cómo autorizar con una cuenta de usuario.
Autenticar 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 de configuración habituales. |
gcloud auth login
|
Solo autoriza el acceso. |
Durante la autorización, estos comandos obtienen las credenciales de la cuenta deGoogle Cloud y las almacenan en el sistema local. La cuenta especificada se convierte en la cuenta activa de tu configuración. La CLI de gcloud usa las credenciales almacenadas para acceder aGoogle Cloud. Puedes tener tantas cuentas como quieras con credenciales almacenadas para una sola instalación de la CLI de gcloud, pero solo una cuenta puede estar activa a la vez.
Run gcloud init (Ejecutar gcloud init)
gcloud init
autoriza el acceso y realiza
otros pasos de configuración habituales. gcloud init
usa un flujo de autorización basado en la Web para autenticar la cuenta de usuario y conceder permisos de acceso.
Para autorizar el acceso y realizar otros pasos de configuración habituales, sigue estos pasos:
Ejecuta
gcloud init
:gcloud init
También puedes evitar que el comando abra automáticamente un navegador web:
gcloud init --console-only
Usar la marca
--console-only
es útil si ejecutas el comando en un sistema remoto conssh
y no tienes acceso a un navegador en ese sistema. Después, debes abrir manualmente la URL proporcionada en un navegador de tu sistema local para completar el proceso de autorización.Sigue el flujo de autorización basado en el navegador para autenticar la cuenta y conceder permisos de acceso.
Para obtener más información sobre gcloud init
, consulta el artículo Inicializar gcloud CLI.
Ejecuta gcloud auth login
Al ejecutar gcloud auth login
, solo se autoriza la cuenta de usuario.
Para autorizar el acceso sin realizar otros pasos de configuración, usa una de las siguientes opciones.
Si quieres autorizar la CLI de gcloud en un ordenador con un navegador, sigue estos pasos.
Autoriza la CLI de gcloud:
gcloud auth login
Sigue el flujo de autorización basado en el navegador para autenticar la cuenta y conceder permisos de acceso.
Si quieres autorizar la CLI de gcloud en un ordenador que no tiene navegador y puedes instalar la CLI de gcloud en otro ordenador con navegador, usa la marca
--no-browser
.Autoriza la CLI de gcloud:
gcloud auth login --no-browser
Copia el comando largo que empieza por
gcloud auth login --remote-bootstrap="
.Pega y ejecuta este comando en la línea de comandos de otro equipo de confianza que tenga instaladas localmente tanto un navegador web como la versión 372.0 o posterior de la herramienta de línea de comandos gcloud.
Copia la URL larga que genera la máquina con el navegador web.
Vuelve a pegar la URL larga en la primera máquina, en la petición "Enter the output of the above command" (Introduce la salida del comando anterior) y pulsa Intro para completar la autorización.
Si quieres autorizar la interfaz de línea de comandos gcloud en un equipo que no tiene navegador y no puedes instalar la interfaz de línea de comandos gcloud en otro equipo con navegador, usa la marca
--no-launch-browser
. La marca--no-launch-browser
impide que el comando abra automáticamente un navegador web.Autoriza la CLI de gcloud:
gcloud auth login --no-launch-browser
Copia la URL larga que empieza por
https://accounts.google.com/o/oauth2/auth...
Pega esta URL en el navegador de otro ordenador de confianza que tenga un navegador web.
Copia el código de autorización de la máquina con el navegador web.
Pega el código de autorización en la primera máquina cuando se te pida que introduzcas el código de verificación y pulsa Intro para completar la autorización.
Si ya tienes un token de acceso, usa uno de los siguientes métodos para pasarlo a la CLI de gcloud:
- Almacena el token de acceso en un archivo y define su ruta mediante la marca --access-token-file.
- Guarda el token de acceso en un archivo y define su ruta en la propiedad auth/access_token_file.
- Define la variable de entorno
CLOUDSDK_AUTH_ACCESS_TOKEN
con el valor del token de acceso.
Autenticación con Workforce Identity Federation
En esta sección se describe cómo iniciar sesión en gcloud CLI con Workforce Identity Federation.
Inicio de sesión basado en navegador de la CLI de gcloud
Para iniciar sesión en la CLI de gcloud mediante un flujo de inicio de sesión basado en navegador, haz lo siguiente:
Crea un archivo de configuración de inicio de sesión.
Para crear el archivo de configuración de inicio de sesión, ejecuta el siguiente comando. También puedes activar el archivo como predeterminado para gcloud CLI añadiendo la marca
--activate
. Después, puedes ejecutargcloud auth login
sin especificar la ruta del archivo de configuración cada vez.gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/PROVIDER_ID \ --output-file=LOGIN_CONFIG_FILE_PATH
Haz los cambios siguientes:
WORKFORCE_POOL_ID
: el ID del grupo de trabajadoresPROVIDER_ID
: el ID del proveedorLOGIN_CONFIG_FILE_PATH
: la ruta a un archivo de configuración que especifiques (por ejemplo,login.json
El archivo contiene los endpoints que usa la CLI de gcloud para habilitar el flujo de autenticación basado en navegador y definir la audiencia en el IdP que se configuró en el proveedor del grupo de identidades de Workforce. 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/WORKFORCE_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", }
gcloud auth login
use este archivo de configuración automáticamente, puedes anularlo ejecutandogcloud config unset auth/login_config_file
.Inicia sesión mediante la autenticación basada en navegador.
Para autenticarte mediante la autenticación de inicio de sesión basada en navegador, puedes usar uno de los siguientes métodos:
-
Si usaste la marca
--activate
al crear el archivo de configuración o si activaste el archivo de configuración congcloud config set auth/login_config_file
, la CLI de gcloud usará el archivo de configuración automáticamente:gcloud auth login
-
Para iniciar sesión especificando la ubicación del archivo de configuración, ejecuta el siguiente comando:
gcloud auth login --login-config=LOGIN_CONFIG_FILE_PATH
-
Para usar una variable de entorno para especificar la ubicación del archivo de configuración, asigna a
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
la ruta de configuración.
-
Para dejar de usar el archivo de configuración de inicio de sesión, haz lo siguiente:
-
Si usaste la marca
--activate
al crear el archivo de configuración o si activaste el archivo de configuración congcloud config set auth/login_config_file
, debes ejecutar el siguiente comando para desactivarlo:gcloud config unset auth/login_config_file
-
Borra la variable de entorno
CLOUDSDK_AUTH_LOGIN_CONFIG_FILE
si está definida.
Inicio de sesión sin interfaz gráfica de usuario de la CLI de gcloud
Para iniciar sesión en gcloud CLI mediante un flujo sin interfaz gráfica, haz lo siguiente:
OIDC
Inicia la sesión de un usuario en tu aplicación 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.
Guarda el token de OIDC devuelto por el IdP en una ubicación segura de tu ordenador local.
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"
Haz los cambios siguientes:
WORKFORCE_POOL_ID
: el ID del grupo de trabajadoresPROVIDER_ID
: el ID del proveedorPATH_TO_OIDC_TOKEN
: la ruta al archivo de credenciales del proveedor de identidades de OIDCWORKFORCE_POOL_USER_PROJECT
: el número de proyecto asociado al proyecto de usuario de grupos de trabajadores
La cuenta principal debe tener el permiso serviceusage.services.use
en este proyecto.
Cuando ejecutes el comando, se generará un archivo de configuración de proveedor de identidades 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
Inicia la sesión de un usuario en tu aplicación de proveedor de identidades y obtén la aserción SAML.
Para obtener información sobre cómo obtener la aserción SAML de tu IdP, consulta la documentación de SAML de tu IdP.
Guarda la respuesta SAML devuelta por el proveedor de identidades en una ubicación segura de tu máquina local y, a continuación, almacena la ruta de la siguiente manera:
SAML_ASSERTION_PATH=SAML_ASSERTION_PATH
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"
Haz los cambios siguientes:
WORKFORCE_PROVIDER_ID
: el ID del proveedor de la plantilla que has creado anteriormente en esta guía.WORKFORCE_POOL_ID
: el ID del grupo de Workforce que has creado anteriormente en esta guía.SAML_ASSERTION_PATH
: la ruta del archivo de aserción SAML.PROJECT_ID
: el ID del proyecto
El archivo de configuración que se genera tiene un aspecto 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 iniciar sesión en gcloud
mediante el intercambio de tokens, ejecuta el siguiente comando:
gcloud auth login --cred-file="config.json"
gcloud
y, a continuación, intercambia de forma transparente tus credenciales del proveedor de identidades por tokens de acceso gcloud
temporales Google Cloud , lo que te permite hacer otras llamadas a Google Cloud.
El resultado debería ser similar al siguiente:
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 la cuenta activa, ejecuta el siguiente comando:
gcloud auth list
Autorizar 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 suplantar la identidad de la cuenta de servicio, un archivo de configuración de credenciales para federación de identidades de cargas de trabajo o una clave de cuenta de servicio.
Autorizar una cuenta de servicio mediante la suplantación de identidad de una cuenta de servicio
Para autorizar a gcloud CLI a usar credenciales de cuentas de servicio suplantadas, haz lo siguiente:
En la Google Cloud consola, ve a la página Cuentas de servicio.
Elige una cuenta o crea una haciendo clic en Crear cuenta de servicio.
-
Para obtener el permiso que necesitas para suplantar la identidad de una cuenta de servicio, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
) en la cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene el permiso
iam.serviceAccounts.getAccessToken
, que es necesario para suplantar la identidad de una cuenta de servicio.También puedes obtener este permiso con roles personalizados u otros roles predefinidos.
Autoriza gcloud CLI con tu identidad de usuario ejecutando
gcloud auth login
.Para configurar gcloud CLI de forma que use la identidad y el acceso proporcionados por una cuenta de servicio de forma predeterminada, usa el comando de configuración de gcloud CLI:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Para dejar de usar las credenciales de la cuenta de servicio suplantada con la CLI de gcloud de forma predeterminada, anula la marca con el comando de configuración de la CLI de gcloud:
gcloud config unset auth/impersonate_service_account
Autorizar una cuenta de servicio mediante la federación de identidades de cargas de trabajo
Para autorizar la CLI de gcloud con una cuenta de servicio mediante credenciales externas de la federación de identidades de carga de trabajo, haz lo siguiente:
En la Google Cloud consola, ve a la página Cuentas de servicio.
Elige una cuenta o crea una haciendo clic en Crear cuenta de servicio.
Crea un archivo de configuración de credenciales para la federación de identidades de cargas de trabajo siguiendo las instrucciones de tu proveedor de identidades compatible.
Para activar tu cuenta de servicio, ejecuta
gcloud auth login
con la marca--cred-file
:gcloud auth login --cred-file=CONFIGURATION_FILE
Sustituye CONFIGURATION_FILE por la ruta de acceso a un archivo de configuración de credenciales de la federación de identidades de cargas de trabajo.
Autorizar una cuenta de servicio mediante una clave de cuenta de servicio
Para autorizar la CLI de gcloud con una cuenta de servicio mediante una clave de cuenta de servicio, haz lo siguiente:
En la Google Cloud consola, ve a la página Cuentas de servicio.
Elige una cuenta o crea una haciendo clic en Crear cuenta de servicio.
Para crear claves de cuentas de servicio, consulta las instrucciones de IAM para crear una clave de cuenta de servicio.
Para activar tu cuenta de servicio, ejecuta
gcloud auth login
con la marca--cred-file
:gcloud auth login --cred-file=KEY_FILE
Sustituye KEY_FILE por la ruta a un archivo de clave de cuenta de servicio.
Mostrar cuentas
Para ver las cuentas cuyas credenciales se almacenan en el sistema local, ejecuta gcloud auth list
:
gcloud auth list
La CLI de gcloud muestra las cuentas y cuál 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
donde [ACCOUNT]
es la dirección de correo completa de la cuenta.
También puedes cambiar de cuenta creando una configuración independiente que especifique la cuenta diferente y alternando entre configuraciones:
gcloud config configurations activate CONFIGURATION
Si quieres cambiar la cuenta que usa la CLI de gcloud en cada invocación, anula la cuenta activa con la marca --account
.
Definir la duración de la sesión autorizada
Como administrador, puedes controlar durante cuánto tiempo se permite acceder a distintos tipos de usuarios a la CLI de gcloud sin necesidad de volver a autenticarse. Por ejemplo, puedes obligar a los usuarios con privilegios superiores a que vuelvan a autenticarse con más frecuencia que los usuarios normales.
Para obtener más información, consulta el artículo Configurar la duración de las sesiones de los servicios de Google Cloud .
Revocar las credenciales de una cuenta
Puedes revocar las credenciales cuando quieras denegar el acceso a la CLI de gcloud a una cuenta concreta. No es necesario revocar las credenciales para cambiar de cuenta.
Para revocar las credenciales, ejecuta gcloud auth revoke
:
gcloud auth revoke ACCOUNT
Para revocar el acceso de la CLI de gcloud en todos los ordenadores, quita la CLI de gcloud de la lista de aplicaciones que tienen acceso a tu cuenta.
Trabajar con archivos de credenciales
Buscar tus archivos de credenciales
Para encontrar la ubicación de los archivos de credenciales, ejecuta el siguiente comando:
gcloud info
gcloud info
La CLI de gcloud muestra 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]
Configurar credenciales predeterminadas de la aplicación
La CLI de gcloud permite gestionar las 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 las ADC, ejecuta el siguiente comando:
gcloud auth application-default login
gcloud auth application-default login
La CLI de gcloud no usa estas credenciales. Para ver más formas de configurar las credenciales predeterminadas de la aplicación, consulta Configura credenciales predeterminadas de la aplicación.
unset GOOGLE_APPLICATION_CREDENTIALS
gcloud config unset auth/impersonate_service_account
gcloud auth application-default login
Siguientes pasos
- Para obtener más información sobre la autenticación y Google Cloud, consulta el artículo Descripción general sobre la autenticación.
- Para obtener más información sobre cómo personalizar gcloud CLI, consulta las propiedades de gcloud CLI.
- Para obtener más información sobre cómo gestionar conjuntos de propiedades con nombre de la CLI de gcloud, consulta Configuraciones de la CLI de gcloud.