Otorga acceso a puertos individuales de Cloud Workstations

Puedes usar las condiciones de IAM para otorgar acceso a puertos de estaciones de trabajo individuales. Esto es útil para compartir acceso limitado a puertos individuales de la estación de trabajo. Por ejemplo, puedes usar las condiciones de IAM para otorgar acceso a un servidor de demostración que se ejecuta en un puerto de estación de trabajo.

Cloud Workstations admite el atributo Condiciones de IAM de destination.port.

Para obtener más información sobre las Condiciones de IAM, consulta los siguientes temas:

Antes de comenzar

Antes de poder otorgar acceso a puertos de estaciones de trabajo individuales, debes tener el rol de Administración de políticas de Cloud Workstations (roles/workstations.policyAdmin) en la estación de trabajo.

Verifica los roles de IAM en la estación de trabajo

Asegúrate de tener los roles de usuario de Cloud Workstations (roles/workstations.user) y administrador de políticas de Cloud Workstations (roles/workstations.policyAdmin) en la estación de trabajo. Si no es así, pídele al administrador de Cloud Workstations de tu organización que te otorgue esos roles en la estación de trabajo.

Cómo iniciar un servidor de demostración en la estación de trabajo

Inicia y conéctate a tus estaciones de trabajo con la guía Cómo iniciar una estación de trabajo. Ejecuta el siguiente comando en la estación de trabajo para iniciar un servidor de demostración en un puerto de la estación de trabajo.

python3 -m http.server WORKSTATIONS_PORT

Reemplaza lo siguiente:

  • WORKSTATIONS_PORT: Es el puerto en el que escuchará el servidor de demostración. Por ejemplo, usa 8081.

Actualiza la política de IAM condicional de la estación de trabajo

Para otorgar acceso a un puerto de estación de trabajo, puedes usar la consola de Google Cloud o el comando iam policies de la CLI de gcloud.

Console

Para otorgar acceso condicional a la estación de trabajo, sigue estos pasos:

  1. En la consola de Google Cloud, navega a la página Cloud Workstations > Estaciones de trabajo.

    Ir a Estaciones de trabajo

  2. Busca tu estación de trabajo y, luego, haz clic en el menú de opciones more_vertMás y selecciona Agregar usuarios.

    Agrega usuarios y edita permisos desde la página **Workstation**

  3. Para otorgar acceso condicional, ingresa el correo electrónico de la principal. Por ejemplo, 222larabrown@gmail.com.

  4. Asegúrate de que el rol Usuario de estaciones de trabajo en la nube esté seleccionado.

  5. Actualiza la condición de IAM para otorgar acceso específico al puerto:

    1. Haz clic en Agregar condición de IAM.

    2. Especifica un título, como Puerto 8081.

    3. En la pestaña Editor de condiciones, ingresa la siguiente condición:

    destination.port == WORKSTATIONS_PORT
    

    Editor de condiciones de IAM con la condición de puerto de destino 8081

    1. Haz clic en Guardar para finalizar el otorgamiento de acceso condicional al puerto específico al principal.

gcloud

  1. Obtén la política de IAM de la estación de trabajo con el comando workstations get-iam-policy de la CLI de gcloud. Este comando genera la política en el archivo /tmp/WORKSTATIONS_NAME.yaml. Si el archivo ya existe, se reemplazará.

    gcloud workstations get-iam-policy WORKSTATIONS_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --config=WORKSTATIONS_CONFIG_NAME \
      --region=LOCATION \
      --project=WORKSTATIONS_PROJECT_ID \
      > /tmp/WORKSTATIONS_NAME.yaml
    

    Reemplaza lo siguiente:

    • WORKSTATIONS_NAME: Es el nombre de la estación de trabajo.
    • WORKSTATIONS_CONFIG_NAME: Es el nombre de la configuración de la estación de trabajo.
    • WORKSTATIONS_CLUSTER_NAME: Es el nombre del clúster de estaciones de trabajo.
    • LOCATION: Es el nombre de la región de tu clúster de estaciones de trabajo.
    • WORKSTATIONS_PROJECT_ID: El ID del proyecto de Cloud Workstations que contiene tu estación de trabajo.
  2. Para otorgar acceso condicional a un principal, actualiza el archivo de política de IAM de la estación de trabajo que descargaste en el paso anterior en /tmp/WORKSTATIONS_NAME.yaml.

    Por ejemplo:

    bindings:
    - members:
      - user:YOUR_ID
        role: roles/workstations.user
    - condition:
        expression: destination.port == WORKSTATIONS_PORT
        title: Port WORKSTATIONS_PORT
      members:
      - user:PRINCIPAL
      role: roles/workstations.user
    etag: BwYlui8uSXo=
    version: 3
    

    Reemplaza lo siguiente:

    • YOUR_ID: Tu propio ID de acceso Por ejemplo, 222larabrown@gmail.com
    • PRINCIPAL: El principal con el que deseas compartir el acceso al puerto WORKSTATIONS_PORT de la estación de trabajo. Por ejemplo, baklavainthebalkans@gmail.com.
    • WORKSTATIONS_PORT: Es el puerto de la estación de trabajo en el que escucha el servidor de demostración.
  3. Establece la política de IAM de la estación de trabajo con el comando workstations set-iam-policy de la CLI de gcloud.

    gcloud workstations set-iam-policy WORKSTATIONS_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --config=WORKSTATIONS_CONFIG_NAME \
      --region=LOCATION \
      --project=WORKSTATIONS_PROJECT_ID \
      /tmp/WORKSTATIONS_NAME.yaml
    

    Reemplaza lo siguiente:

    • WORKSTATIONS_NAME: Es el nombre de la estación de trabajo.
    • WORKSTATIONS_CONFIG_NAME: Es el nombre de la configuración de la estación de trabajo.
    • WORKSTATIONS_CLUSTER_NAME: Es el nombre del clúster de estaciones de trabajo.
    • LOCATION: Es el nombre de la región de tu clúster de estaciones de trabajo.
    • WORKSTATIONS_PROJECT_ID: El ID del proyecto de Cloud Workstations que contiene tu estación de trabajo.

Después de que se actualice la política de IAM de la estación de trabajo, el principal poderá acceder al puerto especificado de la estación de trabajo.

Cómo compartir la URL de la estación de trabajo

El principal podrá acceder al puerto especificado con la siguiente URL de la estación de trabajo:

https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev

Los marcadores de posición representan lo siguiente:

  • WORKSTATIONS_PORT: Es el puerto en el que escucha el servidor de demostración.
  • WORKSTATIONS_NAME: El nombre de la estación de trabajo.
  • WORKSTATIONS_CLUSTER_NAME: Es el identificador del clúster generado de forma aleatoria.
  • cloudworkstations.dev: Es el nombre de dominio predeterminado de una estación de trabajo.

El principal no podrá acceder a otros puertos de la estación de trabajo a los que no tenga acceso.