Concedere l'accesso alle singole porte di Cloud Workstations

Puoi utilizzare le condizioni IAM per concedere l'accesso a singole porte della workstation. Questa funzionalità è utile per condividere l'accesso limitato a singole porte della workstation. Ad esempio, puoi utilizzare le condizioni IAM per concedere l'accesso a un server demo in esecuzione su una porta della workstation.

Cloud Workstations supporta l'attributo destination.port Condizioni IAM.

Per ulteriori informazioni sulle condizioni IAM, consulta quanto segue:

Prima di iniziare

Prima di poter concedere l'accesso alle singole porte della workstation, devi disporre del ruolo Amministratore policy Cloud Workstations (roles/workstations.policyAdmin) sulla workstation.

Controllare i ruoli IAM sulla workstation

Assicurati di disporre dei ruoli Utente Cloud Workstations (roles/workstations.user) e Amministratore policy Cloud Workstations (roles/workstations.policyAdmin) sulla workstation. In caso contrario, chiedi all'amministratore di Cloud Workstations della tua organizzazione di concederti questi ruoli sulla workstation.

Avvia un server demo nella workstation

Avvia e connettiti alle workstation utilizzando la guida Avvia workstation. Esegui il comando seguente sulla workstation per avviare un server demo su una porta della workstation.

python3 -m http.server WORKSTATIONS_PORT

Sostituisci quanto segue:

  • WORKSTATIONS_PORT: la porta su cui il server demo ascolterà. Ad esempio, usa 8081.

Aggiorna la policy IAM condizionale della workstation

Per concedere l'accesso a una porta della workstation, puoi utilizzare la console Google Cloud o il comando gcloud CLI iam policies.

Console

Per concedere l'accesso condizionale alla workstation:

  1. Nella console Google Cloud , vai alla pagina Cloud Workstations > Workstation.

    Vai a Workstation

  2. Trova la tua workstation, fai clic sul menu delle opzioni more_vertAltro e seleziona Aggiungi utenti.

    Aggiungere utenti e modificare le autorizzazioni dalla pagina **Workstation**

  3. Per concedere l'accesso condizionale, inserisci l'email dell'entità. Ad esempio, 222larabrown@gmail.com.

  4. Assicurati che sia selezionato Utente Cloud Workstations come ruolo.

  5. Aggiorna la condizione IAM per concedere l'accesso specifico alla porta:

    1. Fai clic su Aggiungi condizione IAM.

    2. Specifica un titolo come Porta WORKSTATIONS_PORT.

    3. Nella scheda Editor condizioni, inserisci la seguente condizione:

    destination.port == WORKSTATIONS_PORT
    

    Editor delle condizioni IAM con condizione per la porta di destinazione 8081

    1. Fai clic su Salva per finalizzare la concessione dell'accesso condizionale alla porta specifica all'entità.

gcloud

  1. Recupera il criterio IAM della workstation utilizzando il comando gcloud CLI workstations get-iam-policy. Questo comando restituisce il criterio al file: /tmp/WORKSTATIONS_NAME.yaml. Se il file esiste, verrà sovrascritto.

    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
    

    Sostituisci quanto segue:

    • WORKSTATIONS_NAME: il nome della workstation.
    • WORKSTATIONS_CONFIG_NAME: il nome della configurazione della workstation.
    • WORKSTATIONS_CLUSTER_NAME: il nome del cluster di workstation.
    • LOCATION: il nome della regione del cluster di workstation.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto Cloud Workstations che contiene la workstation.

    Il formato YAML del criterio viene scaricato in /tmp/WORKSTATIONS_NAME.yaml:

    bindings:
    - members:
      - user:222larabrown@gmail.com
      role: roles/workstations.user
    etag: BwYdnV9Eg7Y=
    version: 1
    
  2. Per concedere l'accesso condizionale a un'entità, aggiungi la seguente espressione condizionale evidenziata al file delle norme che hai scaricato nel passaggio precedente.

    Non modificare l'etag. Assicurati che la versione sia specificata come 3, poiché questa norma include il campo condition.

    Ad esempio:

    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
    

    Sostituisci quanto segue:

    • YOUR_ID: il tuo ID di accesso. Ad esempio, 222larabrown@gmail.com.
    • PRINCIPAL: l'entità di cui vuoi condividere l'accesso alla porta WORKSTATIONS_PORT della workstation. Ad esempio: baklavainthebalkans@gmail.com.
    • WORKSTATIONS_PORT: la porta della workstation su cui il server demo è in ascolto.
  3. Imposta il criterio IAM della workstation utilizzando il 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
    

    Sostituisci quanto segue:

    • WORKSTATIONS_NAME: il nome della workstation.
    • WORKSTATIONS_CONFIG_NAME: il nome della configurazione della workstation.
    • WORKSTATIONS_CLUSTER_NAME: il nome del cluster di workstation.
    • LOCATION: il nome della regione del cluster di workstation.
    • WORKSTATIONS_PROJECT_ID: l'ID del progetto Cloud Workstations contenente la workstation.

Dopo l'aggiornamento della policy IAM della workstation, il principal potrà accedere alla porta specificata della workstation.

Condividere l'URL della workstation

L'entità potrà accedere alla porta specificata con il seguente URL della workstation:

https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev

I segnaposto rappresentano quanto segue:

  • WORKSTATIONS_PORT: la porta su cui il server demo è in ascolto.
  • WORKSTATIONS_NAME: il nome della workstation.
  • WORKSTATIONS_CLUSTER_NAME: l'identificatore del cluster generato in modo casuale.
  • cloudworkstations.dev: il nome di dominio predefinito per una workstation.

L'entità non potrà accedere ad altre porte della workstation a cui non ha accesso.