Gestire OS Login in un'organizzazione

Questo documento descrive come utilizzare OS Login per gestire l'accesso alle istanze VM nella tua organizzazione.

Questo argomento riguarda le attività seguenti:

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Criterio dell'organizzazione OS Login

Puoi configurare un vincolo di OS Login nella tua organizzazione per garantire che per tutti i nuovi progetti e le istanze VM create in questi nuovi progetti sia abilitato OS Login.

Quando questo vincolo è configurato, si applicano le seguenti condizioni:

  • enable-oslogin=true è incluso nei metadati di tutti i nuovi progetti.
  • Le richieste che impostano enable-oslogin su false nei metadati dell'istanza o del progetto vengono rifiutate per le VM e i progetti nuovi ed esistenti.

Limitazioni

OS Login non è supportato nei seguenti prodotti, funzionalità e VM:
  • Cloud Data Fusion 6.1.4 e versioni precedenti
  • Cloud Composer
  • Cluster pubblici di Google Kubernetes Engine (GKE) che eseguono versioni precedenti alla 1.23.5
  • Cluster privati GKE che eseguono versioni dei pool di nodi precedenti alla 1.20.5
  • Dataproc serverless
  • VM Windows Server e SQL Server
  • VM Fedora CoreOS. Per gestire l'accesso delle istanze alle VM create utilizzando queste immagini, utilizza il sistema di accensione Fedora CoreOS

Soluzioni alternative per Cloud Data Fusion, Cloud Composer e GKE

Per utilizzare OS Login nelle organizzazioni che usano Cloud Data Fusion, Cloud Composer e GKE, puoi abilitare il vincolo di OS Login a livello di organizzazione e quindi disabilitarlo selettivamente sui progetti o sulle cartelle dei progetti interessati.

Per ulteriori informazioni sulla modifica dei criteri dell'organizzazione, vedi Creazione e modifica dei criteri.

Abilita il criterio dell'organizzazione

Per abilitare il criterio OS Login, puoi impostare il vincolo OS Login su cartelle e progetti specifici utilizzando Google Cloud CLI. Puoi anche impostare il vincolo di OS Login sull'intera organizzazione utilizzando la console Google Cloud o Google Cloud CLI.

Console

Per impostare il criterio dell'organizzazione di OS Login dalla console, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.

    Vai alla pagina Criteri dell'organizzazione

  2. Nell'elenco dei criteri, fai clic su Richiedi OS Login per visualizzare i vincoli di OS Login.
  3. Fai clic su Modifica per modificare i vincoli esistenti di OS Login.
  4. Nella pagina Modifica, seleziona Personalizza.
  5. Per abilitare l'applicazione di questo vincolo, seleziona On.
  6. Fai clic su Salva per applicare le impostazioni del vincolo.

gcloud

Per impostare il criterio dell'organizzazione di OS Login, utilizza il comando gcloud beta resource-manager org-policies enable-enforce.

  1. Trova l'ID organizzazione.

    gcloud organizations list
  2. Imposta il vincolo nella tua organizzazione. Sostituisci organization-id con il tuo ID organizzazione.

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

Puoi anche applicare il criterio dell'organizzazione OS Login a una cartella o a un progetto con i flag --folder o --project e, rispettivamente, l'ID cartella e l'ID progetto.

Per le cartelle, esegui questo comando:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --folder=folder-id

Per i progetti, esegui questo comando:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --project=project-id

Sostituisci quanto segue:

Concedi l'accesso all'istanza a utenti esterni all'organizzazione

Per impostazione predefinita, gli utenti esterni all'organizzazione non possono configurare chiavi SSH per le istanze nella tua organizzazione né ottenere l'accesso a tali istanze. In alcune situazioni, potrebbe essere necessario concedere l'accesso all'istanza agli utenti che fanno parte di un'altra organizzazione o che hanno un Account gmail.com Google consumer.

Il ruolo IAM roles/compute.osLoginExternalUser consente agli Account Google esterni di interagire con gli altri ruoli di OS Login consentendo loro di configurare i dati dell'account POSIX.

Per concedere roles/compute.osLoginExternalUser e altri ruoli di accesso alle istanze di OS Login necessari a utenti esterni all'organizzazione, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina per la selezione del progetto e dell'organizzazione.

    Vai alla pagina di selezione del progetto e dell'organizzazione

  2. Nel menu a discesa Organizzazione, seleziona la tua organizzazione.
    1. Fai clic su Tutte per visualizzare tutte le tue organizzazioni.
    2. Fai clic sul nome dell'organizzazione.
  3. Fai clic su Aggiungi per aggiungere un nuovo ruolo a un utente.
  4. Specifica il nome utente per l'utente per cui vuoi configurare l'accesso all'istanza.
  5. Fai clic su Seleziona un ruolo per specificare quali ruoli vuoi concedere agli utenti.
  6. Nell'elenco dei ruoli di Compute Engine, seleziona il ruolo Utente esterno accesso al sistema operativo Compute.
  7. Fai clic su Aggiungi per confermare che vuoi concedere all'utente il ruolo selezionato.
  8. Se non lo hai già fatto, concedi gli altri ruoli di accesso per le istanze di OS Login all'utente a livello di progetto o organizzazione.

Ora l'utente può connettersi alle istanze del tuo progetto in cui è abilitato OS Login.

Gestire l'API OS Login

A livello di organizzazione, puoi limitare l'accesso all'API OS Login impostando i controlli amministratore di Google Workspace. Per configurare i controlli dell'amministratore di Google Workspace o visualizzare le opzioni di configurazione, consulta Specificare chi utilizza Google Cloud nell'organizzazione. In qualità di amministratore di Google Workspace, puoi anche attivare o disattivare determinate funzionalità dell'API OS Login. Sono incluse le seguenti opzioni:

  • Scegli se includere il suffisso di dominio nei nomi utente generati dall'API OS Login. Ad esempio, nel dominio example.com, l'utente user@example.com avrà il nome utente user se l'impostazione per includere il suffisso di dominio non è selezionata.
  • Decidi se i membri della tua organizzazione possono gestire le chiavi SSH utilizzando l'API OS Login.
  • Limita o consenti l'accesso alle VM a utenti esterni all'organizzazione.

Per saperne di più su come attivare o disattivare le impostazioni dell'API OS Login, consulta Scegliere le impostazioni per Google Cloud.

Controlla gli eventi OS Login

In qualità di amministratore di Google Workspace, puoi utilizzare l'SDK Admin di Google Workspace per controllare le azioni eseguite con l'API OS Login. Esaminando questi eventi, puoi monitorare quando un utente aggiunge, elimina o aggiorna una chiave SSH o elimina i dati dell'account POSIX.

Puoi recuperare gli eventi di attività di controllo dell'API OS Login dall'SDK Admin di Google Workspace chiamando Activities.list() con applicationName=gcp. Per ulteriori informazioni, consulta gli eventi di attività di Google Cloud nella documentazione relativa all'API Reports dell'SDK Admin di Google Workspace.

Modificare gli account utente utilizzando l'API Directory

OS Login utilizza le impostazioni utente di Cloud Identity o Google Workspace per la connessione a un'istanza. Se sei un amministratore dell'organizzazione, puoi utilizzare l'API Directory per completare le seguenti attività per i tuoi account utente Google Workspace o Cloud Identity:

  • Modifica le impostazioni di accesso all'istanza.
  • Impostare un utente come amministratore
  • Modificare le proprietà utente come nome dell'account e email
  • Aggiungere e rimuovere chiavi SSH per un utente
  • Modifica dati dell'account POSIX
  • Modifica il nome utente a cui gli utenti si connettono all'istanza.

Gli esempi riportati di seguito mostrano come modificare o rimuovere gli account utente utilizzando l'API Directory. Per ulteriori informazioni sulle proprietà dell'account che puoi modificare, consulta la documentazione sull'API Directory.

Modificare le proprietà dell'account

Per modificare i dati dell'account POSIX di un utente o gestire le chiavi SSH dell'utente, invia una richiesta PUT al metodo directory.users.update e specifica una o più proprietà da modificare nell'account utente.

Se modifichi le proprietà posixAccounts di un utente, devi specificare i valori correnti o nuovi di username, uid e gid nella richiesta.

Se modifichi le proprietà sshPublicKeys dell'utente, devi specificare il valore key nella richiesta.

Di seguito è riportato un esempio di richiesta PUT:

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": [
  {
    "username": "USERNAME",
    "uid": "UID",
    "gid": "GID",
    "homeDirectory": "USER_HOME_PATH",
    "shell": "SHELL_PATH"
   }
  ],
 "sshPublicKeys": [
  {
    "key": "KEY_VALUE",
    "expirationTimeUsec": EXPIRATION_TIME
   }
  ],
}

Sostituisci quanto segue:

  • USER_KEY: indirizzo email principale, indirizzo email alias o ID utente univoco dell'utente.
  • USERNAME: il nome utente che Compute Engine aggiunge alla VM per l'utente. Questo valore deve essere univoco all'interno della tua organizzazione e non deve terminare con una tilde ("~") né contenere un punto (".").
  • UID: l'ID utente sulla VM per l'utente. Questa proprietà deve essere un valore compreso tra 1001 e 60000 oppure un valore compreso tra 65535 e 2147483647. Per accedere a un sistema operativo ottimizzato per i container, UID deve avere un valore compreso tra 65536 e 214748646. UID deve essere univoco all'interno della tua organizzazione.
  • GID: l'ID gruppo sulla VM a cui appartiene l'utente.
  • USER_HOME_PATH: (facoltativo) la home directory sulla VM per l'utente. Ad esempio, /home/example_username.
  • SHELL_PATH: (facoltativo) il percorso della shell predefinita per l'utente dopo la connessione all'istanza. Ad esempio, /bin/bash o /bin/sh.
  • KEY_VALUE: il valore della chiave SSH pubblica.
  • EXPIRATION_TIME: (facoltativo) il tempo di scadenza della chiave in microsecondi dall'epoca (1 secondo = 106 microsecondi).

Rimuovi proprietà account

Per cancellare i dati posixAccounts e sshPublicKeys per un utente, invia una richiesta PUT al metodo directory.users.update, impostando i campi posixAccounts e sshPublicKeys su null:

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": null,
 "sshPublicKeys": null
}

Sostituisci USER_KEY con l'indirizzo email principale, l'indirizzo email dell'alias o l'ID utente univoco dell'utente.

Usa gruppi Linux con OS Login

Gli amministratori dell'organizzazione possono utilizzare l'API Cloud Identity Groups per configurare gruppi Linux supplementari per gli utenti OS Login creando e gestendo gruppi POSIX. OS Login collega i gruppi POSIX con gruppi Linux supplementari nelle VM dell'organizzazione, in modo che tu possa gestire le autorizzazioni degli utenti nelle tue VM.

Gestire l'appartenenza degli utenti ai gruppi Linux

Per creare un gruppo POSIX, consulta Creazione e aggiornamento di gruppi POSIX.

Per aggiungere utenti a un gruppo, vedi Aggiungere o invitare utenti in un gruppo.

Gli aggiornamenti all'abbonamento entrano in vigore entro 10 minuti. Le modifiche ai gruppi sono riflesse in tutte le VM appena create. La propagazione degli aggiornamenti del gruppo POSIX a tutte le VM in esecuzione può richiedere fino a sei ore. Gli utenti potrebbero dover uscire o utilizzare il comando newgrp per osservare le modifiche al gruppo.

Limiti di frequenza per gruppi Linux con OS Login

I gruppi Linux con OS Login utilizzano la quota oslogin.googleapis.com/metadata_server_groups_requests. Per impostazione predefinita, il limite quota è di 60 richieste al minuto, per progetto per una determinata regione.

Se hai bisogno di un limite di frequenza superiore, puoi richiedere una quota aggiuntiva nella pagina Quote della console Google Cloud.

Vai a Quote

Usa la federazione delle identità per la forza lavoro con OS Login

Le organizzazioni che usano la federazione delle identità per la forza lavoro possono utilizzare OS Login per gestire l'accesso alle proprie VM. Quando la federazione delle identità per la forza lavoro è abilitata per un'organizzazione, OS Login utilizza l'autenticazione basata su certificati anziché l'autenticazione basata su chiave per verificare le identità degli utenti.

Prima di iniziare

Limitazioni

  • La VM a cui ti stai connettendo deve avere OpenSSH 7.4 o versioni successive per utilizzare la federazione delle identità per la forza lavoro con OS Login.

  • Gli utenti delle organizzazioni che utilizzano la federazione delle identità per la forza lavoro non possono accedere alle porte di serie della VM.

Connettiti alle VM che utilizzano OS Login e la federazione delle identità per la forza lavoro

Connettiti alle VM che utilizzano OS Login con la federazione delle identità per la forza lavoro utilizzando la console Google Cloud, gcloud CLI o altri client SSH.

Console

Quando ti connetti alle VM che utilizzano OS Login con la federazione delle identità per la forza lavoro utilizzando SSH nel browser, Compute Engine configura il certificato SSH per tuo conto quando tenti di connetterti.

Per connetterti alle VM, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nell'elenco delle istanze di macchine virtuali, fai clic su SSH nella riga dell'istanza a cui vuoi connetterti.

    Pulsante SSH accanto al nome dell'istanza.

gcloud

Quando ti connetti alle VM che utilizzano OS Login con la federazione delle identità per la forza lavoro mediante gcloud CLI, Compute Engine configura il certificato SSH per tuo conto quando tenti di connetterti.

Connettiti a una VM tramite SSH eseguendo il comando gcloud compute ssh:

  1. Nella console Google Cloud, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Esegui questo comando:

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Connettiti alla VM eseguendo questo comando:

    • PROJECT_ID: l'ID del progetto che contiene la VM
    • ZONE: il nome della zona in cui si trova la VM
    • VM_NAME: il nome della VM

    Se hai impostato proprietà predefinite per Google Cloud CLI, puoi omettere i flag --project e --zone da questo comando. Ad esempio:

    gcloud compute ssh VM_NAME

Computer IAP

Quando ti connetti alle VM che utilizzano OS Login con la federazione delle identità per la forza lavoro utilizzando IAP Desktop, Compute Engine configura il certificato SSH per tuo conto quando tenti di connetterti.

Per connetterti a una VM utilizzando un computer IAP, segui questi passaggi:

  1. Se non l'hai ancora fatto, installa IAP Desktop sulla tua workstation.

  2. Apri IAP Desktop. Si apre la finestra Aggiungi progetti.

  3. Quando richiesto, accedi con la federazione delle identità per la forza lavoro.

  4. Nella finestra Aggiungi progetti, inserisci l'ID o il nome del progetto che contiene le VM a cui vuoi connetterti.

  5. Nella finestra Esplora progetto, fai di nuovo clic con il tasto destro del mouse sul nome della VM e seleziona Connetti per connetterti alla VM.

client SSH

Per connetterti a una VM che utilizza OS Login con la federazione delle identità per la forza lavoro mediante un client SSH, segui questi passaggi:

  1. Crea una chiave SSH se non ne hai già una.
  2. Firma la chiave SSH pubblica con il metodo users.projects.locations.signSshPublicKey:

    POST https://oslogin.googleapis.com/v1beta/users/USER/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey
    
    {
     "ssh_public_key": "PUBLIC_KEY"
    }
    

    Sostituisci quanto segue:

    • USER: una singola identità in un pool di forza lavoro, nel seguente formato:

      principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
      

      Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto che contiene la VM a cui vuoi connetterti.

    • LOCATION: la zona in cui si trova la VM a cui vuoi connetterti.

    • PUBLIC_KEY: i contenuti del file della chiave pubblica SSH.

  3. Copia il certificato SSH dall'output del metodo user.signSshPublicKey e salva i contenuti in un nuovo file.

  4. Imposta le autorizzazioni per il file del certificato SSH eseguendo questo comando:

    sudo chmod 600 FILE_NAME
    

    Sostituisci FILE_NAME con il nome del file.

  5. Connettiti alla VM utilizzando il seguente comando:

    ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
    

    Sostituisci quanto segue:

    • PATH_TO_PRIVATE_KEY: il percorso del file di chiave SSH privata.
    • PATH_TO_SSH_CERTIFICATE: il percorso del file del certificato SSH.
    • USERNAME: il valore della mappatura degli attributi google.posix_username dell'utente.
    • EXTERNAL_IP: l'indirizzo IP esterno della VM.

Passaggi successivi