Autentica y configura el acceso a la API en una estación de trabajo

Este documento describe cómo autenticar y configurar el acceso a la API en un estación de trabajo. Para obtener información general sobre la autenticación de Google Cloud, consulta el descripción general de la autenticación.

Autenticar como usuario con Google Cloud CLI

Después de iniciar Cloud Workstations, puedes acceder a los servicios de Google Cloud y a la API con tus cuentas de usuario a través de la CLI de gcloud.

  1. Abre una terminal en tu estación de trabajo. La forma de abrir una ventana de terminal depende del IDE que uses. Por ejemplo, si estás usando el editor base de Cloud Workstations, abre un selecciona Terminal > New Terminal o presiona Control + Mayúsculas +`.
  2. Realiza la autenticación con el siguiente comando:
    gcloud auth login --no-launch-browser
  3. Sigue las instrucciones que proporciona el comando para autenticarte en Google Cloud.
  4. Especifica el ID del proyecto de Google Cloud con el siguiente comando:
    gcloud config set project PROJECT_ID
  5. Habilita las credenciales predeterminadas de la aplicación para poder llamar a los servicios de Google Cloud.
    gcloud auth application-default login
  6. Tus credenciales de la CLI de gcloud ahora se guardan y están disponibles cuando uses tu estación de trabajo en en sesiones futuras.

Emite una solicitud HTTP a una estación de trabajo

Para emitir una solicitud HTTP a una estación de trabajo, necesitas un token de acceso para una cuenta que tenga el rol Cloud Workstations User en esa estación de trabajo:

  1. Genera un token de acceso mediante generateAccessToken método de API.
  2. Agrega un encabezado HTTP llamado Authorization con el valor Bearer $TOKEN.

Cómo conectarte a la estación de trabajo en tu navegador

Cuando abres la URL de la estación de trabajo en el navegador, se realiza una autenticación automática a través de un redireccionamiento al servidor de la estación de trabajo y se recupera un token de acceso generado por el método de la API generateAccessToken. Esto redirecciona a tu estación de trabajo y establece un cookie de autenticación válida para la sesión actual de tu estación de trabajo.

Para omitir este redireccionamiento, usa el parámetro de URL _workstationAccessToken:

  1. Genera un token de acceso con el generateAccessToken método de API.
  2. Abre la URL de tu estación de trabajo en el navegador y agrega un parámetro de URL con el siguiente formato: _workstationAccessToken=TOKEN.

Esto establece una cookie de autenticación en tu navegador que permite el acceso a la sesión actual de tu estación de trabajo. Omitir el redireccionamiento puede ser útil cuando las políticas de red bloquean el acceso al servidor de la estación de trabajo o cuando se usan iframes para mostrar la estación de trabajo en otros sitios.

Usar la identidad de una cuenta de servicio

Si las políticas de seguridad de tu organización impiden que las cuentas de usuario tengan los permisos necesarios, también puedes actuar en nombre de una cuenta de servicio. Para suplantar la identidad de la cuenta de servicio especificada en la configuración de tu estación de trabajo, puedes especificar el campo alcances de la cuenta de servicio. Cuando se especifique, los usuarios de las estaciones de trabajo con esta configuración deben tener el permiso iam.serviceAccounts.actAs en la cuenta de servicio. Para obtener más información sobre cómo especificar permisos para la cuenta de servicio, consulta Permisos de acceso.

También puedes suplantar la identidad de una cuenta de servicio diferente con la propiedad impersonate_service_account de la CLI de gcloud.

  1. 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.

  2. Abre una terminal en tu estación de trabajo o navega a una que ya esté abierta.
  3. Para establecer la propiedad impersonate_service_account, ingresa el siguiente comando de la CLI de gcloud:
    gcloud config set auth/impersonate_service_account=SERVICE_ACCT_EMAIL
  4. Tus credenciales de la CLI de gcloud ahora se guardan y están disponibles cuando uses tu estación de trabajo en sesiones futuras.
  5. Para obtener más información, consulta Usa el robo de identidad de cuentas de servicio.

¿Qué sigue?