Questa pagina mostra come utilizzare la funzionalità Nodi GKE schermati. I nodi GKE schermati forniscono un'identità e un'integrità dei nodi verificabili e solidi per aumentare la sicurezza dei nodi Google Kubernetes Engine (GKE).
Per i cluster GKE Autopilot, la funzionalità Shielded GKE Nodes è abilitata per impostazione predefinita e non può essere sostituita. Per i cluster GKE standard, la funzionalità Shielded GKE Nodes è abilitata per impostazione predefinita, ma può essere sostituita.
Informazioni su Shielded GKE Nodes
I nodi GKE protetti sono basati su VM protette di Compute Engine. Senza Shielded GKE Nodes, un malintenzionato può sfruttare una vulnerabilità in un pod per esfiltrare le credenziali di bootstrap e simulare l'identità dei nodi nel cluster, consentendo agli utenti malintenzionati di accedere ai secret del cluster. Quando i nodi GKE schermati sono abilitati, il control plane GKE verifica in modo crittografico che:
- Ogni nodo del cluster è una macchina virtuale in esecuzione nel data center di Google.
- Ogni nodo fa parte del gruppo di istanze gestite (MIG) eseguito il provisioning per il cluster.
- Per kubelet viene eseguito il provisioning di un certificato per il nodo su cui è in esecuzione.
Ciò limita la capacità di un malintenzionato di rubare l'identità di un nodo nel tuo cluster anche se è in grado di esfiltrare le credenziali di bootstrap del nodo.
I nodi del piano di controllo del cluster GKE utilizzano sempre Shielded GKE Nodes, anche se disattivi la funzionalità nel cluster. L'attivazione o la disattivazione dei nodi GKE protetti influisce solo sull'utilizzo della funzionalità da parte dei nodi worker che eseguono i carichi di lavoro.
Prezzi
L'esecuzione di nodi GKE protetti non comporta costi aggiuntivi. Tuttavia, Shielded GKE Nodes generate circa 0,5 KB in più di log all'avvio rispetto ai nodi standard. Per maggiori dettagli, consulta la pagina dei prezzi di Cloud Logging.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Abilitazione di Shielded GKE Nodes in un nuovo cluster
Puoi creare un nuovo cluster con i nodi GKE protetti abilitati utilizzando la gcloud CLI o la console Google Cloud.
gcloud
Quando crei un nuovo cluster, specifica l'opzione --enable-shielded-nodes
:
gcloud container clusters create CLUSTER_NAME \
--enable-shielded-nodes
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Nel riquadro di navigazione, in Cluster, fai clic su Sicurezza.
Seleziona la casella di controllo Abilita nodi GKE schermati.
Configura il cluster come preferisci.
Fai clic su Crea.
Per ulteriori dettagli sulla creazione di cluster, consulta Creare un cluster.
Abilitazione di Shielded GKE Nodes in un cluster esistente
Puoi abilitare i nodi GKE protetti in un cluster esistente utilizzando Google Cloud CLI o la console Google Cloud.
In che modo GKE abilita i nodi GKE schermati
Dopo aver attivato i nodi GKE schermati, i nodi worker vengono ricreati come VM schermate. I nodi del cluster vengono ricreati in modo incrementale per ridurre al minimo i tempi di inattività.
Dopo aver attivato i nodi GKE schermati, GKE aggiorna il cluster con i seguenti passaggi:
- GKE ricrea immediatamente il piano di controllo, ignorando la disponibilità per la manutenzione.
- GKE ricrea i nodi worker come VM protette, rispettando la disponibilità per la manutenzione. GKE utilizza gli upgrade di picco per aggiornare ciascun pool di nodi. Questo dipende dalla disponibilità delle risorse. La disattivazione degli upgrade automatici dei nodi non impedisce questa variazione.
Per informazioni dettagliate su questa modifica specifica, individua la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi e rispettando le norme di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni per gli aggiornamenti dei nodi.
Abilita Shielded GKE Nodes
gcloud
Quando aggiorni il cluster, specifica l'opzione --enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da modificare.
In Sicurezza, nel campo Nodi GKE schermati, fai clic su edit Modifica nodi GKE schermati.
Seleziona la casella di controllo Abilita nodi GKE schermati.
Fai clic su Salva modifiche.
Verificare che i nodi GKE schermati siano abilitati
Verifica che il cluster utilizzi i nodi GKE protetti con Google Cloud CLI o la console Google Cloud.
gcloud
Descrivi il cluster:
gcloud container clusters describe CLUSTER_NAME
Se i nodi GKE schermati sono abilitati, l'output del comando includerà queste linee:
shieldedNodes:
enabled: true
Console
Per verificare che un cluster utilizzi i nodi GKE schermati:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da esaminare.
In Sicurezza, nel campo Nodi GKE schermati, verifica che i nodi GKE schermati siano abilitati.
Puoi anche monitorare l'integrità delle VM schermate sottostanti dei tuoi nodi. Per la procedura, consulta Monitoraggio dell'integrità su Shielded VM schermate.
Disabilitazione di Shielded GKE Nodes
Puoi disattivare i nodi GKE protetti con Google Cloud CLI o la console Google Cloud.
In che modo GKE disattiva i nodi GKE schermati
Dopo aver disattivato i nodi GKE schermati, GKE aggiorna il cluster con i seguenti passaggi:
- GKE ricrea immediatamente il piano di controllo, ignorando la disponibilità per la manutenzione.
- GKE ricrea i nodi worker come VM non protette, rispettando la disponibilità per la manutenzione. GKE utilizza gli upgrade di picco per aggiornare ciascun pool di nodi. Questo dipende dalla disponibilità delle risorse. La disattivazione degli upgrade automatici dei nodi non impedisce questa variazione.
Per informazioni dettagliate su questa modifica specifica, individua la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi e rispettando le norme di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni per gli aggiornamenti dei nodi.
Disattivare i nodi GKE schermati
gcloud
Quando aggiorni il cluster, specifica l'opzione --no-enable-shielded-nodes
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da modificare.
In Sicurezza, nel campo Nodi GKE schermati, fai clic su edit Modifica nodi GKE schermati.
Deseleziona la casella di controllo Abilita Shielded GKE Nodes.
Fai clic su Salva modifiche.
Integrità dei nodi
Facoltativamente, puoi configurare i controlli di integrità dei nodi sui pool di nodi per fornire una protezione avanzata contro rootkit e bootkit per i tuoi nodi. Shielded GKE Nodes, l'avvio protetto e il monitoraggio dell'integrità sono funzionalità indipendenti che possono essere abilitate o disattivate singolarmente.
Avvio protetto
L'avvio protetto è un'impostazione del pool di nodi che autentica i componenti di avvio delle VM dei nodi, come il kernel e il bootloader, durante il processo di avvio. L'avvio protetto è disattivato per impostazione predefinita nei node pool.
Prima di attivare il boot sicuro nei pool di nodi, tieni presente quanto segue:
- L'attivazione dell'avvio protetto nei nodi Ubuntu impedisce il caricamento di moduli del kernel di terze parti non firmati in questi nodi.
- L'attivazione dell'avvio protetto nei nodi Container-Optimized OS non influisce sul caricamento dei moduli del kernel perché le immagini dei nodi Container-Optimized OS controllano la possibilità di caricare moduli del kernel di terze parti separatamente dall'avvio protetto.
Per attivare il boot sicuro, utilizza Google Cloud CLI o la console Google Cloud.
gcloud
Per abilitare l'avvio protetto durante la creazione di un cluster:
gcloud container clusters create CLUSTER_NAME \
--shielded-secure-boot
Per abilitare l'avvio protetto quando crei un pool di nodi:
gcloud container node-pools create POOL_NAME \
--shielded-secure-boot
L'avvio protetto è disattivato per impostazione predefinita. Puoi disattivarlo esplicitamente quando crei un cluster o un pool di nodi con l'opzione --no-shielded-secure-boot
.
Console
Per abilitare l'avvio protetto quando crei un pool di nodi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Nel menu di navigazione, fai clic su Sicurezza.
Nella sezione Opzioni per nodi schermati, seleziona la casella di controllo Abilita l'avvio protetto.
Fai clic su Crea.
Monitoraggio dell'integrità
Il monitoraggio dell'integrità è un'impostazione del pool di nodi abilitata per impostazione predefinita in GKE. Puoi disattivare il monitoraggio dell'integrità con Google Cloud CLI o la console Google Cloud.
gcloud
Per disattivare il monitoraggio dell'integrità per i componenti di sistema durante la creazione di un cluster:
gcloud container clusters create CLUSTER_NAME \
--no-shielded-integrity-monitoring
Per disattivare il monitoraggio dell'integrità per i componenti di sistema durante la creazione di un pool di nodi:
gcloud container node-pools create POOL_NAME \
--no-shielded-integrity-monitoring
Il monitoraggio dell'integrità è abilitato per impostazione predefinita. Puoi attivarla esplicitamente quando crei un cluster o un pool di nodi con l'opzione --shielded-integrity-monitoring
.
Console
Per disattivare il monitoraggio dell'integrità durante la creazione di un pool di nodi:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Nel riquadro di navigazione, fai clic su Sicurezza.
In Opzioni per nodi schermati, deseleziona la casella di controllo Abilita il monitoraggio dell'integrità.