Vous pouvez utiliser les conditions IAM pour accorder l'accès à des ports de stations de travail individuels. Cela s'avère utile pour partager un accès limité à des ports de postes de travail individuels. Par exemple, vous pouvez utiliser les conditions IAM pour accorder l'accès à un serveur de démonstration s'exécutant sur un port de station de travail.
Cloud Workstations est compatible avec l'attribut de conditions IAM destination.port
.
Pour en savoir plus sur les conditions IAM, consultez les pages suivantes :
Avant de commencer
Avant de pouvoir accorder l'accès à des ports de station de travail individuels, vous devez disposer du rôle Administrateur des règles Cloud Workstations (roles/workstations.policyAdmin
) sur la station de travail.
Vérifier les rôles IAM sur le poste de travail
Assurez-vous de disposer des rôles Utilisateur Cloud Workstations (roles/workstations.user
) et Administrateur des règles Cloud Workstations (roles/workstations.policyAdmin
) sur la station de travail. Si ce n'est pas le cas, demandez à l'administrateur Cloud Workstations de votre organisation de vous attribuer ces rôles sur la station de travail.
Démarrer un serveur de démonstration dans la station de travail
Démarrez vos stations de travail et connectez-vous à celles-ci à l'aide du guide Lancer une station de travail. Exécutez la commande suivante sur le poste de travail pour démarrer un serveur de démonstration sur un port de poste de travail.
python3 -m http.server WORKSTATIONS_PORT
Remplacez les éléments suivants :
WORKSTATIONS_PORT
: port sur lequel le serveur de démonstration écoutera. Par exemple, utilisez 8081.
Mettre à jour la stratégie IAM conditionnelle du poste de travail
Pour accorder l'accès à un port de poste de travail, vous pouvez utiliser la console Google Cloud ou la commande iam policies
de la CLI gcloud
.
Console
Pour accorder un accès conditionnel au poste de travail :
Dans la console Google Cloud , accédez à la page Cloud Workstations > Workstations.
Recherchez votre station de travail, puis cliquez sur le menu d'options more_vertPlus et sélectionnez Ajouter des utilisateurs.
Pour accorder un accès conditionnel, saisissez l'adresse e-mail du compte principal. Par exemple,
222larabrown@gmail.com
.Assurez-vous que Utilisateur Cloud Workstations est sélectionné comme rôle.
Mettez à jour la condition IAM pour accorder un accès spécifique aux ports :
Cliquez sur Ajouter une condition IAM.
Spécifiez un titre, tel que Port WORKSTATIONS_PORT.
Dans l'onglet Éditeur de conditions, saisissez la condition suivante :
destination.port == WORKSTATIONS_PORT
- Cliquez sur Enregistrer pour finaliser l'attribution d'un accès conditionnel au port spécifique pour le compte principal.
gcloud
Obtenez la stratégie IAM du poste de travail à l'aide de la commande CLI
gcloud
workstations get-iam-policy
. Cette commande génère la règle dans le fichier :/tmp/WORKSTATIONS_NAME.yaml
. Si le fichier existe, il sera écrasé.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
Remplacez les éléments suivants :
WORKSTATIONS_NAME
: nom du poste de travail.WORKSTATIONS_CONFIG_NAME
: nom de la configuration du poste de travail.WORKSTATIONS_CLUSTER_NAME
: nom du cluster de postes de travail.LOCATION
: nom de la région de votre cluster de postes de travail.WORKSTATIONS_PROJECT_ID
: ID du projet Cloud Workstations contenant votre poste de travail.
Le format YAML de la stratégie est téléchargé dans
/tmp/WORKSTATIONS_NAME.yaml
:bindings: - members: - user:222larabrown@gmail.com role: roles/workstations.user etag: BwYdnV9Eg7Y= version: 1
Pour accorder un accès conditionnel à un compte principal, ajoutez l'expression de condition mise en évidence ci-dessous au fichier de règles que vous avez téléchargé à l'étape précédente.
Ne modifiez pas l'etag. Assurez-vous que la version est spécifiée comme
3
, car cette stratégie inclut le champcondition
.Exemple :
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
Remplacez les éléments suivants :
YOUR_ID
: votre propre ID de connexion. Exemple :222larabrown@gmail.com
.PRINCIPAL
: compte principal avec lequel vous souhaitez partager l'accès au port WORKSTATIONS_PORT de la station de travail. Par exemple,baklavainthebalkans@gmail.com
.WORKSTATIONS_PORT
: port du poste de travail sur lequel le serveur de démonstration est à l'écoute.
Définissez la stratégie IAM du poste de travail à l'aide de la commande
gcloud
CLIworkstations 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
Remplacez les éléments suivants :
WORKSTATIONS_NAME
: nom du poste de travail.WORKSTATIONS_CONFIG_NAME
: nom de la configuration du poste de travail.WORKSTATIONS_CLUSTER_NAME
: nom du cluster de postes de travail.LOCATION
: nom de la région de votre cluster de postes de travail.WORKSTATIONS_PROJECT_ID
: ID du projet Cloud Workstations contenant votre poste de travail.
Une fois la stratégie IAM de la station de travail mise à jour, le compte principal pourra accéder au port spécifié de la station de travail.
Partager l'URL de la station de travail
Le principal pourra accéder au port spécifié avec l'URL de poste de travail suivante :
https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev
Les espaces réservés représentent les éléments suivants :
WORKSTATIONS_PORT
: port sur lequel le serveur de démonstration est à l'écoute.WORKSTATIONS_NAME
: nom du poste de travail.WORKSTATIONS_CLUSTER_NAME
: identifiant de cluster généré de manière aléatoire.cloudworkstations.dev
: nom de domaine par défaut d'un poste de travail.
Le compte principal ne pourra pas accéder aux ports du poste de travail auxquels il n'a pas accès.