Checkpoint
Create an instance with name as lab-1 in Project 1
/ 10
Update the default zone
/ 10
Create a configuration for Username 2 and name it as user2
/ 10
Restricting Username 2 to roles/viewer in Project 2
/ 10
Create a new role with permissions for the devops team
/ 10
Check binding to roles/iam.serviceAccountUser
/ 5
Bound Username 2 to devops role
/ 5
Create an instance with name as lab-2 in Project 1
/ 5
Check the created service account
/ 5
Check the binding for the service account to roles/iam.serviceAccountUser
/ 10
Check the binding for the service account to roles/compute.instanceAdmin
/ 10
Check lab-3 has the service account attached
/ 10
Configurazione delle autorizzazioni IAM con gcloud
- GSP647
- Panoramica
- Che cos'è IAM?
- Che cos'è gcloud?
- Configurazione e requisiti
- Attività 1: configura l'ambiente gcloud
- Attività 2: crea e passa da una configurazione IAM all'altra
- Attività 3: identifica e assegna le autorizzazioni IAM corrette
- Attività 4: verifica che user2 abbia accesso
- Attività 5: utilizza un service account
- Attività 6: utilizza il service account con un'istanza di calcolo
- Attività 7: testa il service account
- Complimenti!
GSP647
Panoramica
Questo lab illustra tre aree comuni da comprendere in merito a IAM e gcloud:
- configurazione dell'ambiente gcloud
- utilizzo di più configurazioni gcloud
- utilizzo dei service account
In questo lab utilizzerai lo strumento comando gcloud
CLI per impostare e configurare le funzionalità di comando di Cloud Identity and Access Management (IAM).
Obiettivi didattici
In questo lab imparerai a:
- Esaminare IAM e utilizzare il client
gcloud
- Creare e passare da una configurazione IAM all'altra
- Identificare e assegnare le autorizzazioni IAM corrette
- Creare e utilizzare un service account
Ambiente iniziale
Inizi con due account utente e due progetti:
-
user1
è il "proprietario" di entrambi i progetti; -
user2
è il "visualizzatore" solo del primo progetto.
Nel primo progetto è in esecuzione una macchina virtuale Linux (VM).
Che cos'è IAM?
Google Cloud offre Cloud Identity and Access Management (IAM), che ti consente di gestire il controllo degli accessi definendo chi (identità) ha quale accesso (ruolo) per quale risorsa.
In IAM, l'autorizzazione per accedere a una risorsa non viene concessa direttamente all'utente finale. Le autorizzazioni vengono invece raggruppate in ruoli e i ruoli vengono concessi alle entità autenticate (in passato, IAM si riferiva spesso alle entità come membri; alcune API utilizzano ancora questo termine).
Identità
In Cloud IAM, puoi concedere l'accesso alle entità. Le entità possono essere dei seguenti tipi:
- Account Google
- Service account
- Gruppo Google
- Account Google Workspace
- Dominio Cloud Identity
- Tutti gli utenti autenticati
- Tutti gli utenti
Scopri di più su questi tipi di identità nella guida ai concetti relativi all'identità.
In questo lab utilizzerai Account Google, service account e gruppi di domini Cloud Identity.
Ruoli
Un ruolo è una raccolta di autorizzazioni. Non puoi assegnare direttamente un'autorizzazione a un utente, puoi solo concedergli un ruolo. Quando concedi un ruolo a un utente, gli concedi tutte le autorizzazioni incluse nel ruolo.
Scopri di più sui ruoli nella guida ai ruoli.
Che cos'è gcloud?
Lo strumento gcloud CLI fa parte di Cloud SDK. Devi scaricare e installare l'SDK sul sistema e inizializzarlo prima di poter utilizzare lo strumento a riga di comando gcloud. Puoi utilizzare questo strumento per eseguire molte delle attività più comuni sulla piattaforma, utilizzando la riga di comando oppure script e altre automazioni.
Scopri di più su gcloud nella guida Panoramica di gcloud CLI.
Configurazione e requisiti
Prima di fare clic sul pulsante Avvia lab
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
- Accesso a un browser internet standard (Chrome è il browser consigliato).
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Come avviare il lab e accedere alla console Google Cloud
-
Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
- Il pulsante Apri console Google Cloud
- Tempo rimanente
- Credenziali temporanee da utilizzare per il lab
- Altre informazioni per seguire questo lab, se necessario
-
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).
Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.
Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.
Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account. -
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.
{{{user_0.username | "Username"}}} Puoi trovare il Nome utente anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
-
Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.
{{{user_0.password | "Password"}}} Puoi trovare la Password anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi. -
Fai clic nelle pagine successive:
- Accetta i termini e le condizioni.
- Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
- Non registrarti per le prove gratuite.
Dopo qualche istante, la console Google Cloud si apre in questa scheda.
Attività 1: configura l'ambiente gcloud
Questo lab ha già un'istanza Compute Engine denominata centos-clean che simula un ambiente in cui non è installato gcloud
. Ti connetti a questa istanza utilizzando la console Google Cloud.
-
Apri l'elenco delle istanze di calcolo da Menu di navigazione > Compute Engine > Istanze VM.
-
Sulla riga con l'istanza di calcolo denominata centos-clean, fai clic su SSH.
- Come primo test, verifica che
gcloud
sia installato correttamente controllando la versione. All'interno della sessione SSH, esegui:
Crea una nuova istanza e aggiorna la zona predefinita
Dopo aver verificato che lo strumento a riga di comando gcloud
sia installato, apporta alcune modifiche creando un'istanza di calcolo.
- Innanzitutto, esegui l'autenticazione in gcloud. All'interno della sessione SSH esegui:
Premi INVIO al prompt Do you want to continue (Y/n)? (Vuoi continuare (S/n)?).
-
Vai al link visualizzato in una nuova scheda.
-
Fai clic sul tuo nome utente attivo (
) e poi su Consenti. -
Quando viene visualizzato il prompt Inserisci il seguente codice di verifica in gcloud CLI sulla macchina a cui vuoi accedere, fai clic sul pulsante Copia, quindi torna alla sessione SSH e incolla il codice nel prompt Inserisci codice di autorizzazione.
-
Nella sessione SSH, imposta la regione e la zona:
- All'interno della sessione SSH, esegui:
Se hai impostato tutto correttamente, il comando crea un'istanza.
Ma di che dimensione? E dove? Quale immagine viene utilizzata?
Esistono numerose impostazioni predefinite utilizzate dal servizio. Alcune possono essere controllate nella configurazione gcloud
. Ad esempio, la località dell'istanza è controllata dall'impostazione della zona.
- Controlla la tua attuale configurazione gcloud. All'interno della sessione SSH, esegui:
Ora vedi una sezione compute
, una sezione core
e una sezione active configuration
. Puoi modificare ognuna di queste sezioni, ma per questo lab cambierai solo la zona. Fai riferimento alla zona in cui è stata creata la tua VM.
- Ora elenca tutte le zone disponibili per l'uso eseguendo questo comando all'interno della sessione SSH:
-
Identifica una delle altre zone nella tua stessa regione. Ad esempio, se la tua zona attuale è
us-west2-a
, potresti selezionareus-west2-b
. -
Cambia la tua zona attuale con un'altra zona nella stessa regione. All'interno della sessione SSH, esegui questo comando, sostituendo
ZONE
con la zona che hai selezionato:
- Verifica che sia stato effettuato il cambio di zona. All'interno della sessione SSH, esegui:
La zona selezionata riflette la modifica apportata.
Puoi modificare altre impostazioni utilizzando il comando gcloud config set
. Queste modifiche sono permanenti; vengono scritte nella tua home directory.
La configurazione predefinita è archiviata in ~/.config/gcloud/configurations/config_default.
Se vuoi una zona diversa da quella predefinita durante la creazione di un'istanza, puoi utilizzare l'opzione --zone. Ad esempio, gcloud compute instances create lab-1 --zone us-central1-f
- Verifica che la zona sia stata scritta nel file di configurazione. All'interno della sessione SSH, esegui:
Come puoi vedere, la configurazione viene semplicemente archiviata come testo ed è possibile eseguirne il backup o una copia.
Attività 2: crea e passa da una configurazione IAM all'altra
Ora hai configurato un account. Nelle situazioni in cui devi lavorare in team diversi o accedere ad account diversi, puoi anche gestirlo con gcloud config
.
Nella tua attività successiva imparerai a creare una seconda configurazione e a passare dall'una all'altra.
Crea una nuova configurazione IAM
In questo lab hai un secondo Account Google con cui puoi accedere. Questo account dispone di accesso di sola lettura (visualizzatore) al primo progetto. Creerai una nuova configurazione per quell'utente.
- Avvia una nuova configurazione
gcloud
per il secondo account utente. All'interno della sessione SSH, esegui:
-
Seleziona l'opzione 2, Create a new configuration (Crea una nuova configurazione).
-
configuration name (nome configurazione): digita user2.
-
Log in with a new account (Accedi con un nuovo account): seleziona l'opzione 3. Stai effettuando l'accesso con l'altro nome utente fornito.
-
Premi INVIO al prompt Do you want to continue (Y/n)? (Vuoi continuare (S/n)?).
-
Vai al link visualizzato in una nuova scheda.
-
Fai clic su Use another account (Utilizza un altro account)
-
Copia il secondo account utente (
) e incollalo nel prompt email or phone (email o telefono). -
Copia la stessa password con cui hai avviato il lab e incollala nel prompt enter your password (inserisci la password).
-
Fai clic su Ho capito.
-
Fai clic su Consenti.
Accetti che Cloud SDK abbia lo stesso accesso del tuo Account Google.
-
Quando viene visualizzato il prompt Inserisci il seguente codice di verifica in gcloud CLI sulla macchina a cui vuoi accedere, fai clic sul pulsante Copia, quindi torna alla sessione SSH e incolla il codice nel prompt Inserisci codice di autorizzazione.
-
Per Scegli il progetto cloud da utilizzare individua il progetto attuale (
) e quindi digita il numero corrispondente al progetto.
L'inizializzazione viene completata e la zona e la regione vengono impostate per te.
Testa il nuovo account
Questo nuovo account dispone di accesso di sola visualizzazione al progetto, quindi puoi verificare che stai effettivamente utilizzando questo account provando a visualizzare e quindi a creare alcune risorse.
- Verifica di poter visualizzare i dettagli nel primo progetto. All'interno della sessione SSH, esegui:
Il secondo account utente dispone di accesso in visualizzazione, quindi dovresti vedere elencate le istanze centos-clean
e lab-1
.
- Verifica che non sia possibile creare un'istanza nel primo progetto, poiché il ruolo assegnato è quello di visualizzatore di base. All'interno della sessione SSH, esegui:
Poiché il secondo account utente dispone solo di accesso in visualizzazione, non è autorizzato a creare un'istanza, quindi questo comando, dopo qualche tempo, ha esito negativo.
- Torna alla configurazione del tuo primo utente (predefinita). All'interno della sessione SSH, esegui:
Ora riprenderai a utilizzare le credenziali del tuo account utente originale. Dopodiché passerai da un account all'altro man mano che scopri di più sui ruoli e sulle autorizzazioni.
Attività 3: identifica e assegna le autorizzazioni IAM corrette
Ti sono stati forniti due account utente per questo progetto. Il primo utente ha il controllo completo di entrambi i progetti e può essere considerato l'account amministratore. Il secondo utente dispone di accesso di sola visualizzazione ai due progetti, quindi lo possiamo definire un utente DevOps e la sua identità rappresenta un tipico utente di livello DevOps.
Successivamente, utilizzerai gcloud
per configurare l'accesso a un progetto per l'utente DevOps creando un ruolo personalizzato per il progetto che consenta la creazione di bucket e istanze.
Esamina i ruoli e le autorizzazioni
- Per visualizzare tutti i ruoli, esegui questo comando all'interno della sessione SSH:
Viene restituito l'elenco dei ruoli. L'aggiunta di grep "name:"
al comando limita la quantità di dati restituiti ai soli nomi dei ruoli.
Esamina uno di questi ruoli per visualizzare le sue autorizzazioni assegnate. Per visualizzare le autorizzazioni, utilizza gcloud iam roles describe
. Prova a osservare il ruolo semplice roles/compute.instanceAdmin.
- Esamina il ruolo predefinito
compute.instanceAdmin
. All'interno della sessione SSH, esegui:
Come puoi vedere, roles/compute.instanceAdmin ha molte autorizzazioni, ma queste sono le minime necessarie per dopo:
- compute.instances.create
- compute.instances.delete
- compute.instances.start
- compute.instances.stop
- compute.instances.update
- compute.disks.create
- compute.subnetworks.use
- compute.subnetworks.useExternalIp
- compute.instances.setMetadata
- compute.instances.setServiceAccount
Per esaminare l'elenco completo dei ruoli e delle autorizzazioni assegnate, consulta la guida Riferimento alle autorizzazioni IAM.
Concedi l'accesso al secondo utente al secondo progetto
Ora che sai che i ruoli includono autorizzazioni, come fai ad assegnare un ruolo (e quindi tutte le autorizzazioni associate) a un account utente?
Esistono due modi per assegnare un ruolo:
- All'utente e a un'organizzazione
- A un utente e a un progetto
Successivamente, assegni il ruolo di base di "visualizzatore" al secondo utente nel secondo progetto.
Verifica che il secondo utente non abbia accesso al secondo progetto.
- Riporta la configurazione
gcloud
al secondo utente (user2). All'interno della sessione SSH, esegui:
Ora sei tornato a user2
.
- Imposta
PROJECTID2
sul secondo progetto. All'interno della sessione SSH, esegui:
bashrc
, perciò fai attenzione.Ricevi un avviso: WARNING: You do not appear to have access to project [your 2nd project id] or it does not exist
(AVVISO: sembra che tu non abbia accesso al progetto [il tuo secondo ID progetto] o il progetto non esiste).
- Digita N e premi INVIO al prompt Do you want to continue (Y/n)? (Vuoi continuare (S/n)?).
Ciò significa che user2 non ha accesso al progetto PROJECTID2, cosa che risolverai nella sezione successiva.
Assegna il ruolo di visualizzatore al secondo utente nel secondo progetto
- Torna alla configurazione gcloud predefinita, che dispone dell'autorizzazione per concedere l'accesso al secondo utente. All'interno della sessione SSH, esegui:
- Installa
jq
:
Successivamente, imposta il valore di USERID2
sul secondo nome utente e associa il ruolo di visualizzatore al secondo utente nel secondo progetto.
- All'interno della sessione SSH, esegui:
Una volta eseguito il comando, il testo sarà simile al seguente (potrebbe essere necessario scorrere verso l'alto):
Attività 4: verifica che user2 abbia accesso
- Imposta la configurazione gcloud su user2. All'interno della sessione SSH, esegui:
- Cambia la configurazione per user2 nel secondo progetto. All'interno della sessione SSH, esegui:
Questa volta non dovresti visualizzare messaggi di errore.
- Verifica di avere accesso in visualizzazione. All'interno della sessione SSH, esegui:
Ora vedi 0 istanze in questo progetto.
- Prova a creare un'istanza nel secondo progetto come secondo utente. All'interno della sessione SSH, esegui:
Questo comando ha esito negativo perché user2 dispone solo di accesso in visualizzazione al progetto.
- Imposta la configurazione gcloud su default. All'interno della sessione SSH, esegui:
Ora riprenderai a utilizzare le credenziali del tuo account utente originale.
Crea un nuovo ruolo con autorizzazioni
Successivamente, crea il nuovo ruolo con il set di autorizzazioni necessarie per il team DevOps.
- Crea un ruolo personalizzato denominato
devops
che disponga delle autorizzazioni per creare un'istanza. All'interno della sessione SSH, esegui:
Questo comando crea un ruolo personalizzato nel progetto denominato devops
con le autorizzazioni per creare e gestire istanze.
Viene elencato il nome completo del ruolo. Osserva che il ruolo è nel progetto, quindi il percorso è nel modello projects/PROJECT/roles/ROLENAME
.
Associa il ruolo al secondo account in entrambi i progetti
Ora hai creato il ruolo e devi associare l'utente e il ruolo al progetto. Utilizza gcloud projects add-iam-policy-binding
per eseguire l'associazione. Per rendere questo comando più semplice da eseguire, imposta prima un paio di variabili d'ambiente: l'ID progetto e l'account utente.
- Associa il ruolo di
iam.serviceAccountUser
al secondo utente nel secondo progetto. All'interno della sessione SSH, esegui:
Sono necessarie le autorizzazioni per creare un'istanza con un service account collegato. Il ruolo iam.serviceAccountUser
dispone di queste autorizzazioni, quindi utilizza questo ruolo predefinito.
- Associa il ruolo personalizzato
devops
al secondo utente nel secondo progetto. Puoi trovare il secondo account utente sulla sinistra di questa pagina. Assicurati di impostare USERID sul secondo account utente.
All'interno della sessione SSH, esegui:
Una volta eseguito il comando, il testo sarà simile al seguente (potrebbe essere necessario scorrere verso l'alto):
Testa le autorizzazioni appena assegnate.
- Imposta la configurazione gcloud su user2. All'interno della sessione SSH, esegui:
Ora sei tornato a user2.
- Prova a creare un'istanza denominata lab-2. All'interno della sessione SSH, esegui:
Ora la creazione dell'istanza funziona per user2.
- Verifica che l'istanza sia presente. All'interno della sessione SSH, esegui:
Il tuo ambiente
Dopo queste ultime modifiche il tuo ambiente appare nel seguente modo:
Attività 5: utilizza un service account
Hai visto come eseguire l'autenticazione e utilizzare gcloud
per accedere ai servizi Google Cloud con ruoli. Ora esaminerai un approccio tipico.
Hai un'applicazione che utilizza le interfacce di programmazione delle applicazioni, o API, per leggere e scrivere sui bucket Cloud Storage. Non vuoi doverti autenticare ogni volta che avvii un nuovo server, poiché sarebbe faticoso e contrario allo spirito dell'utilizzo del cloud. Quindi, utilizzi i service account.
Un service account è un tipo speciale di Account Google che appartiene all'applicazione o a una macchina virtuale (VM) invece che a un singolo utente finale. La tua applicazione utilizza il service account per chiamare l'API Google di un servizio in modo che gli utenti non siano direttamente coinvolti.
Scopri di più sui service account nella guida ai service account.
Ora creerai un service account, lo utilizzerai con un'istanza di calcolo, quindi verificherai che il service account consenta l'accesso di cui hai bisogno.
Crea un service account
- Imposta la configurazione gcloud su default,
user2
non ha i diritti per impostare e configurare i service account. All'interno della sessione SSH, esegui:
- Imposta il progetto su
PROJECTID2
nella tua configurazione. All'interno della sessione SSH, esegui:
Assicurati di scegliere come target il progetto giusto.
- Crea il service account. All'interno della sessione SSH, esegui:
- Ottieni l'indirizzo email del service account. All'interno della sessione SSH, esegui:
- Inserisci l'indirizzo email in una variabile locale denominata
SA
. All'interno della sessione SSH, esegui:
Questo comando imposta la variabile locale SA sull'indirizzo email del service account. Abbastanza utile, vero?
- Assegna al service account il ruolo
iam.serviceAccountUser
. All'interno della sessione SSH, esegui:
Questo ruolo consente al service account di assegnare un service account a un'istanza di calcolo.
Attività 6: utilizza il service account con un'istanza di calcolo
- Assegna al service account il ruolo
compute.instanceAdmin
. All'interno della sessione SSH, esegui:
Questo ruolo consente al service account di gestire le istanze di calcolo.
- Crea un'istanza con il service account DevOps collegato. Inoltre, devi specificare un ambito di accesso che definisca le chiamate API che può effettuare l'istanza. All'interno della sessione SSH, esegui:
Gli ambiti di accesso sono il metodo legacy per specificare le autorizzazioni per l'istanza. Gli ambiti di accesso non sono un meccanismo di sicurezza. Definiscono invece gli ambiti OAuth predefiniti utilizzati nelle richieste dallo strumento gcloud
o dalle librerie client. Non hanno alcun effetto quando si effettuano richieste non autenticate tramite OAuth, come gRPC o le API SignBlob.
Devi configurare gli ambiti di accesso quando configuri un'istanza da eseguire come service account.
Una best practice consiste nell'impostare l'ambito di accesso cloud-platform completo sull'istanza, quindi nel limitare in modo sicuro l'accesso API del service account con i ruoli IAM.
Gli ambiti di accesso si applicano in base alla singola istanza. Gli ambiti di accesso possono essere impostati durante la creazione di un'istanza e persistono solo per la durata dell'istanza.
Gli ambiti di accesso non hanno effetto se non hai abilitato l'API correlata nel progetto a cui appartiene il service account. Ad esempio, la concessione di un ambito di accesso per Cloud Storage su un'istanza di macchina virtuale consente all'istanza di chiamare l'API Cloud Storage solo se hai abilitato l'API Cloud Storage nel progetto.
Attività 7: testa il service account
- Connettiti all'istanza appena creata utilizzando
gcloud compute ssh
. All'interno della sessione SSH, esegui:
Premi INVIO quando ti viene chiesto se vuoi continuare.
Premi Invio due volte per saltare la creazione di una password.
- L'immagine predefinita utilizzata include già la configurazione
gcloud
. All'interno della sessione SSH, esegui:
La configurazione ora ha il service account.
- Crea un'istanza. Questo consente di verificare che tu disponga delle autorizzazioni necessarie tramite il service account:
Puoi premere INVIO per accettare la zona predefinita per questa VM.
- Verifica che i ruoli assegnati funzionino. All'interno della sessione SSH, esegui:
Poiché il service account dispone delle autorizzazioni, puoi visualizzare le istanze elencate.
Il tuo ambiente ora assomiglia a questo
Complimenti!
Hai completato le seguenti attività utilizzando lo strumento di Cloud SDK, gcloud
:
- Hai installato e configurato il client gcloud
- Hai creato e cambiato più configurazioni IAM
- Hai identificato e assegnato le autorizzazioni IAM corrette
- Hai creato e utilizzato un service account
Prossimi passi/Scopri di più
- Documentazione di Cloud Identity and Access Management
- Dai un'occhiata a questi lab:
Formazione e certificazione Google Cloud
… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.
Ultimo aggiornamento del manuale: 10 aprile 2024
Ultimo test del lab: 10 aprile 2024
Copyright 2024 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.