Obiettivi
In questo tutorial scoprirai quanto segue:
- Creazione di un modello di istanza Compute Engine e di un gruppo di istanze gestite (MIG).
- Ottieni un nome di dominio e un certificato.
- Creazione di un bilanciatore del carico HTTPS con un certificato.
- Abilitazione di IAP in corso.
- Verificare che IAP funzioni.
Costi
Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:
- 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 pagina 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:
Al termine dell'aggiornamento dei valori, fai clic su Crea per creare il modello.
Passaggio 2: crea un gruppo di istanze gestite
Nella console Google Cloud, vai alla pagina Compute Engine > Crea un nuovo gruppo di istanze e seleziona il progetto in cui vuoi creare un gruppo di istanze gestite.
VAI ALLA PAGINA CREA 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 i seguenti 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 il gruppo di istanze gestite.
Passaggio 3: ottieni un nome di dominio e un certificato
Per utilizzare il bilanciatore del carico con il traffico HTTPS, hai bisogno di un nome di dominio e di un certificato firmato. Puoi registrare un dominio su Google Domains o utilizzare il registrar di dominio che preferisci. Registra il tuo dominio prima di continuare su questa guida.
Configurare il certificato
Crea un certificato che identifichi il tuo sito web per gli utenti. Per informazioni su come creare un certificato, vedi Utilizzare i certificati SSL gestiti da Google.
La tua CA deve verificare che il nome di dominio che hai registrato sia di tua proprietà. Nei passaggi seguenti creerai una VM per autenticare il tuo dominio con la CA.
Creare una VM per autenticare la proprietà del dominio
Nella console Google Cloud, vai a Compute Engine > Pagina Crea un'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
Al termine dell'aggiornamento dei valori, fai clic su Crea per creare l'istanza VM. Prendi nota dell'indirizzo IP esterno della VM appena creata. Ti servirà nel passaggio successivo.
Configura il dominio in modo che rimandi alla VM
Per configurare il dominio in modo che punti 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. La pagina potrebbe avere un nome simile a "Gestione DNS", "Gestione server dei nomi" o "Impostazioni avanzate".
- Modifica i record A con i valori seguenti:
- 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 propagazione del record aggiunto può richiedere fino a un giorno.
Per saperne di più, consulta Informazioni sui record A.
Testa il server
Per verificare che il server funzioni correttamente, procedi nel seguente modo:
Nella console Google Cloud, vai alla pagina 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 deve visualizzare
Hello
, mentre la sessione SSH dovrebbe mostrare un messaggio contenente... response:200
. In caso contrario, attendi qualche minuto, quindi ripeti questo passaggio.Una volta eseguito il test, premi Ctrl+C per arrestare il server web.
Creare un certificato
Per creare un certificato, registrati con Let's Encrypt eseguendo i seguenti comandi sulla VM in cui YOUR_DOMAIN è il tuo nome di dominio, escluso il protocollo:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Durante questa operazione, Let's Encrypt potrebbe richiedere un indirizzo email per poter inviare un promemoria alla scadenza del certificato (per impostazione predefinita, 3 mesi dopo l'emissione). Devi inoltre accettare i Termini di servizio stabiliti da Let's Encrypt.
Dopo aver completato la registrazione, dovresti visualizzare un messaggio che indica
Congratulations! Your certificate and chain have been saved at...
Aggiungi il certificato al progetto
Per aggiungere il certificato al tuo 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 aver creato correttamente il certificato, dovresti visualizzare un messaggio simile al seguente: 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 iniziata nel passaggio precedente. Quando è tutto pronto, segui i passaggi riportati di seguito per creare un bilanciatore del carico:
Nella console Google Cloud, vai alla pagina Servizi di rete > Crea un bilanciatore del carico e seleziona il progetto per cui vuoi creare un bilanciatore del carico.
VAI ALLA PAGINA CREA 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 HTTP(S) esterno, 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 avere aggiornato i valori, fai clic su Crea. Viene visualizzato di nuovo il riquadro Nuovo bilanciatore del carico HTTP(S).
Fai clic su Regole host e percorso per caricare i valori predefiniti. Non devi aggiungere alcuna regola.
Fai clic su Configurazione frontend. Utilizza i valori predefiniti ad eccezione di quanto segue:
- 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 di configurazione frontend, fai clic su Fine. Viene visualizzato di nuovo il riquadro Nuovo bilanciatore del carico HTTP(S) esterno.
In Nuovo bilanciatore del carico HTTP(S) esterno, fai clic su Crea. Viene visualizzata la pagina Bilanciamento del carico e il nuovo bilanciatore del carico viene creato nell'elenco di bilanciatori del carico.
Dopo che la console Google Cloud termina la creazione del nuovo bilanciatore del carico, fai clic sul nome del bilanciatore e prendi nota dell'indirizzo IP esterno in Dettagli > Frontend. Ti servirà nel passaggio successivo.
Configurare il dominio per puntare al bilanciatore del carico
Per impostare il tuo dominio in modo che rimandi al bilanciatore del carico, configura i record A seguendo questi passaggi:
- Accedi all'account del tuo dominio presso l'host.
- Trova la pagina per aggiornare i record DNS del dominio. La pagina potrebbe avere un nome simile a "Gestione DNS", "Gestione server dei nomi" o "Impostazioni avanzate".
- Modifica i record A con i valori seguenti:
- Nome/Host/Alias: @
- Valore: l'indirizzo IP esterno del bilanciatore del carico che hai creato sopra. Non includere la porta
:443
nel record DNS. - TTL: il valore predefinito per il registrar o 86400 (un giorno).
- Attendi l'aggiornamento del record DNS. La propagazione del record appena aggiunto potrebbe richiedere fino a un giorno.
- Per testare il bilanciatore del carico, utilizza un browser web per accedere al dominio con un protocollo
https://
.- Se il bilanciatore del carico non è ancora configurato, verranno visualizzati errori "HTTP 502".
- Quando il bilanciatore del carico è pronto, vedrai il messaggio "Richiesta non autorizzata".
Per saperne di più, consulta Informazioni sui record A.
Riavvia le tue VM
Per autenticare correttamente le richieste da IAP, devi riavviare le VM nel gruppo di istanze gestite nel seguente modo:
- 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 che vengono visualizzati, fai clic su Riavvia in sequenza/Sostituisci.
- Nella pagina Riavvia/sostituisci le istanze di my-managed-instance-group che viene visualizzata, imposta i seguenti valori:
- Operazione: riavvia
- Numero massimo non disponibili: 3 istanze su 3.
- Tempo di attesa minimo: 0 s
- Terminato l'aggiornamento dei valori, fai clic su Riavvia.
Passaggio 5: configura IAP
Configura il firewall
Ora configurerai il tuo firewall in modo da bloccare l'accesso alle VM sottostanti e consentire l'accesso solo tramite IAP:
- Vai a Rete VPC > Regole firewall della console Google Cloud.
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 nella casella). Gli intervalli IP sono inclusi 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 avere aggiornato i valori, fai clic su Crea.
Configura IAP
Per configurare IAP per il progetto, segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Sicurezza > Identity-Aware Proxy e seleziona il progetto per cui vuoi abilitare IAP.
VAI ALLA PAGINA PROSSY AZIONAMENTO Se non hai configurato la schermata per il consenso OAuth del tuo progetto, ti verrà chiesto di farlo:
-
Vai alla schermata di consenso OAuth.
Configurare la schermata per il consenso - In Email di assistenza, seleziona l'indirizzo email che vuoi visualizzare come contatto pubblico. L'indirizzo email deve appartenere all'account utente attualmente connesso o a un gruppo Google di cui fa parte l'utente che ha eseguito l'accesso.
- Inserisci il Nome applicazione che vuoi visualizzare.
- Aggiungi eventuali dettagli facoltativi.
- Fai clic su Salva.
Per modificare in seguito le informazioni sulla schermata di consenso OAuth, ad esempio il nome del prodotto o l'indirizzo email, ripeti i passaggi precedenti per configurare la schermata di consenso.
-
Vai alla schermata di consenso OAuth.
Accanto a my-backend-service,
Nella finestra Attiva IAP visualizzata, seleziona la casella di controllo accanto a "Ho letto i requisiti di configurazione e configurato la risorsa Compute Engine in base alla documentazione".
Fai clic su Attiva.
Aggiungi entità all'elenco di accesso
Successivamente, aggiungerai entità all'elenco di accesso IAP per il tuo progetto.
- Nella sezione IAM e amministrazione & gt; Identity-Aware Proxy sul lato destro Accedi, fai clic su Aggiungi.
- Inserisci le entità a cui vuoi concedere l'accesso, incluso te stesso, e assegnale il ruolo Utente applicazione web con protezione IAP. Le entità possono essere:
- Account Google: user@gmail.com
- Google Gruppi: admins@googlegroups.com
- Account di servizio: server@example.gserviceaccount.com
- Domini Google Workspace: example.com
Passaggio 6: prova IAP
Per verificare che IAP funzioni correttamente:
- Nel browser web, vai al tuo dominio.
- Se vedi "Richiesta non autorizzata", riprova dopo qualche minuto.
- Quando viene visualizzata una schermata di accesso di Google, accedi con l'Account Google a cui hai concesso l'accesso nel passaggio precedente.
- Dovresti vedere il messaggio "Ciao, utente@example.com. Sono my-managed-instance-group-29z6".
- Prova ad aggiornare la pagina. Il browser dovrebbe mostrare i nomi delle tre macchine nel gruppo di istanze gestite. Questo è il bilanciatore del carico che distribuisce il traffico tra le VM nel gruppo.
Complimenti! Hai abilitato un servizio con bilanciamento del 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 completato la configurazione di IAP per Compute Engine, puoi eseguire la pulizia delle risorse che hai creato su Google Cloud, così non ti verrà addebitato alcun costo in futuro. Le seguenti sezioni descrivono come eliminare o 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:
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Eliminazione di istanze
Per eliminare un'istanza di Compute Engine:
- In Google Cloud Console, vai alla pagina Istanze VM.
- Seleziona la casella di controllo l'istanza che vuoi eliminare.
- Per eliminare l'istanza, fai clic su Altre azioni, poi su Elimina e segui le istruzioni.
Eliminazione delle regole firewall per la rete predefinita in corso...
Per eliminare una regola firewall:
- In Google Cloud Console, vai alla pagina Firewall.
- Seleziona la casella di controllo la regola firewall che vuoi eliminare.
- Per eliminare la regola firewall, fai clic su Elimina.
Passaggi successivi
- Prova a modificare l'app di esempio che abbiamo usato in questo tutorial per pubblicare altri dati.
- Leggi le best practice per capire come scrivere le tue app e proteggerle con IAP.