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:
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 mediantessh
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.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.
Autoriza gcloud CLI:
gcloud auth login
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
.Autoriza gcloud CLI:
gcloud auth login --no-browser
Copia el comando largo que comienza con
gcloud auth login --remote-bootstrap="
.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.
Copia el resultado de la URL larga de la máquina con el navegador web.
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.Autoriza gcloud CLI:
gcloud auth login --no-launch-browser
Copia la URL larga que comienza con
https://accounts.google.com/o/oauth2/auth...
.Pega esta URL en el navegador de otra máquina de confianza que tenga un navegador web.
Copia el código de autorización de la máquina con el navegador web.
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:
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", }
-
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 congcloud 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 congcloud 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
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.
Guarda el token de OIDC que muestra el IdP en una ubicación segura de tu máquina 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"
Reemplaza lo siguiente:
WORKFORCE_POOL_ID
: el ID del grupo de personalPROVIDER_ID
: el ID del proveedorPATH_TO_OIDC_TOKEN
: la ruta de acceso al archivo de credenciales del IdP de OIDCWORKFORCE_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
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.
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
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:
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.
-
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.
Ejecuta
gcloud auth login
para autorizar gcloud CLI con tu identidad de usuario.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
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:
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.
Crea un archivo de configuración de credenciales para la federación de Workload Identity siguiendo las instrucciones para tu proveedor de identidad compatible.
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:
En la consola de Google Cloud, ve a la página Cuentas de servicio.
Elige una cuenta existente o crea una nueva con un clic en Crear cuenta de servicio.
Para crear claves de cuenta 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
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?
- Para obtener más información sobre la autenticación y Google Cloud, consulta la descripción general de la autenticación.
- Para obtener más información sobre cómo personalizar gcloud CLI, consulta Propiedades de gcloud CLI.
- Para obtener más información sobre cómo administrar conjuntos con nombre de propiedades de gcloud CLI, consulta Configuraciones de la CLI de gcloud.