Crea una instancia con acceso a credenciales de usuario

En esta página, se describe cómo crear una instancia de Vertex AI Workbench que acceda a los servicios y las APIs de Google Cloud a través de tus credenciales de usuario.

Las credenciales de usuario son las credenciales asociadas a tu Cuenta de Google. Tus credenciales de usuario determinan a qué APIs y servicios de Google Cloud tiene acceso tu Cuenta de Google.

De forma predeterminada, cuando ejecutas código en una instancia de Vertex AI Workbench, esta puede acceder a los servicios y las APIs de Google Cloud con las credenciales asociadas con la cuenta de servicio de tu instancia. Esto significa que tu instancia tiene el mismo acceso a Google Cloud que la cuenta de servicio.

En esta página, se describe cómo crear y configurar una instancia para que tenga el mismo acceso a Google Cloud que tus credenciales de usuario.

Descripción general

Vertex AI Workbench no admite directamente el acceso con credenciales del usuario, pero puedes configurar una instancia para que tenga acceso a los servicios y las APIs de Google Cloud basado en credenciales del usuario.

En esta página, se describe cómo configurar y autenticar una instancia basada en credenciales de usuario con estos pasos:

  1. Prepara una cuenta de servicio con permisos limitados. Esta cuenta de servicio no podrá acceder a Google Cloud, excepto por el acceso específico que se requiere para que funcione la instancia.

  2. Crea una instancia con las siguientes especificaciones:

    • Acceso de un solo usuario. Esto limita el acceso a JupyterLab solo al usuario que especifiques.

    • Acceso SSH desactivado: El acceso SSH a tu instancia se administra a través de Acceso al SO de forma predeterminada. Si desactivas el acceso SSH, se evita el acceso de los usuarios que podrían tener acceso SSH a tu VM subyacente de Compute Engine.

    • Pertenece a tu cuenta de servicio con permisos limitados. De forma predeterminada, una instancia nueva es propiedad de una cuenta de servicio y puede acceder a cualquier servicio y API de Google Cloud a los que tenga acceso la cuenta de servicio. Especificar tu cuenta de servicio con permisos limitados evita el acceso inesperado a los servicios y las APIs de Google Cloud, de modo que puedas configurar el acceso que controlan tus credenciales de usuario.

  3. Autentica la instancia con tus credenciales de usuario. Después de que se ejecuta la instancia, proporcionas tus credenciales de usuario a las credenciales predeterminadas de la aplicación (ADC). ADC autentica tus credenciales de usuario en los servicios y las APIs de Google Cloud. Esto le brinda a tu instancia de Vertex AI Workbench el mismo acceso a Google Cloud que tus credenciales de usuario.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

Roles obligatorios

Para asegurarte de que tu cuenta de usuario tenga los permisos necesarios para crear una instancia de Vertex AI Workbench, pídele a tu administrador que otorgue a tu cuenta de usuario el rol de IAM Ejecutor de notebooks (roles/notebooks.runner) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar a tu cuenta de usuario los permisos necesarios a través de roles personalizados o de otros roles predefinidos.

Prepara una cuenta de servicio

Una instancia de Vertex AI Workbench requiere una cuenta de servicio para crear una instancia de VM de Compute Engine que aloje el servidor de JupyterLab. Esta cuenta de servicio también administra las actividades de registro requeridas.

Debes preparar una cuenta de servicio con solo los siguientes permisos:

  • logging.logEntries.create
  • logging.logEntries.route
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.monitoredResourceDescriptors.get
  • monitoring.monitoredResourceDescriptors.list
  • monitoring.timeSeries.create

Para crear una cuenta de servicio, consulta Crea cuentas de servicio.

Para modificar una cuenta de servicio existente, consulta Cómo enumerar y editar cuentas de servicio.

Crea una instancia de usuario único

Puedes crear una instancia de Vertex AI Workbench con la consola de Google Cloud o Google Cloud CLI.

Console

Para crear una instancia de Vertex AI Workbench, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias.

    Ir a Instancias

  2. Haz clic en  Crear nuevo.

  3. En el cuadro de diálogo Instancia nueva, haz clic en Opciones avanzadas.

  4. En el diálogo Crear instancia, en la sección Detalles, proporciona la siguiente información para tu instancia nueva:

    • Nombre: Proporciona un nombre para la instancia nueva. El nombre debe comenzar con una letra seguida de un máximo de 62 letras minúsculas, números o guiones (-), y no puede terminar en un guion.
    • Región y Zona: Selecciona una región y una zona para la instancia nueva. Para obtener el mejor rendimiento de red, selecciona la región que se encuentra más cerca de tu ubicación geográfica. Consulta las ubicaciones de Vertex AI Workbench disponibles.
  5. Para desactivar el acceso SSH, haz lo siguiente:

    1. En la sección Entorno, en Metadatos, haz clic en  Agregar metadatos.

    2. En Clave 1, ingresa disable-ssh.

    3. En Valor 1, ingresa true.

  6. En la sección IAM y seguridad, selecciona Usuario único y, luego, en el campo Correo electrónico del usuario, ingresa la cuenta de usuario a la que deseas otorgar acceso. Si el usuario especificado no es el creador de la instancia, debes otorgarle al usuario el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio de la instancia.

  7. Desmarca Usar la cuenta de servicio predeterminada de Compute Engine y, luego, ingresa la dirección de correo electrónico de la cuenta de servicio que preparaste antes en esta guía. Si aún no preparaste una cuenta de servicio, consulta Cómo preparar una cuenta de servicio.

  8. Completa el resto del diálogo de creación de la instancia y, luego, haz clic en Crear.

    Vertex AI Workbench crea una instancia y la inicia de forma automática. Cuando la instancia está lista para usarse, Vertex AI Workbench activa un vínculo Abrir JupyterLab.

gcloud

Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:

  • INSTANCE_NAME: el nombre de tu instancia de Vertex AI Workbench. Debe comenzar con una letra seguida de un máximo de 62 letras minúsculas, números o guiones (-) y no puede terminar con un guion.
  • PROJECT_ID: el ID de tu proyecto
  • LOCATION: Es la zona en la que deseas que se ubique la instancia.
  • VM_IMAGE_PROJECT: el ID del proyecto de Google Cloud al que pertenece la imagen de VM, en el siguiente formato: projects/IMAGE_PROJECT_ID
  • VM_IMAGE_NAME: es el nombre completo de la imagen. para encontrar el nombre de imagen de una versión específica, consulta Encuentra la versión específica
  • MACHINE_TYPE: el tipo de máquina de la VM de tu instancia
  • METADATA: Son metadatos personalizados que se aplicarán a esta instancia. Por ejemplo, para inhabilitar SSH, puedes usar la etiqueta de metadatos disable-ssh en el formato: "--metadata=disable-ssh=true"
  • SERVICE_ACCOUNT: La dirección de correo electrónico de la cuenta de servicio que se usará para la instancia
  • OWNER: Es la dirección de correo electrónico de la cuenta del único usuario que puede acceder a la instancia. Solo se admite un usuario.

Ejecuta el siguiente comando:

Linux, macOS o Cloud Shell

gcloud workbench instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --location=LOCATION \
    --vm-image-project=VM_IMAGE_PROJECT \
    --vm-image-name=VM_IMAGE_NAME \
    --machine-type=MACHINE_TYPE \
    --metadata=METADATA \
    --service-account-email=SERVICE_ACCOUNT
    --instance-owners=OWNER

Windows (PowerShell)

gcloud workbench instances create INSTANCE_NAME `
    --project=PROJECT_ID `
    --location=LOCATION `
    --vm-image-project=VM_IMAGE_PROJECT `
    --vm-image-name=VM_IMAGE_NAME `
    --machine-type=MACHINE_TYPE `
    --metadata=METADATA `
    --service-account-email=SERVICE_ACCOUNT
    --instance-owners=OWNER

Windows (cmd.exe)

gcloud workbench instances create INSTANCE_NAME ^
    --project=PROJECT_ID ^
    --location=LOCATION ^
    --vm-image-project=VM_IMAGE_PROJECT ^
    --vm-image-name=VM_IMAGE_NAME ^
    --machine-type=MACHINE_TYPE ^
    --metadata=METADATA ^
    --service-account-email=SERVICE_ACCOUNT
    --instance-owners=OWNER

Si deseas obtener más información sobre el comando para crear una instancia desde la línea de comandos, consulta la documentación de gcloud CLI.

Vertex AI Workbench crea una instancia y la inicia de forma automática. Cuando la instancia está lista para usarse, Vertex AI Workbench activa un vínculo Abrir JupyterLab en la consola de Google Cloud.

Autentica la instancia con tus credenciales de usuario

Vertex AI Workbench puede usar credenciales predeterminadas de la aplicación (ADC) para autenticar tus credenciales de usuario en los servicios y las APIs de Google Cloud. En esta sección, se describe cómo proporcionar tus credenciales de usuario al ADC.

Los pasos de autenticación dependen de si usas una Cuenta de Google o credenciales de terceros.

Cuenta de Google

Después de poder acceder a JupyterLab en tu instancia, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias.

    Ir a Instancias

  2. Junto al nombre de la instancia, haz clic en Abrir JupyterLab.

  3. En JupyterLab, selecciona File > New > Terminal.

  4. En la ventana de la terminal, ejecuta lo siguiente:

    gcloud auth login
  5. Ingresa Y.

  6. Sigue las instrucciones para copiar un código de verificación y, luego, ingresarlo en la terminal.

Credenciales de terceros

Si creaste una instancia con credenciales de terceros, haz lo siguiente después de que el proxy de JupyterLab esté disponible:

  1. Abre JupyterLab con el proxy federado de JupyterLab.

  2. En JupyterLab, selecciona File > New > Terminal.

  3. Crea un archivo de credenciales de la federación de Workforce Identity con acceso sin cabeza.

  4. En la ventana de la terminal, ejecuta lo siguiente:

    gcloud auth login --cred-file="CREDENTIAL_FILE"

    Reemplaza CREDENTIAL_FILE por la ruta de acceso y el nombre del archivo de credenciales que creaste.

  5. Sigue las instrucciones para realizar la autenticación a través del portal de autenticación de terceros.

  6. Usa el siguiente comando para confirmar que se puede acceder a tus credenciales a través de tu instancia:

    gcloud auth list

Limitaciones

  • Migrar una instancia de notebooks administrados a instancias de Vertex AI Workbench no conserva el acceso basado en credenciales del usuario de la instancia original. Debes configurar la instancia migrada y autenticar las credenciales del usuario como se describe en esta guía.