Questo documento descrive come utilizzare OS Login per gestire l'accesso alle istanze VM nella tua organizzazione.
Questo argomento tratta le seguenti attività:
- Abilitare OS Login per un'organizzazione utilizzando un criterio dell'organizzazione: utilizza un criterio dell'organizzazione per garantire che per tutte le nuove istanze VM dell'organizzazione sia abilitato OS Login.
- Concedi l'accesso all'istanza agli utenti esterni all'organizzazione: consenti agli account utente esterni all'organizzazione di utilizzare SSH per connettersi alle tue istanze.
- Gestisci l'API OS Login: consenti o nega l'accesso degli utenti per utilizzare l'API OS Login. Abilita o disabilita anche le funzionalità dell'API OS Login.
- Controlla gli eventi di OS Login: monitora gli eventi e le attività relativi all'accesso al sistema operativo, come l'aggiunta, l'eliminazione o l'aggiornamento di una chiave SSH oppure l'eliminazione delle informazioni sui POSIX.
- Modifica gli account utente utilizzando l'API Directory: aggiorna le proprietà utente, come il nome utente e i dati dell'account POSIX, utilizzando l'API Directory.
- Utilizza gruppi Linux con OS Login: gestisci le autorizzazioni degli utenti all'interno delle VM utilizzando gruppi Linux con OS Login.
- Utilizza OS Login con la federazione delle identità per la forza lavoro (anteprima): connettiti alle VM in cui è abilitato OS Login quando la tua organizzazione utilizza un provider di identità (IdP) esterno.
Prima di iniziare
-
Se non l'hai già fatto, configura l'autenticazione.
L'autenticazione è il processo mediante il quale viene verificata l'identità dell'utente per ottenere l'accesso ai servizi e alle API Google Cloud.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione in Compute Engine come segue.
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
-
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
- Set a default region and zone.
enable-oslogin=true
è incluso nei metadati di progetto per tutti i nuovi progetti.- Le richieste che impostano
enable-oslogin
sufalse
nei metadati dell'istanza o del progetto vengono rifiutate per VM e progetti nuovi ed esistenti. - Cloud Data Fusion 6.1.4 e versioni precedenti
- Cloud Composer 1
- Cluster pubblici di Google Kubernetes Engine (GKE) che eseguono versioni precedenti alla 1.23.5
- per i cluster privati GKE 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 alle istanze per le VM create utilizzando queste immagini, usa il sistema di accensione Fedora CoreOS
- Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
- Nell'elenco dei criteri, fai clic su Richiedi OS Login per visualizzare i vincoli di OS Login.
- Fai clic su Modifica per modificare i vincoli esistenti di OS Login.
- Nella pagina Modifica, seleziona Personalizza.
- Per attivare l'applicazione di questo vincolo, seleziona On.
- Fai clic su Salva per applicare le impostazioni del vincolo.
Trova l'ID organizzazione.
gcloud organizations list
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
folder-id
: il tuo ID cartella.project-id
: il tuo ID progetto.- Nella console Google Cloud, vai alla pagina di selezione
dei progetti e delle organizzazioni.
Vai alla pagina di selezione dei progetti e delle organizzazioni
- Nel menu a discesa Organizzazione, seleziona la tua organizzazione.
- Fai clic su Tutte per visualizzare tutte le tue organizzazioni.
- Fai clic sul nome dell'organizzazione.
- Fai clic su Aggiungi per aggiungere un nuovo ruolo a un utente.
- Specifica il nome utente per l'utente per il quale vuoi configurare l'accesso all'istanza.
- Fai clic su Seleziona un ruolo per specificare i ruoli che vuoi concedere agli utenti.
- Nell'elenco dei ruoli di Compute Engine, seleziona il ruolo Utente esterno di Compute OS Login.
- Fai clic su Aggiungi per confermare che vuoi concedere all'utente il ruolo selezionato.
- Se non lo hai già fatto, concedi gli altri ruoli di accesso alle istanze OS Login all'utente a livello di progetto o organizzazione.
- 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 utenteuser
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.
- Modificare le impostazioni di accesso all'istanza.
- Impostare un utente come amministratore
- Modificare le proprietà utente come nome dell'account ed email
- Aggiungere e rimuovere chiavi SSH per un utente
- Modificare i dati dell'account POSIX
- Cambia il nome utente a cui gli utenti si connettono sull'istanza.
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 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 un valore compreso tra1001
e60000
o un valore compreso tra65535
e2147483647
. Per accedere a un sistema operativo ottimizzato per i container,UID
deve avere un valore compreso tra65536
e214748646
.UID
deve essere univoco all'interno dell'organizzazione.GID
: l'ID gruppo sulla VM a cui appartiene l'utente.USER_HOME_PATH
: (facoltativo) la home directory della VM per l'utente. Ad esempio,/home/example_username
.SHELL_PATH
: (facoltativo) il percorso della shell predefinita dell'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).- Crea un pool di identità della forza lavoro.
- Configura le mappature degli attributi
google.posix_username
. Configura la tua VM per utilizzare OS Login con la federazione delle identità della forza lavoro seguendo questi passaggi:
Verifica che nella VM sia installato OpenSSH 7.4 o versioni successive eseguendo sulla VM il comando seguente:
ssh -V
La VM alla quale ti stai connettendo deve avere OpenSSH versione 7.4 o successiva per utilizzare la federazione delle identità della forza lavoro 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.
- Nella console Google Cloud, vai alla pagina Istanze VM.
-
Nell'elenco delle istanze di macchine virtuali, fai clic su SSH nella riga dell'istanza a cui vuoi connetterti.
-
Nella console Google Cloud, 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.
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 VMZONE
: il nome della zona in cui si trova la VMVM_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
-
Se non l'hai ancora fatto, installa IAP Desktop sulla tua workstation.
-
Apri IAP Desktop. Si apre la finestra Aggiungi progetti.
-
Quando richiesto, accedi con la federazione delle identità della forza lavoro.
-
Nella finestra Aggiungi progetti, inserisci l'ID o il nome del progetto che contiene le VM a cui vuoi connetterti.
-
Nella finestra Explorer progetti, fai di nuovo clic con il tasto destro del mouse sul nome della VM e seleziona Connetti per connetterti alla VM.
- Crea una chiave SSH, se non ne hai già una.
Firma la chiave SSH pubblica 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'attributogoogle.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 connetterti.PUBLIC_KEY
: i contenuti del file della chiave pubblica SSH.
Copia il certificato SSH dall'output del metodo
user.signSshPublicKey
e salva i contenuti in un nuovo file.Imposta le autorizzazioni sul file del certificato SSH eseguendo questo comando:
sudo chmod 600 FILE_NAME
Sostituisci
FILE_NAME
con il nome del file.Connettiti alla VM utilizzando il comando seguente:
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 dell'attributogoogle.posix_username
dell'utente.EXTERNAL_IP
: l'indirizzo IP esterno della VM.
- Scopri come configurare OS Login.
- Scopri come configurare OS Login con la verifica in due passaggi.
- Leggi una panoramica della funzionalità OS Login.
- Risolvi i problemi di OS Login.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi initialize eseguendo questo comando:
gcloud init
Per maggiori informazioni, consulta Autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Criterio dell'organizzazione OS Login
Puoi configurare un vincolo di OS Login nella tua organizzazione per assicurarti che per tutti i nuovi progetti e per le istanze VM create in questi nuovi progetti sia abilitato OS Login.
Quando questo vincolo è configurato, vengono applicate le seguenti condizioni:
Limitazioni
OS Login non è supportato nei seguenti prodotti, funzionalità e VM: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, quindi disattivarlo in modo selettivo sui progetti o sulle cartelle dei progetti interessati.
Per saperne di più sulla modifica dei criteri dell'organizzazione, consulta Creazione e modifica dei criteri.
Abilita il criterio dell'organizzazione
Per abilitare il criterio di OS Login, puoi impostare il vincolo di OS Login su cartelle e progetti 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 di OS Login dalla console, completa i seguenti passaggi:
gcloud
Per impostare il criterio dell'organizzazione di OS Login, utilizza il comando
gcloud beta resource-manager org-policies enable-enforce
.Puoi anche applicare il criterio dell'organizzazione di OS Login a una cartella o a un progetto con i flag
--folder
o--project
, nonché l'ID cartella e l'ID progetto, rispettivamente.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 agli utenti esterni all'organizzazione
Per impostazione predefinita, gli utenti esterni all'organizzazione non possono impostare chiavi SSH per le istanze della tua organizzazione né ottenere l'accesso alle istanze della tua organizzazione. 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 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 degli account POSIX.Per concedere
roles/compute.osLoginExternalUser
e gli altri ruoli di accesso alle istanze di OS Login necessari agli utenti esterni all'organizzazione, completa i seguenti passaggi:L'utente può ora connettersi alle istanze del tuo progetto che hanno OS Login abilitato.
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 amministrativi di Google Workspace o visualizzare le opzioni di configurazione, vedi Specificare chi può utilizzare 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:
Per ulteriori informazioni su come attivare o disattivare le impostazioni dell'API OS Login, consulta Scegliere le impostazioni per la piattaforma Google Cloud.
Controlla gli eventi di 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 oppure elimina i dati dell'account POSIX.
Puoi recuperare gli eventi dell'attività di controllo dell'API OS Login dall'SDK Admin di Google Workspace, chiamando
Activities.list()
conapplicationName=gcp
. Per saperne di più, consulta Eventi di attività di Google Cloud nella documentazione dell'API Google Workspace Admin SDK Reports.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 attività seguenti per i tuoi account utente Google Workspace o Cloud Identity:
I seguenti esempi 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 di riferimento dell'API Directory.
Modificare le proprietà dell'account
Per modificare i dati dell'account POSIX di un utente o per gestire le chiavi SSH dell'utente, invia una richiesta
PUT
al metododirectory.users.update
e specifica una o più proprietà da modificare nell'account utente.Se modifichi le proprietà
posixAccounts
di un utente, devi specificare i valoriusername
,uid
egid
attuali o nuovi nella richiesta.Se modifichi le proprietà
sshPublicKeys
dell'utente, devi specificare il valorekey
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:
Rimuovere le proprietà dell'account
Per cancellare i dati
posixAccounts
esshPublicKeys
per un utente, invia una richiestaPUT
al metododirectory.users.update
, impostando i campiposixAccounts
esshPublicKeys
sunull
: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.Utilizza gruppi Linux con OS Login
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. OS Login collega i gruppi POSIX a 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 nei 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 diventeranno effettivi entro 10 minuti. Le modifiche ai gruppi vengono applicate a tutte le VM appena create. La propagazione degli aggiornamenti dei gruppi 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 del 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 di 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.
Utilizza la federazione delle identità della forza lavoro con OS Login
Le organizzazioni che utilizzano la federazione delle identità per la forza lavoro possono utilizzare OS Login per gestire l'accesso alle proprie VM. Se la federazione delle identità per la forza lavoro è abilitata per un'organizzazione, OS Login utilizza l'autenticazione basata su certificato anziché basata su chiave per verificare le identità degli utenti.
Prima di iniziare
Limitazioni
Connettiti alle VM che utilizzano OS Login e la federazione delle identità della forza lavoro
Connettiti alle VM che utilizzano OS Login con la federazione delle identità della 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-in-browser, Compute Engine configura il certificato SSH per tuo conto quando tenti di connetterti.
Per connetterti alle VM, segui questi passaggi:
gcloud
Quando ti connetti alle VM che utilizzano OS Login con la federazione delle identità per la forza lavoro utilizzando 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
:IAP per computer desktop
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 IAP desktop, segui questi passaggi:
client SSH
Per connetterti a una VM che utilizza OS Login con la federazione delle identità per la forza lavoro utilizzando un client SSH, segui questi passaggi:
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-07-05 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema di traduzione" },{ "type": "thumb-down", "id": "otherDown", "label":"Altra" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Facile da capire" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Il problema è stato risolto" },{ "type": "thumb-up", "id": "otherUp", "label":"Altra" }] -