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

En este documento, se describe cómo autenticar y configurar el acceso a la API dentro de una estación de trabajo, lo que incluye cómo acceder con la IU de Workstations para autenticar la CLI de gcloud y proporcionar credenciales a las credenciales predeterminadas de la aplicación (ADC).

Autentícate 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.

Para autenticar la CLI de gcloud y proporcionar credenciales de usuario a las credenciales predeterminadas de la aplicación (ADC), elige una de las siguientes opciones:

Acceso de usuarios con la IU de Workstations

Cuando accedes a través de la consola de Google Cloud , se autentica automáticamente la CLI degcloud y se proporcionan tus credenciales de usuario a las credenciales predeterminadas de la aplicación (ADC) en el entorno de tu estación de trabajo.

Habilita el acceso a la IU en tus recursos de estación de trabajo

Antes de poder usar esta función, asegúrate de que la configuración de tu estación de trabajo y el clúster estén configurados para admitir el acceso a la IU:

  1. En la consola de Google Cloud , ve a la sección Configuración del entorno de la configuración de tu estación de trabajo. En Autenticación, selecciona la casilla de verificación Habilitar el envío de credenciales (o establece enable_pushing_credentials: true en la API).
  2. Establece la URL base de la consola en el clúster en tu extremo de la consola de Google Cloud (por ejemplo, https://console.cloud.google.com/) con la CLI de gcloud:
    gcloud beta workstations clusters update CLUSTER_NAME \
        --region=REGION \
        --console-base-url="https://console.cloud.google.com/"

Accede desde tu estación de trabajo

Para acceder a tu estación de trabajo y autenticarla, sigue estos pasos:

  1. En el editor de Code OSS para Cloud Workstations, haz clic en Accede a tu estación de trabajo. Se abrirá una ventana de acceso a la consola de Google Cloud .
  2. En la consola de Google Cloud , verifica los detalles de tu estación de trabajo (como el ID de la estación de trabajo) y los detalles de la cuenta y, luego, haz clic en Continuar.
  3. Haz clic en Confirmar para completar el acceso.
  4. Después de que aparezca el mensaje de confirmación, cierra la ventana del navegador y regresa al editor. Tus credenciales ahora están disponibles para la CLI de gcloud y las credenciales predeterminadas de la aplicación (ADC) en el entorno de tu estación de trabajo.

Tu sesión de acceso vence después de una hora. Cuando tu sesión esté por vencer, el botón de acceso en el editor de Code OSS para Cloud Workstations mostrará EMAIL (Google) - Expiring soon (donde EMAIL es tu dirección de correo electrónico) o Workstation sign in expiring soon. Para actualizar tus credenciales, haz clic en el botón y sigue las indicaciones en la consola de Google Cloud .

Accede con la CLI de gcloud

Si el acceso a la IU no está habilitado para tu configuración o clúster, puedes acceder de forma manual con la CLI de gcloud desde una terminal dentro de tu estación de trabajo:

  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 usas el editor base de Cloud Workstations, abre una terminal seleccionando Terminal > Nueva terminal o presionando Control + Mayúsculas +`.
  2. Autentícate 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 usas tu estación de trabajo 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 de usuario de Cloud Workstations en esa estación de trabajo:

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

Conéctate a la estación de trabajo en tu navegador

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

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

  1. Genera un token de acceso con el método de API generateAccessToken.
  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 tu sesión actual de la 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 actuar en nombre de la cuenta de servicio especificada en la configuración de tu estación de trabajo, puedes especificar el campo Permisos de la cuenta de servicio.

        gcloud workstations configs create CONFIG \
            --cluster=CLUSTER \
            --region=REGION \
            --project=PROJECT \
            --service-account=SERVICE_ACCOUNT \
            --service-account-scopes=https://www.googleapis.com/auth/cloud-platform
      
Cuando se especifica, 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.

¿Qué sigue?