Gestire OS Login in un'organizzazione


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

Questo argomento illustra le seguenti attività:

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Criteri dell'organizzazione di OS Login

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

Quando questo vincolo è configurato, vengono applicate le seguenti condizioni:

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

Limitazioni

L'OS Login non è supportato nei seguenti prodotti, funzionalità e VM:
  • Versioni di Cloud Data Fusion 6.1.4 e precedenti
  • Cloud Composer 1
  • Cluster pubblici Google Kubernetes Engine (GKE) che eseguono versioni precedenti alla 1.23.5
  • Cluster GKE privati che eseguono versioni del 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 ignizione Fedora CoreOS

Soluzioni alternative per Cloud Data Fusion, Cloud Composer e GKE

Per utilizzare OS Login nelle organizzazioni che utilizzano Cloud Data Fusion, Cloud Composer e GKE, puoi attivare il vincolo OS Login a livello di organizzazione e poi disattivarlo in modo selettivo per i progetti o le cartelle interessati.

Per ulteriori informazioni sulla modifica dei criteri dell'organizzazione, consulta la sezione sulla creazione e modifica dei criteri.

Attiva il criterio dell'organizzazione

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

Console

Per impostare il criterio dell'organizzazione per l'accesso al sistema operativo dalla console, completa i seguenti passaggi:

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

    Vai alla pagina Norme dell'organizzazione

  2. Nell'elenco dei criteri, fai clic su Richiedi accesso con sistema operativo per visualizzare i vincoli di accesso con OS Login.
  3. Fai clic su Modifica per modificare i vincoli di OS Login esistenti.
  4. Nella pagina Modifica, seleziona Personalizza.
  5. Per attivare l'applicazione di questa limitazione, seleziona On.
  6. Fai clic su Salva per applicare le impostazioni delle limitazioni.

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 della tua organizzazione.

    gcloud organizations list
  2. Imposta la limitazione 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 di 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 il seguente comando:

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

Per i progetti, esegui il seguente comando:

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

Sostituisci quanto segue:

Concedi l'accesso alle istanze a utenti esterni all'organizzazione

Per impostazione predefinita, gli utenti esterni all'organizzazione non possono impostare chiavi SSH per le istanze all'interno dell'organizzazione né ricevere l'accesso alle istanze. In alcune situazioni, potresti dover concedere l'accesso all'istanza a utenti che fanno parte di un'altra organizzazione o che hanno un Account Google gmail.com 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 agli utenti esterni all'organizzazione i ruoli di accesso alle istanze di accesso al OS Login roles/compute.osLoginExternalUser e ad altri ruoli necessari, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina IAM e amministrazione.

    Vai a IAM e amministrazione

  2. Fai clic sul menu a discesa Seleziona un progetto. Nella finestra di dialogo Seleziona una risorsa visualizzata, seleziona la tua organizzazione nel seguente modo:
    1. Fai clic sul menu a discesa dell'organizzazione per visualizzare tutte le tue organizzazioni.
    2. Seleziona la tua organizzazione dal menu a discesa.
  3. Fai clic su Concedi l'accesso per aggiungere un nuovo ruolo a un utente.
  4. Nel campo Nuove entità, aggiungi l'indirizzo email dell'utente per cui vuoi configurare l'accesso all'istanza.
  5. Nel menu a discesa Ruolo, seleziona il ruolo Utente esterno OS Login Compute.
  6. Fai clic su Salva.
  7. Se non lo hai ancora fatto, concedi all'utente gli altri ruoli di accesso alle istanze OS Login a livello di progetto o organizzazione.

Ora l'utente può connettersi alle istanze nel tuo progetto in cui è abilitato l'accesso tramite OS Login operativo.

Gestire l'API OS Login

A livello di organizzazione, puoi limitare l'accesso all'API OS Login impostando i controlli amministrazione di Google Workspace. Per configurare i controlli amministrativi di Google Workspace o visualizzare le opzioni di configurazione, vedi Controllare chi utilizza Google Cloud nella tua 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'utenteuser@example.com avrà il nome utente user se l'impostazione per includere il suffisso del 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 agli utenti esterni all'organizzazione.

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

Controlla gli eventi di accesso al sistema operativo

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 Eventi di attività di Google Cloud nella documentazione dell'API Reports dell'SDK Admin di Google Workspace.

Modificare gli account utente utilizzando l'API Directory

L'OS Login utilizza le impostazioni utente di Cloud Identity o di Google Workspace quando ti connetti 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:

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

Gli esempi seguenti mostrano come modificare o rimuovere gli account utente utilizzando l'API Directory. Per ulteriori informazioni sulle proprietà dell'account che puoi modificare, consulta il riferimento all'API Directory.

Modificare le proprietà dell'account

Per modificare i dati dell'account POSIX di un utente o gestire le sue chiavi SSH, 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 username, uid e gid attuali o nuovi 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: l'indirizzo email principale, l'indirizzo email alias o l'ID utente univoco dell'utente.
  • USERNAME: il nome utente che Compute Engine aggiunge alla VM per l'utente. Questo valore deve essere unico all'interno dell'organizzazione e non deve terminare con una tilde ("~") o contenere un punto (".").
  • UID: l'ID utente sulla VM per questo utente. Questa proprietà deve essere costituita da un valore compreso tra 1001 e 60000 o tra 65535 e 2147483647. Per accedere a un sistema operativo ottimizzato per i container, il valore di UID deve essere compreso tra 65536 e 214748646. Il valore UID deve essere univoco all'interno della tua organizzazione.
  • GID: l'ID gruppo della 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 pubblica SSH.
  • EXPIRATION_TIME: (facoltativo) la data e l'ora di scadenza della chiave in microsecondi dall'epoca (1 secondo = 106 microsecondi).

Rimuovere le proprietà dell'account

Per cancellare i dati posixAccounts e sshPublicKeys di 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 alias o l'ID utente univoco dell'utente.

Utilizzare i gruppi Linux con OS Login (disponibile solo per i clienti Google Cloud con licenza legacy)

Gli amministratori dell'organizzazione possono utilizzare l'API Cloud Identity Groups per configurare gruppi Linux supplementari per gli utenti di OS Login creando e gestendo gruppi POSIX. L'OS Login collega i gruppi POSIX ai gruppi Linux supplementari nelle VM della tua organizzazione in modo da poter gestire le autorizzazioni degli utenti nelle VM.

Gestire l'appartenenza degli utenti ai gruppi Linux

Per creare un gruppo POSIX, consulta Creare e aggiornare i gruppi POSIX.

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

Gli aggiornamenti dell'abbonamento vengono applicati entro 10 minuti. Le modifiche al gruppo vengono applicate a tutte le VM appena create. Gli aggiornamenti dei gruppi POSIX possono richiedere fino a sei ore per essere propagati a tutte le VM in esecuzione. Gli utenti potrebbero dover uscire o utilizzare il comando newgrp per osservare le modifiche al gruppo.

Eliminare le configurazioni dei gruppi POSIX

Il supporto del gruppo POSIX di accesso al sistema operativo è stato ritirato. Ti consigliamo di eliminare le configurazioni dei gruppi POSIX di accesso al sistema operativo.

Per eliminare le configurazioni dei gruppi POSIX di accesso al sistema operativo, devi essere un amministratore dell'organizzazione.

  1. Se non conosci l'ID risorsa dell'organizzazione, recuperalo.
  2. Elenca tutti i gruppi POSIX nella tua organizzazione. Prendi nota dell'indirizzo email di ciascun gruppo.
  3. Per ogni gruppo POSIX della tua organizzazione:
    1. Recupero delle informazioni del gruppo. Nota il posixGroups.gid.
    2. Elimina il gruppo POSIX.
  4. Se vuoi, verifica che tutti i gruppi siano stati eliminati elencando tutti i gruppi POSIX della tua organizzazione. Se tutti i gruppi sono stati eliminati correttamente, la risposta è vuota.

Limiti di frequenza per i 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 di quota è di 60 richieste/minuto per progetto per una determinata regione.

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

Vai a Quote

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

Le organizzazioni che utilizzano la federazione delle identità della forza lavoro possono utilizzare Accesso OS Login per gestire l'accesso alle proprie VM. Quando la federazione delle identità della forza lavoro è attivata per un'organizzazione, OS Login utilizza l'autenticazione basata su certificato anziché l'autenticazione basata su chiavi per verificare le identità utente.

Prima di iniziare

Limitazioni

  • La VM a cui ti connetti deve avere OpenSSH versione 7.4 o successive per utilizzare la federazione delle identità del personale con OS Login.

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

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

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

Console

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

Per connetterti alle VM:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

gcloud

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

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

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Esegui questo comando:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto contenente 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

IAP Desktop

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

Per connetterti a una VM utilizzando IAP Desktop:

  1. Installa IAP Desktop sulla tua workstation, se non l'hai ancora fatto.

  2. Apri IAP Desktop. Viene visualizzata 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 Esploratore progetti, 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 utilizzando un client SSH, procedi nel seguente modo:

  1. Crea una chiave SSH se non ne hai già una.
  2. Firma la tua chiave pubblica SSH utilizzando 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:

      • POOL_ID: il pool di forza lavoro a cui appartiene l'utente.
      • SUBJECT_ATTRIBUTE_VALUE: il valore della mappatura dell'attributo google.posix_username dell'utente.
    • 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 collegarti.

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

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

  4. Imposta le autorizzazioni sul file del certificato SSH eseguendo il seguente 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 della 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