Conceder acceso a puertos de Cloud Workstations concretos

Puede usar las condiciones de gestión de identidades y accesos para conceder acceso a puertos de estaciones de trabajo concretos. Esto resulta útil para compartir el acceso limitado a puertos de estaciones de trabajo concretos. Por ejemplo, puedes usar las condiciones de gestión de identidades y accesos para conceder acceso a un servidor de demostración que se ejecute en un puerto de una estación de trabajo.

Cloud Workstations admite el atributo destination.port de las condiciones de IAM.

Para obtener más información sobre las condiciones de gestión de identidades y accesos, consulta lo siguiente:

Antes de empezar

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

Comprobar los roles de gestión de identidades y accesos en la estación de trabajo

Asegúrate de tener los roles 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 lo tienes, pide al administrador de Cloud Workstations de tu organización que te conceda esos roles en la estación de trabajo.

Iniciar un servidor de demostración en una estación de trabajo

Empieza a usar tus estaciones de trabajo y conéctate a ellas con la guía Iniciar 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

Haz los cambios siguientes:

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

Actualizar la política de gestión de identidades y accesos condicional de una estación de trabajo

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

Consola

Para conceder acceso condicional a la estación de trabajo, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página Cloud Workstations > Workstations.

    Ve a Puestos de trabajo.

  2. Busca tu estación de trabajo y haz clic en el menú de opciones more_vertMás. A continuación, selecciona Añadir usuarios.

    Añadir usuarios y editar permisos desde la página **Estación de trabajo**

  3. Para conceder acceso condicional, introduce el correo del 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 conceder acceso específico a un puerto:

    1. Haz clic en Añadir condición de IAM.

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

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

    destination.port == WORKSTATIONS_PORT
    

    Editor de condiciones de gestión de identidades y accesos con la condición de puerto de destino 8081

    1. Haz clic en Guardar para finalizar la concesión de acceso condicional al puerto específico a la entidad de seguridad.

gcloud

  1. Obtén la política de gestión de identidades y accesos de la estación de trabajo con el comando workstations get-iam-policy de la gcloudCLI. Este comando genera la política en el archivo /tmp/WORKSTATIONS_NAME.yaml. Si el archivo ya 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
    

    Haz los cambios siguientes:

    • WORKSTATIONS_NAME: el nombre de la estación de trabajo.
    • WORKSTATIONS_CONFIG_NAME: el nombre de la configuración de la estación de trabajo.
    • WORKSTATIONS_CLUSTER_NAME: el nombre del clúster de estaciones de trabajo.
    • LOCATION: 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.

    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 conceder acceso condicional a una entidad de seguridad, añade la expresión de condición destacada que se muestra a continuación al archivo de política que has descargado 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
    

    Haz los cambios siguientes:

    • YOUR_ID: tu propio ID de inicio de sesión. Por ejemplo, 222larabrown@gmail.com.
    • PRINCIPAL: el principal con el que quieres compartir el acceso al puerto WORKSTATIONS_PORT de la estación de trabajo. Por ejemplo, baklavainthebalkans@gmail.com.
    • WORKSTATIONS_PORT: el puerto de la estación de trabajo en el que escucha el servidor de demostración.
  3. Define la política de gestión de identidades y accesos de la estación de trabajo con el comando gcloud CLI workstations set-iam-policy.

    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
    

    Haz los cambios siguientes:

    • WORKSTATIONS_NAME: el nombre de la estación de trabajo.
    • WORKSTATIONS_CONFIG_NAME: el nombre de la configuración de la estación de trabajo.
    • WORKSTATIONS_CLUSTER_NAME: el nombre del clúster de estaciones de trabajo.
    • LOCATION: 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.

Una vez que se actualice la política de gestión de identidades y accesos de la estación de trabajo, la entidad de seguridad podrá acceder al puerto especificado de la estación de trabajo.

Compartir la URL de la estación de trabajo

El director 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: el puerto en el que escucha el servidor de demostración.
  • WORKSTATIONS_NAME: el nombre de la estación de trabajo.
  • WORKSTATIONS_CLUSTER_NAME: el identificador de clúster generado aleatoriamente.
  • cloudworkstations.dev: nombre de dominio predeterminado de una estación de trabajo.

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