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 degcloud
iam policies
.
Console
Para otorgar acceso condicional a la estación de trabajo, sigue estos pasos:
En la consola de Google Cloud , navega a la página Cloud Workstations > Workstations.
Busca tu estación de trabajo, haz clic en el menú de opcionesmore_vertMás y selecciona Agregar usuarios.
Para otorgar acceso condicional, ingresa el correo electrónico de la principal. Por ejemplo,
222larabrown@gmail.com
.Asegúrate de que Usuario de Cloud Workstations esté seleccionado como rol.
Actualiza la condición de IAM para otorgar acceso específico al puerto:
Haz clic en Agregar condición de IAM.
Especifica un título, como Puerto WORKSTATIONS_PORT.
En la pestaña Editor de condiciones, ingresa la siguiente condición:
destination.port == WORKSTATIONS_PORT
- Haz clic en Guardar para finalizar el otorgamiento de acceso condicional al puerto específico para la principal.
gcloud
Obtén la política de IAM de la estación de trabajo con el comando
gcloud
de la CLIworkstations 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
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 campocondition
.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.
Establece la política de IAM de la estación de trabajo con el comando
workstations set-iam-policy
de la CLI degcloud
.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.