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 de estaciones de trabajo individuales. 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 destination.port de condiciones de IAM.

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

Antes de comenzar

Antes de otorgar acceso a puertos individuales de la estación de trabajo, debes tener el rol de administrador 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.

Inicia un servidor de demostración en la estación de trabajo

Inicia tus estaciones de trabajo y conéctate a ellas con la guía Launch workstation. 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 la estación de trabajo, puedes usar el comando Google Cloud de la consola o de la CLI degcloudiam policies.

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

    Ir a Estaciones de trabajo

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

    Agrega usuarios y edita permisos desde la página **Estación de trabajo**

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

  4. Asegúrate de que Usuario de Cloud Workstations esté seleccionado como rol.

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

    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 del puerto de destino 8081

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

gcloud

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

    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: Es el ID del proyecto de Cloud Workstations que contiene tu estación de trabajo.

    El formato YAML de la política se descarga en /tmp/WORKSTATIONS_NAME.yaml:

    bindings:
    - members:
      - user:222larabrown@gmail.com
      role: roles/workstations.user
    etag: BwYdnV9Eg7Y=
    version: 1
    
  2. Para otorgar acceso condicional a una principal, agrega la siguiente expresión de condición destacada al archivo de política que descargaste en el paso anterior.

    No modifiques el ETag. Asegúrate de que la versión se especifique como 3, ya que esta política incluye el campo condition.

    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: Es la principal con la 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: Es 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, la principal podrá acceder al puerto especificado de la estación de trabajo.

URL de la estación de trabajo para compartir

La 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: Es 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.

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