Obiettivi
In questo tutorial imparerai a:
- Creazione di un modello di istanza Compute Engine e di un gruppo di istanze gestite (MIG).
- Ottenere un nome di dominio e un certificato.
- Creazione di un bilanciatore del carico HTTPS con un certificato.
- Attivazione di IAP.
- Il test di IAP funziona.
Costi
Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:
- Google Compute Engine
- 4 macchine virtuali (VM)
- Networking
- Regola di forwarding del bilanciatore del carico globale
- Traffico in ingresso
Per una stima dei costi basati sull'utilizzo previsto, consulta questo Calcolatore prezzi.
Prima di iniziare
Prima di iniziare questo tutorial, avrai bisogno di quanto segue:
Seleziona o crea un progetto Google Cloud.
VAI ALLA PAGINA PROGETTIAbilita la fatturazione per il tuo progetto. Leggi come Modificare le impostazioni di fatturazione di un progetto
Passaggio 1: crea un modello Compute Engine
Nella console Google Cloud, vai alla Compute Engine > Crea un modello di istanza e seleziona il progetto in cui vuoi creare un modello.
VAI ALLA PAGINA CREA UN MODELLO DI ISTANZA
Utilizza i valori predefiniti, ad eccezione di quanto segue:
- Tipo di macchina:
- micro (f1-micro)
- Ambiti di accesso:
- Imposta l'accesso per ogni API
- Compute Engine: Sola lettura
- Firewall:
- Consenti traffico HTTP
- Nella sezione Gestione, in Automazione > Script di avvio, copia e incolla il seguente script:
Dopo aver aggiornato i valori, fai clic su Crea per creare il modello.
Passaggio 2: crea un gruppo di istanze gestite
Nella console Google Cloud, vai alla Compute Engine > Crea un nuovo gruppo di istanze e seleziona il progetto in cui vuoi creare un'istanza gestita Gruppo.
VAI ALLA PAGINA PER CREARE UN GRUPPO DI ISTANZE
Utilizza i valori predefiniti, ad eccezione di quanto segue:
- Nome:my-managed-instance-group
- Località:multizona
- Modello di istanza:seleziona il modello di istanza che hai creato nel passaggio 1.
- Numero di istanze: per modificare il numero di istanze, devi prima disattivare la scalabilità automatica.
- Modalità di scalabilità automatica: Non scalare automaticamente
Controllo di integrità:seleziona Crea un controllo di integrità, quindi inserisci quanto segue valori:
- Nome: my-health-check
- Protocollo: HTTP
Utilizza il nuovo controllo di integrità facendo clic su Salva e continua.
Dopo aver aggiornato i valori, fai clic su Crea per creare l'interfaccia utente gruppo di istanze (MIG).
Passaggio 3: ottieni un nome di dominio e un certificato
Per utilizzare il bilanciatore del carico con il traffico HTTPS, sono necessari un nome di dominio e una certificato firmato. Puoi registrare un dominio su Google Domains o utilizzare il registrar di domini che preferisci. Registrare il dominio prima di continua questa guida.
Configurare il certificato
Crea un certificato che identifichi il tuo sito web per gli utenti. Per informazioni su come creare un certificato, consulta Utilizzare i certificati SSL gestiti da Google.
L'autorità di certificazione deve verificare che tu possieda il nome di dominio che hai registrato. Nei passaggi di seguito, creerai una VM per autenticare il tuo dominio con la CA.
Crea una VM per autenticare la proprietà del dominio
Nella console Google Cloud, vai alla Compute Engine > Crea una pagina dell'istanza.
VAI ALLA PAGINA CREA UN'ISTANZA
Utilizza i valori predefiniti, ad eccezione di quanto segue:
- Nome:certbot-vm
- Tipo di macchina: micro (f1-micro)
- Ambiti di accesso:
- Imposta l'accesso per ogni API
- Compute Engine: lettura/scrittura
- Immagine disco di avvio:
- Debian GNU/Linux 9 (stretch)
- Firewall:
- Consenti traffico HTTP
- Consenti traffico HTTPS
Dopo aver aggiornato i valori, fai clic su Crea per creare la VM. in esecuzione in un'istanza Compute Engine. Prendi nota dell'indirizzo IP esterno della VM appena creata. Ti serviranno nel passaggio successivo.
Configura il dominio in modo che rimandi alla VM
Per configurare il dominio in modo che rimandi alla VM, segui questi passaggi per configurare i record A:
- Accedi all'account del tuo dominio presso l'host.
- Trova la pagina per aggiornare i record DNS del dominio. Questa pagina potrebbe essere chiamata ad esempio "Gestione DNS", "Name Server Management" (Gestione server dei nomi), o "Impostazioni avanzate"
- Modifica i record A con i seguenti valori:
- Nome/Host/Alias: @
- Valore: l'indirizzo IP esterno della VM creata in precedenza per autenticare la proprietà del dominio.
- TTL: il valore predefinito per il registrar o 86400 (un giorno).
- Attendi l'aggiornamento del record DNS. La registrazione può richiedere fino a un giorno aggiunto per la propagazione.
Per saperne di più, vedi Informazioni sui record A.
testa il server
Per verificare che il server funzioni correttamente, segui questi passaggi:
Nella console Google Cloud, vai alla Compute Engine > Istanze VM.
VAI ALLA PAGINA ISTANZE VMIn Connetti per certbot-vm, fai clic su SSH.
Esegui questi comandi per eseguire un piccolo server web sulla VM:
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -f
In un browser web, vai al nome di dominio che hai registrato in precedenza. Il browser web dovrebbe visualizzare
Hello
, mentre la sessione SSH dovrebbe mostrare un messaggio contenente... response:200
. In caso contrario, attendi qualche minuto. ripeti questo passaggio.Se il test ha esito positivo, premi Ctrl+C per interrompere il web server web.
Crea un certificato
Per creare un certificato, registrati con Let's Encrypt eseguendo questi comandi sulla VM in cui YOUR_DOMAIN è nome di dominio, escluso il protocollo:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Durante questo processo, Let's Encrypt potrebbe richiedere un indirizzo email per inviare un un promemoria relativo alla scadenza del certificato (per impostazione predefinita, tre mesi dopo quando viene emesso). Devi anche accettare i Termini di servizio stabiliti da Let's Encrypt.
Una volta completata la registrazione, dovrebbe essere visualizzato il messaggio
Congratulations! Your certificate and chain have been saved at...
Aggiungi il certificato al progetto
Per aggiungere il certificato al progetto, esegui i comandi seguenti sulla VM:
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
Dopo avere creato il certificato, dovresti visualizzare un messaggio
simile a: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Prima di continuare, chiudi la sessione SSH.
Passaggio 4: crea un bilanciatore del carico
Prima di iniziare questo passaggio, assicurati di aver chiuso la sessione SSH avviata al passaggio precedente. Quando è tutto pronto, segui questi passaggi per creare un caricamento bilanciatore del carico:
Nella console Google Cloud, vai alla Servizi di rete > Crea un bilanciatore del carico e seleziona il progetto per il quale vuoi creare un bilanciatore del carico.
VAI ALLA PAGINA CREARE UN Bilanciatore del caricoIn Bilanciamento del carico HTTP(S), fai clic su Avvia configurazione.
Seleziona Da internet alle mie VM.
Nella pagina Nuovo bilanciatore del carico delle applicazioni esterno che viene visualizzata, inserisci un Nome per il bilanciatore del carico.
Fai clic su Configurazione backend, quindi seleziona Servizi di backend > Crea un servizio di backend.
Nel riquadro Crea servizio di backend, nella casella Nome, inserisci
my-backend-service
.
In Nuovo backend, utilizza i valori predefiniti, ad eccezione di quanto segue:
- Gruppo di istanze: my-managed-instance-group
In Controllo di integrità, seleziona my-health-check.
Dopo aver aggiornato i valori, fai clic su Crea. Il riquadro Nuovo bilanciatore del carico HTTP(S) viene visualizzato di nuovo.
Fai clic su Regole host e percorso per caricare i valori predefiniti. Non è necessario e aggiungere regole.
Fai clic su Configurazione frontend. Utilizza i valori predefiniti, ad eccezione di seguenti:
- Protocollo:HTTPS
- Indirizzo IP:fai clic su Crea indirizzo IP.
- Inserisci un nome da associare al nuovo indirizzo IP statico.
- Fai clic su Prenota per prenotare l'indirizzo IP statico.
- Certificato:my-cert
Dopo aver inserito i valori della configurazione frontend, fai clic su Fine.
Fai clic su Crea. Il carico viene visualizzata la pagina e il nuovo bilanciatore del carico verrà creato dei bilanciatori del carico.
Al termine della creazione del nuovo bilanciatore del carico, fai clic sul nome del bilanciatore del carico e prendi nota dell'indirizzo IP esterno Dettagli > Frontend. Ti servirà nel passaggio successivo.
Configura il dominio in modo che rimandi al bilanciatore del carico
Per configurare il dominio in modo che rimandi al bilanciatore del carico, configura i record A seguendo i passaggi riportati di seguito:
- Accedi all'account del tuo dominio presso l'host.
- Trova la pagina per aggiornare i record DNS del dominio. Questa pagina potrebbe essere chiamata ad esempio "Gestione DNS", "Name Server Management" (Gestione server dei nomi), o "Impostazioni avanzate"
- Modifica i record A con i seguenti valori:
- Nome/Host/Alias: @
- Valore:l'indirizzo IP esterno del bilanciatore del carico che hai creato
in alto. Non includere la porta
:443
nel tuo record DNS. - TTL: il valore predefinito per il registrar o 86400 (un giorno).
- Attendi l'aggiornamento del record DNS. La registrazione può richiedere fino a un giorno che hai appena aggiunto per la propagazione.
- Per testare il bilanciatore del carico, utilizza un browser web per accedere al tuo dominio con una
protocollo
https://
.- Se il bilanciatore del carico non è ancora configurato, verrà visualizzato "HTTP 502" errori.
- Quando il bilanciatore del carico è pronto, vedrai "Richiesta non autorizzata".
Per saperne di più, vedi Informazioni sui record A.
Riavvia le VM
Per autenticare correttamente le richieste da IAP, devi riavviare alle VM nel gruppo di istanze gestite seguendo questi passaggi:
- Nella console Google Cloud, vai alla pagina Compute Engine > Gruppi di istanze.
VAI ALLA PAGINA GRUPPI DI ISTANZE - Fai clic su my-managed-instance-group.
- Nella parte superiore dei dettagli del gruppo di istanze visualizzati, fai clic su Rotazione in sequenza Riavvia/Sostituisci.
- Nella pagina Riavvia/sostituisci le istanze di my-managed-instance-group che
, imposta i seguenti valori:
- Operazione: riavvia
- Numero massimo non disponibili: 3 istanze su 3
- Tempo di attesa minimo: 0 s
- Dopo aver aggiornato i valori, fai clic su Riavvia.
Passaggio 5: configura IAP
Configura il firewall
Il passaggio successivo consiste nel configurare il firewall in modo da bloccare l'accesso alle VM sottostanti Consenti l'accesso solo tramite IAP:
- Vai alla console Google Cloud
Rete VPC > Regole firewall.
VAI ALLA PAGINA REGOLE FIREWALL - Seleziona la casella di controllo accanto alle seguenti regole:
- default-allow-http
- default-allow-https
- default-allow-internal
- Fai clic su Elimina.
- Fai clic su Crea regola firewall e imposta i seguenti valori:
- Nome:allow-iap-traffic
- Destinazioni: tutte le istanze nella rete
- Intervalli IP di origine (premi Invio dopo aver incollato ogni valore)
contenuto nella confezione). Gli intervalli IP sono inseriti nella lista consentita perché è un prerequisito
per la comunicazione del bilanciatore
del carico con i backend.
- 130.211.0.0/22
- 35.191.0.0/16
- Protocolli e porte:
- Protocolli e porte specificati
- tcp:80
- Dopo aver aggiornato i valori, fai clic su Crea.
Configura IAP
Per configurare IAP per il tuo progetto, segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Sicurezza > Identity-Aware Proxy e seleziona il progetto per cui vuoi attivare IAP.
VAI ALLA PAGINA PROXY DI IDENTITY-AWARE Se non hai configurato la schermata per il consenso OAuth del progetto, dovrai richiesto:
-
Go to the OAuth consent screen.
Configure consent screen - Under Support email, select the email address you want to display as a public contact. The email address must belong to the currently logged in user account or to a Google Group for which the currently logged in user is a manager or owner.
- Enter the Application name you want to display.
- Add any optional details you'd like.
- Click Save.
To change information on the OAuth consent screen later, such as the product name or email address, repeat the preceding steps to configure the consent screen.
-
Go to the OAuth consent screen.
Accanto a my-backend-service,
Nella finestra Attiva IAP visualizzata, seleziona la casella di controllo accanto "Ho letto i requisiti di configurazione e configurato Compute Engine risorsa in base alla documentazione."
Fai clic su Attiva.
Aggiungi entità all'elenco per gli accessi
Successivamente, aggiungerai entità all'elenco per gli accessi IAP del progetto.
- Nella sezione Accesso a destra di IAM e amministrazione > Identity-Aware Proxy, fai clic su Aggiungi.
- Inserisci le entità a cui vuoi concedere l'accesso, incluso te, e
e assegnare alle entità il ruolo Utente applicazione web con protezione IAP. Le entità possono essere:
- Account Google: utente@gmail.com
- Google Gruppi: admins@googlegroups.com
- Account di servizio: server@example.gserviceaccount.com
- Domini Google Workspace: example.com
Passaggio 6: testa IAP
Per verificare che IAP funzioni correttamente, segui questi passaggi:
- Nel browser web, vai al tuo dominio.
- Se vedi il messaggio "Richiesta non autorizzata", riprova tra qualche minuto.
- Quando vedi una schermata di accesso a Google, accedi con l'Account Google che a cui hai concesso l'accesso nel passaggio precedente.
- Dovresti visualizzare un messaggio simile a "Ciao, utente@example.com. Sono my-managed-instance-group-29z6."
- Prova ad aggiornare la pagina. Il browser dovrebbe mostrare i nomi dei tre nel tuo gruppo di istanze gestite. Questo è il bilanciatore del carico che distribuisce il traffico tra le VM nel gruppo.
Complimenti! Hai attivato un servizio bilanciato in base al carico utilizzando IAP.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Dopo aver configurato IAP per Compute Engine, puoi eseguire la pulizia delle risorse che hai creato su Google Cloud per evitare fatturati in futuro. Le seguenti sezioni descrivono come eliminare o per disattivare queste risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Eliminazione di istanze
Per eliminare un'istanza di Compute Engine:
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
Eliminazione delle regole del firewall per la rete predefinita
Per eliminare una regola firewall:
- In the Google Cloud console, go to the Firewall page.
- Select the checkbox for the firewall rule that you want to delete.
- To delete the firewall rule, click Delete.
Passaggi successivi
- Prova a modificare il app di esempio che abbiamo usato in questo tutorial per gestire altri dati.
- Leggi le best practice per a scrivere le tue app e a proteggerle con IAP.