Panoramica
In questo lab, implementerai l'accesso privato Google e Cloud NAT per un'istanza VM che non ha un indirizzo IP esterno. Quindi, verificherai l'accesso agli indirizzi IP pubblici delle API e dei servizi di Google e altre connessioni a internet.
Le istanze VM senza indirizzi IP esterni sono isolate dalle reti esterne. Utilizzando Cloud NAT, queste istanze possono accedere a internet per aggiornamenti e patch e, in alcuni casi, per il bootstrap. Come servizio gestito, Cloud NAT offre alta affidabilità senza gestione e intervento da parte dell'utente.
Obiettivi
In questo lab, imparerai a eseguire le attività seguenti:
- Configurare un'istanza VM senza indirizzi IP esterni
- Connetterti a un'istanza VM utilizzando un tunnel Identity-Aware Proxy (IAP)
- Abilitare l'accesso privato Google su una subnet
- Configurare un gateway Cloud NAT
- Verificare l'accesso agli indirizzi IP pubblici delle API e dei servizi di Google e altre connessioni a internet
Configurazione e requisiti
Per ciascun lab, riceverai un nuovo progetto Google Cloud e un insieme di risorse per un periodo di tempo limitato senza alcun costo aggiuntivo.
-
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.
Nota: per visualizzare un menu con un elenco di prodotti e servizi Google Cloud, fai clic sul menu di navigazione in alto a sinistra oppure digita il nome del servizio o del prodotto nel campo di ricerca.
Attività 1: crea l'istanza VM
Crea una rete VPC con alcune regole firewall e un'istanza VM senza indirizzi IP esterni e connettila all'istanza utilizzando un tunnel IAP.
Crea una rete VPC e delle regole firewall
In primo luogo, crea una rete VPC per l'istanza VM e una regola firewall per consentire l'accesso SSH.
-
Nel menu di navigazione (
) della console Google Cloud, fai clic su Rete VPC > Reti VPC.
-
Fai clic su Crea rete VPC.
-
Come Nome, digita privatenet.
-
In Modalità di creazione subnet, fai clic su Personalizzata.
-
In Nuova subnet specifica quanto segue e non modificare le altre impostazioni predefinite:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Nome |
privatenet-us |
Regione |
|
Intervallo di indirizzi IPv4 |
10.130.0.0/20 |
Nota: non abilitare ancora l'accesso privato Google.
-
Fai clic su Fine.
-
Fai clic su Crea e aspetta che la rete venga creata.
-
Nel riquadro a sinistra, fai clic su Firewall.
-
Fai clic su Crea regola firewall.
-
Specifica quanto segue e non modificare le altre impostazioni predefinite:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Nome |
privatenet-allow-ssh |
Rete |
privatenet |
Destinazioni |
Tutte le istanze nella rete |
Filtro di origine |
Intervalli IPv4 |
Intervalli IPv4 di origine |
35.235.240.0/20 |
Protocolli e porte |
Protocolli e porte specificati |
-
Per tcp, fai clic sulla casella di controllo e specifica la porta 22.
-
Fai clic su Crea.
Nota: per connetterti all'istanza privata mediante SSH, devi aprire una porta appropriata nel firewall. Le connessioni IAP provengono da un insieme specifico di indirizzi IP (35.235.240.0/20). Pertanto puoi limitare la regola a questo intervallo CIDR.
Crea l'istanza VM senza indirizzi IP pubblici
-
Nel menu di navigazione (
) della console Google Cloud, fai clic su Compute Engine > Istanze VM.
-
Fai clic su Crea istanza.
-
Nella pagina Configurazione macchina, specifica quanto segue e non modificare le altre impostazioni predefinite:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Nome |
vm-internal |
Regione |
|
Zona |
|
Serie |
E2 |
Tipo di macchina |
e2-medium (2 vCPU, 1 core, 4 GB di memoria) |
-
Fai clic su Sistema operativo e spazio di archiviazione.
-
Se l'immagine mostrata non è Debian GNU/Linux 12 (bookworm), fai clic su Cambia e seleziona Debian GNU/Linux 12 (bookworm), quindi fai clic su Seleziona.
-
Fai clic su Networking.
-
In Interfacce di rete, modifica l'interfaccia di rete specificando quanto segue:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Rete |
privatenet |
Subnet |
privatenet-us |
Indirizzo IPv4 esterno |
Nessuno |
Nota: l'impostazione predefinita per un'istanza VM prevede la presenza di un indirizzo IP esterno temporaneo. Questo comportamento può essere modificato con un vincolo di policy a livello di organizzazione o di progetto. Per saperne di più sul controllo degli indirizzi IP esterni sulle istanze VM, fai riferimento alla documentazione relativa agli indirizzi IP esterni.
- Fai clic su Fine.
- Fai clic su Crea e attendi la creazione dell'istanza VM.
- Nella pagina Istanze VM, verifica che l'IP esterno di vm-internal sia Nessuno.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Crea l'istanza VM
Accedi a vm-internal mediante SSH per testare il tunnel IAP
-
Nella console Cloud, fai clic su Attiva Cloud Shell (
).
-
Se richiesto, fai clic su Continua.
-
Esegui questo comando in Cloud Shell per configurare l'autenticazione senza aprire un browser.
gcloud auth login --no-launch-browser
Se richiesto di scegliere [Y/n], premi Y, quindi Invio.
Questo ti darà un link da aprire nel tuo browser. Apri il link nello stesso browser in cui hai effettuato l'accesso all'account qwiklabs. Una volta effettuato il login riceverai un codice di verifica da copiare. Incolla questo codice in Cloud Shell.
-
Per connetterti a vm-internal, esegui questo comando:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
- Se richiesto, fai clic su Autorizza.
- Se viene richiesto per continuare, digita Y.
- Quando ti viene richiesta una passphrase, premi Invio.
- Quando ti viene richiesta la stessa passphrase, premi Invio.
- Per testare la connettività esterna di vm-internal, esegui il comando seguente:
ping -c 2 www.google.com
Questo comando non dovrebbe funzionare perché vm-internal non ha indirizzi IP esterni.
- Attendi il completamento del comando
ping
.
- Per tornare all'istanza di Cloud Shell, esegui il comando seguente:
exit
Nota: se le istanze non hanno indirizzi IP esterni, possono essere raggiunte solo da altre istanze sulla rete mediante un gateway VPN gestito o tramite un tunnel Cloud IAP. Cloud IAP consente l'accesso sensibile al contesto alle VM mediante SSH e RDP senza bastion host. Per saperne di più, consulta il blog post Cloud IAP enables context-aware access to VMs via SSH and RDP without bastion hosts.
Attività 2: abilita l'accesso privato Google
Le istanze VM senza indirizzi IP esterni possono utilizzare l'accesso privato Google per raggiungere gli indirizzi IP esterni delle API e dei servizi di Google. Per impostazione predefinita, l'accesso privato Google è disabilitato sulle reti VPC.
Crea un bucket Cloud Storage
Crea un bucket Cloud Storage per testare l'accesso alle API e ai servizi di Google.
-
Nel menu di navigazione (
) della console Google Cloud, fai clic su Cloud Storage > Bucket.
-
Fai clic su Crea.
-
Specifica quanto segue e non modificare le altre impostazioni predefinite:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Nome |
Inserisci un nome globalmente univoco |
Tipo di posizione |
Più regioni |
-
Fai clic su Crea. Se ti viene richiesto di abilitare la prevenzione dell'accesso pubblico, assicurati che l'opzione sia selezionata e fai clic su Conferma.
Annota il nome del bucket di archiviazione.
-
Conserva il nome del bucket in una variabile di ambiente:
export MY_BUCKET=[inserisci qui il nome del bucket]
- Verificalo con il comando echo:
echo $MY_BUCKET
Copia un file immagine nel bucket
Copia un'immagine da un bucket Cloud Storage pubblico nel tuo bucket.
- In Cloud Shell, esegui questo comando:
gcloud storage cp gs://cloud-training/gcpnet/private/access.svg gs://$MY_BUCKET
- Nella console Cloud, fai clic sul nome del bucket per verificare che l'immagine sia stata copiata.
Puoi fare clic sul nome dell'immagine in Cloud Console per visualizzare un esempio di come l'accesso privato Google viene implementato.
Accedi all'immagine dalla tua istanza VM
- In Cloud Shell, per provare a copiare l'immagine dal tuo bucket, esegui questo comando:
gcloud storage cp gs://$MY_BUCKET/*.svg .
Questo comando dovrebbe funzionare perché Cloud Shell ha un indirizzo IP esterno.
- Per connetterti a vm-internal, esegui questo comando:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
-
Se ti viene richiesto, digita Y per continuare.
-
Conserva il nome del bucket in una variabile di ambiente:
export MY_BUCKET=[inserisci qui il nome del bucket]
- Verificalo con il comando echo:
echo $MY_BUCKET
- Per provare a copiare l'immagine su vm-internal, esegui questo comando:
gcloud storage cp gs://$MY_BUCKET/*.svg .
Questo comando non dovrebbe funzionare: vm-internal può inviare traffico solo all'interno della rete VPC perché l'accesso privato Google è disabilitato (per impostazione predefinita).
- Premi Ctrl+Z per arrestare la richiesta.
Abilita l'accesso privato Google
L'accesso privato Google è abilitato a livello di subnet. Quando è abilitato, le istanze nella subnet che hanno solo indirizzi IP privati possono inviare traffico alle API e ai servizi di Google mediante la route predefinita (0.0.0.0/0) con un hop successivo al gateway internet predefinito.
- Nel menu di navigazione (
) console Cloud, fai clic su Rete VPC > Reti VPC.
- Fai clic su privatenet per aprire la rete.
- Fai clic su Subnet e poi su privatenet-us.
- Fai clic su Modifica.
- Per Accesso privato Google, seleziona On.
- Fai clic su Salva.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Crea un bucket Cloud Storage e abilita l'accesso privato Google
Nota: abilitare l'accesso privato Google è semplice, basta selezionare On nella subnet.
- Esegui comando di seguito, in Cloud Shell per vm-internal, per provare a copiare l'immagine su vm-internal.
gcloud storage cp gs://$MY_BUCKET/*.svg .
Questo comando dovrebbe funzionare perché per la subnet di vm-internal l'accesso privato Google è abilitato.
- Per tornare all'istanza di Cloud Shell, esegui il comando seguente:
exit
- Digita di nuovo exit se necessario per tornare all'istanza di Cloud Shell.
exit
Nota: per visualizzare le API e i servizi idonei che puoi utilizzare con l'accesso privato Google, consulta la
panoramica sull'accesso privato Google per un elenco dei servizi supportati.
Attività 3: configura un gateway Cloud NAT
Anche se vm-internal ora può accedere ad alcune API e alcuni servizi di Google senza un indirizzo IP esterno, l'istanza non può accedere a internet per aggiornamenti e patch. Configura un gateway Cloud NAT, che consente a vm-internal di accedere a internet.
Prova ad aggiornare le istanze VM
- In Cloud Shell, per provare a risincronizzare l'indice dei pacchetti, esegui il comando seguente:
sudo apt-get update
Dovrebbe essere visualizzato un output simile al seguente (output di esempio):
...
Reading package lists... Done
Questo comando dovrebbe funzionare perché Cloud Shell ha un indirizzo IP esterno.
- Per connetterti a vm-internal, esegui questo comando:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
- Se ti viene richiesto, digita Y per continuare.
- Per provare a risincronizzare l'indice dei pacchetti di vm-internal, esegui il comando seguente:
sudo apt-get update
Questo comando dovrebbe funzionare solo per i pacchetti Google Cloud perché vm-internal ha accesso solo alle API e ai servizi di Google.
- Premi Ctrl+C per arrestare la richiesta.
Configura un gateway Cloud NAT
Cloud NAT è una risorsa di regione. Puoi configurarla per consentire il traffico da tutti gli intervalli di tutte le subnet in una regione, solo da subnet specifiche nella regione o solo da intervalli CIDR primari e secondari.
-
Nella barra del titolo della console Google Cloud, digita Servizi di rete nel campo Cerca, quindi fai clic su Servizi di rete nella sezione Prodotto o Pagina.
-
Nella pagina Servizio di rete, fai clic su Blocca accanto a Servizi di rete.
-
Fai clic su Cloud NAT.
-
Fai clic su Inizia per configurare un gateway NAT.
-
Specifica quanto segue:
Proprietà |
Valore (digita il valore o seleziona l'opzione come specificato) |
Nome gateway |
nat-config |
Rete |
privatenet |
Regione |
|
-
Per Router Cloud, seleziona Crea nuovo router.
-
Come Nome, digita nat-router
-
Fai clic su Crea.
Nota: la sezione Mappatura NAT ti consente di scegliere le subnet da mappare al gateway NAT. Puoi anche assegnare manualmente indirizzi IP statici da utilizzare quando si esegue la mappatura NAT. Non modificare la configurazione della mappatura NAT di questo lab.
- Fai clic su Crea.
- Attendi che lo stato del gateway cambi in In esecuzione.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Configura un gateway Cloud NAT
Verifica il gateway Cloud NAT
La propagazione della configurazione NAT alla VM potrebbe richiedere fino a 3 minuti. Attendi almeno un minuto prima di riprovare ad accedere a internet.
- In Cloud Shell per vm-internal, per provare a risincronizzare l'indice dei pacchetti di vm-internal, esegui il comando seguente:
sudo apt-get update
Dovrebbe essere visualizzato un output simile al seguente (output di esempio):
...
Reading package lists... Done
Questo comando dovrebbe funzionare perché vm-internal utilizza il gateway NAT.
- Per tornare all'istanza di Cloud Shell, esegui il comando seguente:
exit
Nota: il gateway Cloud NAT implementa la mappatura NAT in uscita, ma non in entrata. In altre parole, gli host che si trovano all'esterno della tua rete VPC possono solo rispondere a connessioni avviate dalle tue istanze, non possono avviare nuove connessioni proprie alle tue istanze tramite NAT.
Attività 4: configura e visualizza i log con il logging Cloud NAT
Il logging Cloud NAT ti consente di registrare log delle connessioni NAT e dei relativi errori. Quando il logging Cloud NAT è abilitato, può essere generata una voce di log per ciascuno degli scenari seguenti:
- Alla creazione di una connessione di rete che utilizza NAT.
- Quando un pacchetto va perso perché non sono disponibili porte per NAT.
Puoi scegliere di registrare log per entrambi i tipi di eventi o per uno dei due. I log creati vengono inviati a Cloud Logging.
Abilita il logging
Se il logging è abilitato, tutti i log raccolti vengono inviati a Cloud Logging per impostazione predefinita. Puoi filtrarli in modo che solo alcuni log vengano inviati.
Puoi anche specificare questi valori quando crei un gateway NAT o modificandone uno dopo la creazione. Le indicazioni riportate di seguito mostrano come abilitare il logging per un gateway NAT esistente.
-
Nel menu di navigazione (
) della console Google Cloud, fai clic su Servizi di rete > Cloud NAT.
-
Fai clic sul gateway nat-config
, quindi su Modifica.
-
Fai clic sul menu a discesa Configurazioni avanzate per aprire la sezione corrispondente.
-
In Logging, seleziona Traduzione ed errori, quindi fai clic su Salva.
Logging NAT in Cloud Logging
Ora che hai configurato il logging Cloud NAT per il gateway nat-config
, vediamo dove possiamo visualizzare i log generati.
-
Fai clic su nat-config
per esporne i dettagli. Quindi fai clic su Visualizza in Esplora log.
-
Si aprirà una nuova scheda con Esplora log.
Vedrai che non contiene ancora nessun log, perché abbiamo appena abilitato la funzionalità per il gateway.
Nota: tieni aperta questa scheda e torna all'altra scheda della console Google Cloud.
Generazione dei log
Ti ricordiamo che i log di Cloud NAT vengono generati per le sequenze seguenti:
- Alla creazione di una connessione di rete che utilizza NAT.
- Quando un pacchetto va perso perché non sono disponibili porte per NAT.
Eseguiamo di nuovo la connessione dell'host alla VM interna per vedere se vengono generati log.
- In Cloud Shell per vm-internal, per provare a risincronizzare l'indice dei pacchetti di vm-internal, esegui il comando seguente:
gcloud compute ssh vm-internal --zone {{{project_0.default_zone|ZONE}}} --tunnel-through-iap
- Se ti viene richiesto, digita Y per continuare.
- Per provare a risincronizzare l'indice dei pacchetti di vm-internal, esegui il comando seguente:
sudo apt-get update
Dovrebbe essere visualizzato un output simile al seguente (output di esempio):
...
Reading package lists... Done
- Per tornare all'istanza di Cloud Shell, esegui il comando seguente:
exit
Vediamo se, aprendo questa connessione, nei log è apparso qualcosa di nuovo.
Visualizzazione dei log
- Torna alla scheda Esplora log e nel menu di navigazione, fai clic su Esplora log.
Dovresti vedere due nuovi log, generati dopo la connessione alla VM interna.
Nota: potresti dover attendere qualche minuto. Se ancora non riesci a visualizzare i log, ripeti dal passaggio 1 al passaggio 4, dalla sezione Generazione dei log, quindi aggiorna la pagina di logging.
Come puoi vedere, i log includono dettagli sulla rete VPC a cui è stata effettuata la connessione e sul metodo di connessione utilizzato. Espandi pure le varie etichette e i vari dettagli.
Attività 5: rivedi
Hai creato vm-internal, un'istanza senza indirizzi IP esterni, e hai eseguito la connessione in modo sicuro tramite un tunnel IAP. Quindi hai abilitato l'accesso privato Google, configurato un gateway NAT e verificato che vm-internal possa accedere alle API e ai servizi di Google e ad altri indirizzi IP pubblici.
Le istanze VM senza indirizzi IP esterni sono isolate dalle reti esterne. Utilizzando Cloud NAT, queste istanze possono accedere a internet per aggiornamenti e patch e, in alcuni casi, per il bootstrap. Come servizio gestito, Cloud NAT offre alta affidabilità senza gestione e intervento da parte dell'utente.
IAP utilizza i ruoli e le autorizzazioni del progetto esistente quando ti connetti alle istanze VM. Per impostazione predefinita, i proprietari delle istanze sono gli unici utenti che dispongono del ruolo IAP Secured Tunnel User.
Per sapere come consentire ad altri utenti di accedere alle tue VM utilizzando il tunneling IAP, vedi, nel Cloud Architecture Center, la Guida Concedere l'accesso a utenti aggiuntivi.
Termina il lab
Una volta completato il lab, fai clic su Termina lab. Google Cloud Skills Boost rimuove le risorse che hai utilizzato ed esegue la pulizia dell'account.
Avrai la possibilità di inserire una valutazione in merito alla tua esperienza. Seleziona il numero di stelle applicabile, inserisci un commento, quindi fai clic su Invia.
Il numero di stelle corrisponde alle seguenti valutazioni:
- 1 stella = molto insoddisfatto
- 2 stelle = insoddisfatto
- 3 stelle = esperienza neutra
- 4 stelle = soddisfatto
- 5 stelle = molto soddisfatto
Se non vuoi lasciare un feedback, chiudi la finestra di dialogo.
Per feedback, suggerimenti o correzioni, utilizza la scheda Assistenza.
Copyright 2020 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.