Accorder l'accès à des ports Cloud Workstations spécifiques

Vous pouvez utiliser les conditions IAM pour accorder l'accès à des ports de station de travail individuels. Cela s'avère utile pour partager un accès limité à des ports de station de travail individuels. Par exemple, vous pouvez utiliser les conditions IAM pour accorder l'accès à un serveur de démonstration exécuté sur un port de station de travail.

Cloud Workstations est compatible avec l'attribut destination.port Conditions IAM.

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 poste de travail individuels, vous devez disposer du rôle Administrateur des règles Cloud Workstations (roles/workstations.policyAdmin) sur le poste de travail.

Vérifier les rôles IAM sur la station 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 une station de travail

Démarrez et connectez-vous à vos stations de travail à l'aide du guide Démarrer la 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 d'une station de travail

Pour accorder l'accès à un port de station 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 à la station de travail:

  1. Dans la console Google Cloud, accédez à la page Cloud Workstations > Workstations.

    Accéder aux stations de travail

  2. Recherchez votre station de travail, puis cliquez sur le menu d'options more_vertPlus, puis sélectionnez Ajouter des utilisateurs.

    Ajouter des utilisateurs et modifier les autorisations depuis la page "Station de travail"

  3. Pour accorder un accès conditionnel, saisissez l'adresse e-mail du principal. Par exemple, 222larabrown@gmail.com.

  4. Assurez-vous que le rôle Utilisateur des stations de travail cloud est sélectionné.

  5. Mettez à jour la condition IAM pour accorder un accès spécifique au port:

    1. Cliquez sur Ajouter une condition IAM.

    2. Spécifiez un titre, par exemple Port 8081.

    3. Dans l'onglet Éditeur de conditions, saisissez la condition suivante:

    destination.port == WORKSTATIONS_PORT
    

    Éditeur de conditions IAM avec condition de port de destination 8081

    1. Cliquez sur Enregistrer pour finaliser l'octroi d'un accès conditionnel au port spécifique au principal.

gcloud

  1. Obtenez la stratégie IAM de la station de travail à l'aide de la commande workstations get-iam-policy de la CLI gcloud. Cette commande génère la règle dans le fichier /tmp/WORKSTATIONS_NAME.yaml. Si le fichier existe déjà, 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 de la station de travail.
    • WORKSTATIONS_CONFIG_NAME: nom de la configuration de la station de travail.
    • WORKSTATIONS_CLUSTER_NAME: nom du cluster de stations de travail.
    • LOCATION: nom de la région de votre cluster de stations de travail.
    • WORKSTATIONS_PROJECT_ID: ID du projet "Cloud Workstations" contenant votre station de travail.
  2. Pour accorder un accès conditionnel à un principal, mettez à jour le fichier de stratégie IAM de la station de travail téléchargée à l'étape précédente à l'adresse : /tmp/WORKSTATIONS_NAME.yaml.

    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 de la station de travail sur lequel le serveur de démonstration écoute.
  3. Définissez la stratégie IAM de la station de travail à l'aide de la commande workstations set-iam-policy de la CLI 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
    

    Remplacez les éléments suivants :

    • WORKSTATIONS_NAME: nom de la station de travail.
    • WORKSTATIONS_CONFIG_NAME: nom de la configuration de la station de travail.
    • WORKSTATIONS_CLUSTER_NAME: nom du cluster de stations de travail.
    • LOCATION: nom de la région de votre cluster de stations de travail.
    • WORKSTATIONS_PROJECT_ID: ID du projet Cloud Workstations contenant votre station de travail.

Une fois la stratégie IAM de la station de travail mise à jour, l'entité principale 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 la station 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 écoute.
  • WORKSTATIONS_NAME: nom de la station 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'une station de travail.

Le principal ne pourra pas accéder aux autres ports de la station de travail auxquels il n'a pas accès.