Questa pagina mostra come applicare la crittografia dei dati in uso nei nodi e nei workload utilizzando Confidential Google Kubernetes Engine Node. L'applicazione della crittografia può contribuire ad aumentare la sicurezza dei workload.
Questa pagina è rivolta agli esperti di sicurezza che implementano misure di sicurezza su GKE. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni degli utenti GKE.
Prima di leggere questa pagina, assicurati di avere familiarità con il concetto di dati in uso.
Che cos'è Confidential GKE Node?
Puoi criptare i tuoi workload con Confidential GKE Node o con la modalità riservata per Hyperdisk bilanciato.
Confidential GKE Node
Confidential GKE Node utilizza Confidential VM di Compute Engine per proteggere i dati in uso con la crittografia della memoria basata su hardware. Confidential GKE Node supporta le seguenti tecnologie di Confidential Computing:
- AMD Secure Encrypted Virtualization (SEV)
- AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP)
- Intel Trust Domain Extensions (TDX)
Per saperne di più su queste tecnologie e per scegliere quella più adatta alle tue esigenze, consulta la panoramica di Confidential VM.
Confidential GKE Node non modifica le misure di sicurezza che GKE applica ai control plane dei cluster. Per scoprire di più su queste misure, consulta Sicurezza del control plane. Per la visibilità su chi accede ai control plane nei tuoi progetti Google Cloud, utilizza Access Transparency.
Puoi abilitare Confidential GKE Node per interi cluster, per node pool specifici o per workload specifici. La tabella seguente descrive questi metodi di attivazione:
| Impostazione Confidential GKE Node | Descrizione | Comportamento |
|---|---|---|
| Livello del workload | Configura Confidential GKE Node in una ComputeClass, quindi seleziona la ComputeClass in un workload. GKE crea nodi che utilizzano questa configurazione per eseguire i pod. | L'impostazione del workload supporta una delle seguenti tecnologie di Confidential Computing, indipendentemente dalla modalità del cluster o dal tipo di pool di nodi:
|
| Livello cluster | Questa impostazione è irreversibile.
Abilita Confidential GKE Node quando crei un nuovo cluster Autopilot o Standard. Tutti i nodi del cluster utilizzano Confidential GKE Node. Non puoi eseguire l'override dell'impostazione del cluster per singoli pool di nodi o workload. |
Le tecnologie supportate a livello di cluster dipendono dalla modalità operativa del cluster, come segue:
|
| Livello del node pool | Abilita Confidential GKE Node quando crei un nuovo node pool in un cluster Standard. Puoi utilizzare questo metodo solo se Confidential GKE Node è disabilitato a livello di cluster. | Le tecnologie supportate a livello di pool di nodi dipendono dall'utilizzo o meno del provisioning automatico dei nodi da parte del node pool, come segue:
|
Modalità Confidential per Hyperdisk Balanced
Puoi anche attivare la modalità riservata per Hyperdisk Balanced sullo spazio di archiviazione del disco di avvio, che cripta i dati su enclave aggiuntive con crittografia hardware.
Puoi attivare la modalità riservata per Hyperdisk bilanciato quando esegui una delle seguenti operazioni:
- Crea un nuovo cluster
- Crea un nuovo node pool
Non puoi aggiornare un cluster o un pool di nodi esistente per modificare l'impostazione della modalità Confidential per Hyperdisk bilanciato.
La tabella seguente mostra il comportamento di GKE che si applica quando attivi l'impostazione della modalità Confidential per Hyperdisk Balanced a livello di cluster o di node pool:
| Impostazione della modalità riservata per Hyperdisk bilanciato | Modalità di configurazione | Comportamento |
|---|---|---|
| A livello di cluster | Crea un nuovo cluster | Solo il pool di nodi predefinito nel cluster utilizzerà l'impostazione della modalità Confidential per Hyperdisk bilanciato. Non puoi eseguire le seguenti operazioni:
|
| Livello del node pool | Crea un nuovo node pool | Puoi configurare l'impostazione della modalità Confidential per Hyperdisk bilanciato per i nuovi pool di nodi al momento della creazione. Non puoi aggiornare i node pool esistenti per utilizzare la modalità Confidential per l'impostazione Hyperdisk bilanciato. |
Prezzi
A seconda di come configuri Confidential GKE Node, si applicano i seguenti prezzi:
| Prezzi di Confidential GKE Node | |
|---|---|
| A livello di workload | Nei workload Autopilot, si applicano entrambi i seguenti costi:
Nei workload Standard, si applicano entrambi i seguenti costi:
|
| A livello di cluster | Nei cluster Autopilot, si applicano entrambi i seguenti costi:
Nei cluster Standard, si applicano entrambi i seguenti costi:
|
| Livello del node pool | Nei node pool Standard, si applicano i seguenti costi:
|
Inoltre, i Confidential GKE Node potrebbero generare un volume di dati di log leggermente superiore all'avvio rispetto ai nodi che non sono Confidential GKE Node. Per maggiori informazioni sui prezzi dei log, consulta Prezzi di Google Cloud Observability.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- Abilita l'API Google Kubernetes Engine. Abilita l'API Google Kubernetes Engine
- Per utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il comando
gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Requisiti
Confidential GKE Node prevede i seguenti requisiti:
- I cluster Autopilot devono eseguire la seguente versione di GKE:
- Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.
- Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.
I cluster Standard devono eseguire una delle seguenti versioni di GKE, a seconda della tecnologia Confidential Computing e del sistema operativo dei nodi che scegli:
Container-Optimized OS:
- AMD SEV: qualsiasi versione di GKE.
- AMD SEV-SNP: 1.32.2-gke.1297000 o versioni successive.
- Intel TDX: 1.32.2-gke.1297000 o versioni successive.
Ubuntu:
- AMD SEV: 1.33.5-gke.1350000 o versioni successive e 1.34.1-gke.2037000 o versioni successive.
- AMD SEV-SNP: 1.33.5-gke.1350000 o versioni successive e 1.34.1-gke.2037000 o versioni successive.
- Intel TDX: 1.33.5-gke.1697000 o versioni successive e 1.34.1-gke.2909000 o versioni successive.
Per abilitare Confidential GKE Node a livello di workload, i cluster Autopilot e Standard devono eseguire GKE versione 1.33.3-gke.1392000 o successiva.
I nodi devono utilizzare un tipo di macchina che supporti la tecnologia Confidential Computing che scegli. Per ulteriori informazioni, consulta Tipi di macchine.
I control plane e i nodi del cluster devono trovarsi in una località che supporti la tecnologia Confidential Computing scelta. Per saperne di più, consulta Zone.
Configura Confidential GKE Node a livello di workload
Per abilitare Confidential GKE Node in singoli workload, utilizza una ComputeClass. Le ComputeClass sono risorse personalizzate di Kubernetes che ti consentono di definire gli attributi dei nuovi nodi creati da GKE e di controllare il comportamento di riserva se l'hardware non è disponibile. Le classi di computing supportano tutte le tecnologie di Confidential Computing disponibili per GKE, anche se una tecnologia specifica non è supportata a livello di cluster o di pool di nodi.
Per configurare Confidential GKE Node a livello di workload, segui questi passaggi:
(Facoltativo) Per i cluster GKE Standard, attiva il provisioning automatico dei nodi per il cluster. Per i cluster Autopilot, salta questo passaggio.
Se scegli di utilizzare ComputeClasses solo con i node pool creati manualmente, devi anche configurare manualmente i taint e le etichette dei nodi su questi node pool. Questa configurazione manuale aggiuntiva potrebbe comportare una riduzione dei vantaggi derivanti dall'utilizzo di una classe ComputeClass per creare Confidential GKE Node.
Salva il seguente manifest ComputeClass come file YAML. Per ulteriori informazioni sui campi e sui valori supportati per ComputeClasses, consulta ComputeClass CustomResourceDefinition.
apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: COMPUTE_CLASS spec: nodePoolConfig: confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY nodePoolAutoCreation: enabled: true activeMigration: optimizeRulePriority: true priorityDefaults: location: zones: ['ZONE1','ZONE2'] priorities: - machineFamily: MACHINE_SERIES - machineType: MACHINE_TYPE whenUnsatisfiable: DoNotScaleUpSostituisci quanto segue:
COMPUTE_CLASS: un nome per la nuova classe di computing.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:SEVper AMD SEVSEV_SNPper AMD SEV-SNPTDXper Intel TDX
ZONE1,ZONE2,...: le zone in cui creare i nodi, ad esempio['us-central1-a','us-central1-b']. Specifica le zone che supportano la tecnologia Confidential Computing che hai specificato. Per saperne di più, consulta Zone.(Facoltativo) Se esegui il provisioning di VM TPU, utilizza una zona AI, ad esempio
us-central1-ai1a. Le zone AI sono località specializzate ottimizzate per i workload AI/ML all'interno delle regioni Google Cloud .MACHINE_SERIES: la serie di macchine per i nodi, ad esempion2d. Specifica una serie di macchine che supporti la tecnologia Confidential Computing che hai specificato. Per ulteriori informazioni, consulta Tipi di macchine.MACHINE_TYPEil tipo di macchina per i nodi, ad esempion2d-standard-4. Specifica un tipo di macchina che supporti la tecnologia Confidential Computing che hai specificato. Per ulteriori informazioni, consulta Tipi di macchine.
Questo manifest include il campo
spec.nodePoolAutoCreationcon un valore dienabled: true, che consente a GKE di creare nuovi pool di nodi utilizzando il provisioning automatico dei nodi.Crea la classe ComputeClass nel tuo cluster:
kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFESTSostituisci
PATH_TO_COMPUTE_CLASS_MANIFESTcon il percorso del file manifest ComputeClass.Salva il seguente manifest di deployment come file YAML:
Crea il deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFESTSostituisci
PATH_TO_DEPLOYMENT_MANIFESTcon il percorso del file manifest del deployment.
I nuovi nodi creati da GKE per questo workload utilizzano la tecnologia Confidential Computing specificata. Questi nodi vengono eseguiti in una delle zone selezionate, su un tipo di macchina definito nella classe ComputeClass. GKE aggiunge taints e etichette dei nodi in modo che solo i pod che selezionano la stessa ComputeClass possano essere eseguiti sui nodi.
Configura Confidential GKE Node a livello di cluster
Puoi abilitare Confidential GKE Node per un intero cluster Autopilot o Standard, il che significa che ogni nodo dei cluster utilizza Confidential GKE Node. Di conseguenza, tutti i workload di cui esegui il deployment in quel cluster vengono eseguiti su Confidential GKE Node. Non puoi eseguire l'override dell'impostazione del cluster in singoli workload o pool di nodi.
Crea un nuovo cluster Autopilot
I cluster Autopilot supportano Confidential GKE Node solo a livello di cluster. Quando attivi Confidential GKE Node, la serie di macchine predefinita nel cluster Autopilot cambia in base alla tecnologia di Confidential Computing. Tutti i tuoi workload vengono eseguiti su questi nodi riservati senza dover modificare i manifest dei workload. Le serie di macchine predefinite per ciascuna tecnologia di Confidential Computing sono le seguenti:
- SEV: la serie di macchine predefinita è N2D.
- SEV_SNP: la serie di macchine predefinita è N2D.
- TDX: la serie di macchine predefinita è C3.
Per creare un cluster Autopilot che utilizza Confidential GKE Node, seleziona una delle seguenti opzioni:
gcloud
- Esegui questo comando:
gcloud container clusters create-auto CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster Autopilot.CONTROL_PLANE_LOCATION: la regione di Compute Engine per il control plane del cluster, ad esempious-central1.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:sev: AMD SEVsev_snp: AMD SEV-SNPtdx: Intel TDX
Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.
Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.
Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.
Console
Nella console Google Cloud , vai alla pagina Crea un cluster Autopilot.
Nella sezione Impostazioni di base del cluster, completa quanto segue:
- Inserisci il nome del cluster.
- Seleziona una regione per il tuo cluster.
Nel menu di navigazione, nella sezione Impostazioni avanzate, fai clic su Sicurezza.
Seleziona la casella di controllo Abilita Confidential GKE Node.
Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.
Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.
Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.
Fai clic su Crea.
Per saperne di più, consulta Crea un cluster Autopilot con un canale di rilascio e una versione specifici.
Crea un nuovo cluster Standard
Puoi specificare una tecnologia di Confidential Computing per i tuoi nodi quando crei un cluster Standard. La specifica della tecnologia durante la creazione di un cluster ha i seguenti effetti:
- In questo cluster puoi creare solo node pool o workload che utilizzano Confidential GKE Node.
- Non puoi aggiornare il cluster per disabilitare Confidential GKE Node.
- Non puoi eseguire l'override della tecnologia Confidential Computing a livello di cluster in singoli pool di nodi o workload.
La configurazione di un'impostazione di Confidential Computing a livello di cluster è permanente. Di conseguenza, prima di creare il cluster, considera i seguenti casi d'uso:
- Per utilizzare il provisioning automatico dei nodi nel tuo cluster, devi configurare opzioni specifiche nel comando di creazione del cluster. Per saperne di più, consulta la sezione Utilizza Confidential GKE Node con il provisioning automatico dei nodi.
- Per utilizzare tecnologie di Confidential Computing diverse per criptare pool di nodi specifici nel cluster, salta questa sezione e configura Confidential GKE Node a livello di pool di nodi.
Per creare un cluster in modalità Standard che utilizza Confidential GKE Node, seleziona una delle seguenti opzioni:
gcloud
Quando crei un nuovo cluster, specifica l'opzione --confidential-node-type
in gcloud CLI:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--machine-type=MACHINE_TYPE \
--node-locations=ZONE1,ZONE2,... \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Sostituisci quanto segue:
CLUSTER_NAME: il nome del tuo cluster.LOCATION: la località di Compute Engine per il control plane del cluster. La località deve supportare la tecnologia Confidential Computing specificata. Per saperne di più, consulta la sezione Disponibilità.MACHINE_TYPE: un tipo di macchina che supporta la tecnologia Confidential Computing specificata. Per ulteriori informazioni, consulta la sezione Disponibilità.ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del control plane che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:sev: AMD SEVsev_snp: AMD SEV-SNPtdx: Intel TDX
Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Il tipo di macchina specificato nel comando deve supportare AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.
Console
Nella console Google Cloud , vai alla pagina Crea un cluster Kubernetes.
Nel riquadro di navigazione, fai clic su Impostazioni avanzate.
Nella riga Nodi riservati, fai clic su edit Modifica configurazione.
Seleziona la casella di controllo Abilita Confidential GKE Node.
Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.
Se la tecnologia selezionata richiede una serie di macchine Compute Engine specifica, viene visualizzata una finestra di dialogo. Fai clic su Apporta modifiche per aggiornare la serie di macchine per il pool di nodi.
Fai clic su Salva.
Nel menu di navigazione, nella sezione Pool di nodi, fai clic su default-pool.
Nel riquadro Dettagli node pool, segui questi passaggi:
- Seleziona la casella di controllo Specifica le località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
- Seleziona le caselle di controllo per le zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per saperne di più, consulta Zone.
Fai clic su Crea.
Per saperne di più sulla creazione di cluster, consulta Creazione di un cluster a livello di regione.
Per qualsiasi pool di nodi creato con l'impostazione Modalità riservata per Hyperdisk bilanciato, solo i nodi nel pool di nodi sono limitati alla configurazione di setup. Per tutti i nuovi node pool creati nel cluster, devi configurare la modalità riservata al momento della creazione.
Configura il provisioning automatico dei nodi
Puoi configurare il provisioning automatico dei nodi per utilizzare Confidential GKE Node nei pool di nodi con provisioning automatico. Il provisioning automatico dei nodi supporta le seguenti tecnologie di Confidential Computing:
- AMD SEV
- AMD SEV-SNP
Per utilizzare Confidential GKE Node con il provisioning automatico dei nodi, specifica il
flag gcloud CLI --enable-confidential-nodes quando crei un
cluster. Si applicano le seguenti considerazioni aggiuntive:
- Quando crei il cluster, scegli una tecnologia di Confidential Computing supportata dal provisioning automatico dei nodi. Questa scelta è irreversibile a livello di cluster.
- Quando attivi il provisioning automatico dei nodi su un cluster esistente, il cluster deve già utilizzare una tecnologia Confidential GKE Node supportata dal provisioning automatico dei nodi.
- Quando esegui il deployment dei workload, verifica che selezionino la tecnologia Confidential Computing del cluster e una serie di macchine compatibile con questa tecnologia.
Configura Confidential GKE Node a livello di pool di nodi
Puoi abilitare Confidential GKE Node su node pool specifici se Confidential GKE Node è disabilitato a livello di cluster.
L'impostazione della modalità riservata per Hyperdisk bilanciato deve essere specificata durante la richiesta di creazione del pool di nodi.
Crea un nuovo node pool
Per creare un nuovo pool di nodi con Confidential GKE Node abilitato, seleziona una delle seguenti opzioni:
gcloud
Esegui questo comando:
gcloud container node-pools create NODE_POOL_NAME \
--location=LOCATION \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--node-locations=ZONE1,ZONE2,... \
--confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY
Sostituisci quanto segue:
NODE_POOL_NAME: il nome del nuovo pool di nodi.LOCATION: la località del nuovo pool di nodi. La località deve supportare la tecnologia di Confidential Computing specificata. Per maggiori dettagli, consulta la sezione Disponibilità.CLUSTER_NAME: il nome del tuo cluster.MACHINE_TYPE: un tipo di macchina che supporta la tecnologia Confidential Computing specificata. Per maggiori dettagli, consulta la sezione Disponibilità.ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del cluster che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:sev: AMD SEVsev_snp: AMD SEV-SNPtdx: Intel TDX
Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Il tipo di macchina specificato nel comando deve supportare AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.
Console
Nella console Google Cloud , vai alla pagina Cluster Kubernetes:
Fai clic sul nome del cluster Standard.
Fai clic sulla scheda Nodi.
Fai clic su add_box Crea node pool gestito dall'utente.
Nel menu di navigazione, fai clic su Sicurezza.
Nel riquadro Sicurezza dei nodi, segui questi passaggi:
- Seleziona la casella di controllo Abilita Confidential GKE Node.
- Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.
Se la tecnologia selezionata richiede una serie di macchine Compute Engine specifica, viene visualizzata una finestra di dialogo. Fai clic su Apporta modifiche per aggiornare la serie di macchine per il pool di nodi.
Nel menu di navigazione, fai clic su Dettagli del pool di nodi.
Nel riquadro Dettagli node pool, segui questi passaggi:
- Seleziona la casella di controllo Specifica le località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
- Seleziona le caselle di controllo per le zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per saperne di più, consulta Zone.
(Facoltativo) Configura altre impostazioni per il pool di nodi.
Fai clic su Crea.
Aggiorna un pool di nodi esistente
Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni dei workload in esecuzione. Per informazioni dettagliate su questa modifica specifica, trova la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi senza rispettare le policy di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificazione delle interruzioni degli aggiornamenti dei nodi.
Puoi aggiornare i node pool esistenti per utilizzare Confidential GKE Node o per cambiare la tecnologia di Confidential Computing utilizzata dai nodi. Il pool di nodi deve soddisfare tutti i seguenti requisiti:
- I nodi utilizzano un tipo di macchina che supporta la tecnologia Confidential Computing scelta.
- I nodi vengono eseguiti in zone che supportano la tecnologia Confidential Computing scelta.
Poiché la disponibilità del tipo di macchina e della località potrebbe variare tra le tecnologie Confidential Computing, potrebbe essere necessario aggiornare questi attributi per il pool di nodi prima di attivare una tecnologia Confidential Computing specifica.
Per aggiornare un pool di nodi esistente in modo che utilizzi Confidential GKE Node, seleziona una delle seguenti opzioni:
gcloud
Puoi utilizzare gcloud CLI per abilitare Confidential GKE Node su un pool di nodi o per modificare la tecnologia Confidential Computing dei nodi.
- Se il pool di nodi utilizza già Confidential GKE Node, disabilita Confidential GKE Node. Attendi il completamento dell'operazione di aggiornamento del node pool.
Modifica il tipo di macchina pool di nodi e le località dei nodi in modo che corrispondano ai valori supportati per la nuova tecnologia Confidential Computing:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --machine-type=MACHINE_TYPE \ --node-locations=ZONE1,ZONE2,...Sostituisci quanto segue:
NODE_POOL_NAME: il nome del node pool esistente.CLUSTER_NAME: il nome del cluster.CLUSTER_LOCATION: la località del cluster.MACHINE_TYPE: un tipo di macchina che supporta la nuova tecnologia Confidential Computing. Per saperne di più, consulta la sezione Disponibilità.ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del cluster che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.
Aggiorna il pool di nodi con la tecnologia Confidential Computing da utilizzare:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --location=CLUSTER_LOCATION \ --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGYSostituisci
CONFIDENTIAL_COMPUTE_TECHNOLOGYcon la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:sev: AMD SEVsev_snp: AMD SEV-SNPtdx: Intel TDX
Console
Puoi aggiornare un pool di nodi esistente in modo che utilizzi i nodi Confidential GKE solo se il tipo di macchina del pool di nodi è supportato dalla tecnologia Confidential Computing scelta. Se i nodi non utilizzano un tipo di macchina supportato, utilizza le istruzioni di gcloud CLI in questa sezione.
Nella console Google Cloud , vai alla pagina Cluster Kubernetes:
Fai clic sul nome del cluster Standard.
Fai clic sulla scheda Nodi.
Fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su Modifica. Viene visualizzato il riquadro Modifica node pool.
Nella sezione Zone, verifica che le zone selezionate supportino la tecnologia Confidential Computing. Per saperne di più, consulta Zone.
Se una zona selezionata non supporta la tecnologia, procedi nel seguente modo:
- Deseleziona la casella di controllo della zona non supportata.
- (Facoltativo) Seleziona le caselle di controllo per altre zone supportate.
- Fai clic su Salva. Attendi il completamento dell'operazione di aggiornamento del pool di nodi.
- Fai clic su Modifica per riaprire il riquadro Modifica node pool.
Nella sezione Sicurezza, seleziona la casella di controllo Abilita Confidential GKE Node.
Nel menu Tipo, seleziona la tecnologia Confidential Computing per i nodi.
Fai clic su Salva.
Posiziona i workload solo su pool di nodi riservati
Se abiliti Confidential GKE Node a livello di cluster, tutti i tuoi workload vengono eseguiti su nodi riservati. Non è necessario apportare modifiche ai manifest. Tuttavia, se abiliti Confidential GKE Node solo per node pool in modalità Standard specifici a livello di pool di nodi, devi esprimere in modo dichiarativo che i tuoi workload devono essere eseguiti solo su node pool con Confidential GKE Node.
Per richiedere che un workload venga eseguito su una tecnologia Confidential Computing specifica, utilizza un selettore di nodi con l'etichetta
cloud.google.com/gke-confidential-nodes-instance-type, come nell'esempio seguente:apiVersion: v1 kind: Pod spec: # For readability, lines are omitted from this example manifest nodeSelector: cloud.google.com/gke-confidential-nodes-instance-type: "CONFIDENTIAL_COMPUTE_SELECTOR"Sostituisci
CONFIDENTIAL_COMPUTE_SELECTORcon il nome della tecnologia utilizzata dal pool di nodi. Questo campo supporta i seguenti valori, che devi specificare in lettere maiuscole:SEV: AMD SEVSEV_SNP: AMD SEV-SNPTDX: Intel TDX
Per consentire l'esecuzione di un workload su qualsiasi nodo riservato, indipendentemente dalla tecnologia Confidential Computing, utilizza una regola di affinità dei nodi, come nell'esempio seguente:
apiVersion: v1 kind: Pod spec: containers: - name: confidential-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-confidential-nodes-instance-type operator: ExistsPer consentire l'esecuzione di un workload su nodi che utilizzano solo un sottoinsieme delle tecnologie di Confidential Computing disponibili, utilizza una regola di affinità dei nodi simile al seguente esempio:
apiVersion: v1 kind: Pod spec: containers: - name: confidential-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: cloud.google.com/gke-confidential-nodes-instance-type operator: In values: - SEV - SEV_SNP - TDXNel campo
values, specifica solo le tecnologie di Confidential Computing su cui vuoi eseguire il workload.
Verifica che Confidential GKE Node sia abilitato
Puoi verificare se i tuoi cluster o nodi utilizzano Confidential GKE Node esaminando i cluster, i node pool, i nodi o le istanze di Compute Engine.
Verifica per i cluster
Seleziona una delle seguenti opzioni:
gcloud
Descrivi il cluster:
gcloud container clusters describe CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType)'
Se Confidential GKE Node è abilitato, l'output è simile al seguente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Console
Nella console Google Cloud , vai alla pagina Cluster Kubernetes.
Fai clic sul nome del cluster che vuoi ispezionare.
Nella sezione Sicurezza, verifica che il campo Confidential GKE Node abbia il valore Abilitato.
Verifica per i node pool
Seleziona una delle seguenti opzioni:
gcloud
Descrivi il pool di nodi:
gcloud container node-pools describe NODE_POOL_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'
Se Confidential GKE Node è abilitato, l'output è simile al seguente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Se è abilitata anche la modalità riservata per Hyperdisk Balanced, l'output è simile al seguente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true
Console
Nella console Google Cloud , vai alla pagina Cluster Kubernetes.
Fai clic sul nome del cluster che vuoi ispezionare.
Fai clic sul nome di un pool di nodi.
Nella sezione Sicurezza, verifica che il campo Confidential GKE Node sia impostato su Abilitato.
Verifica per un nodo specifico
Trova il nome del nodo:
kubectl get nodesDescrivi il nodo:
kubectl describe NODE_NAMESostituisci
NODE_NAMEcon il nome di un nodo da ispezionare.L'output è simile al seguente:
Name: gke-cluster-1-default-pool-affsf335r-asdf Roles: <none> Labels: cloud.google.com/gke-boot-disk=pd-balanced cloud.google.com/gke-container-runtime=containerd cloud.google.com/gke-confidential-nodes-instance-type=CONFIDENTIAL_COMPUTE_SELECTOR cloud.google.com/gke-nodepool=default-pool cloud.google.com/gke-os-distribution=cos cloud.google.com/machine-family=e2 # lines omitted for clarityIn questo output, l'etichetta del nodo
cloud.google.com/gke-confidential-nodes-instance-typeindica che si tratta di un nodo riservato.
Imposta i vincoli delle policy dell'organizzazione
Puoi definire un vincolo della policy dell'organizzazione per assicurarti che tutte le risorse VM create nell'organizzazione siano istanze Confidential VM.
Per GKE, puoi personalizzare il vincolo Limita Confidential Computing non riservato per richiedere che tutti i nuovi cluster vengano creati con una delle tecnologie di Confidential Computing disponibili abilitate. Aggiungi il nome del servizio API container.googleapis.com alla lista bloccata quando applichi i vincoli delle policy dell'organizzazione, come nell'esempio seguente:
gcloud resource-manager org-policies deny \
constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
--project=PROJECT_ID
Sostituisci PROJECT_ID con l'ID progetto.
Crea un PersistentVolume per la modalità riservata per Hyperdisk bilanciato
Per indicazioni sui valori consentiti per il throughput o le IOPS, consulta Pianifica il livello di prestazioni per il volume Hyperdisk.
I seguenti esempi mostrano come creare una modalità Confidential per Hyperdisk Balanced StorageClass per ogni tipo di Hyperdisk:
Hyperdisk bilanciato
Salva il seguente manifest in un file denominato
confidential-hdb-example-class.yaml:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: balanced-storage provisioner: pd.csi.storage.gke.io volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true parameters: type: hyperdisk-balanced provisioned-throughput-on-create: "250Mi" provisioned-iops-on-create: "7000" enable-confidential-storage: true disk-encryption-kms-key: "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/HSM_KEY_NAME"Sostituisci quanto segue:
KMS_PROJECT_ID: il progetto proprietario della chiave Cloud KMSREGION: la regione in cui si trova il discoKEY_RING: il nome delle chiavi automatizzate che include la chiaveHSM_KEY_NAME: il nome della chiave HSM utilizzata per criptare il disco
Crea la classe di archiviazione:
kubectl create -f hdb-example-class.yamlCrea un oggetto PersistentVolumeClaim Hyperdisk per GKE che utilizza la modalità riservata per il volume Hyperdisk bilanciato.
Per trovare il nome delle StorageClass disponibili nel tuo cluster, esegui questo comando:
kubectl get sc
Limitazioni
Confidential GKE Node presenta le seguenti limitazioni:
- Tutte le limitazioni delle istanze Confidential VM di Compute Engine si applicano anche ai Confidential GKE Node.
- Confidential GKE Node non è compatibile con i nodi single-tenant.
- Confidential GKE Node supporta solo l'utilizzo dell'archiviazione temporanea su SSD locali, ma non supporta l'utilizzo di SSD locali in generale.
- Confidential GKE Node supporta le immagini dei nodi Container-Optimized OS e Ubuntu. I nodi Windows non sono supportati.
- Il provisioning automatico dei nodi supporta solo AMD SEV e AMD SEV-SNP a livello di pool di nodi. Per utilizzare una tecnologia di Confidential Computing diversa, configura i Confidential GKE Node a livello di workload.
La modalità Confidential per Hyperdisk Balanced presenta le seguenti limitazioni:
- Tutte le limitazioni relative all'utilizzo delle chiavi di crittografia gestite dal cliente (CMEK) per criptare i dischi si applicano alla modalità riservata per Hyperdisk Balanced.
- La modalità riservata per Hyperdisk bilanciato è supportata solo sui Confidential GKE Node che utilizzano AMD SEV come tecnologia di Confidential Computing.
Limitazioni della migrazione live
La migrazione live è disponibile solo per determinati tipi di macchine Confidential VM. Per saperne di più, consulta la colonna "Supporto della migrazione live" in Tipi di macchine.
Se si verifica un evento di manutenzione dell'host su un nodo che non supporta la migrazione live, il nodo entra in uno stato NotReady. I pod in esecuzione subiranno interruzioni finché il nodo non sarà nuovamente pronto. Se la manutenzione richiede più di cinque minuti, GKE potrebbe tentare di ricreare i pod su altri nodi. Per saperne di più su come ridurre l'impatto sui workload, consulta Gestisci le interruzioni dei nodi GKE che non eseguono la migrazione live.
Disabilita Confidential GKE Nodes
Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni dei workload in esecuzione. Per informazioni dettagliate su questa modifica specifica, trova la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi senza rispettare le policy di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificazione delle interruzioni degli aggiornamenti dei nodi.
Puoi disabilitare Confidential GKE Node solo nei node pool in modalità Standard. Se il pool di nodi si trova in un cluster che utilizza Confidential GKE Node a livello di cluster, non puoi disattivare la funzionalità a livello di pool di nodi. Per disattivare Confidential GKE Node, seleziona una delle seguenti opzioni:
gcloud
Esegui questo comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--location=CLUSTER_LOCATION \
--no-enable-confidential-nodes
Console
Nella console Google Cloud , vai alla pagina Cluster Kubernetes:
Fai clic sul nome del cluster Standard.
Fai clic sulla scheda Nodi.
Fai clic sul nome del pool di nodi che vuoi modificare.
Nella pagina Dettagli del pool di nodi, fai clic su Modifica. Viene visualizzato il riquadro Modifica node pool.
Nella sezione Sicurezza, deseleziona la casella di controllo Abilita Confidential GKE Node.
Fai clic su Salva.
Passaggi successivi
- Scopri di più su Confidential VM
- Scopri di più sulla Google Cloud crittografia in transito
- Scopri di più sulle chiavi di crittografia gestite dal cliente (CMEK)
- Scopri come attestare da remoto che i workload sono in esecuzione su Confidential VM
- Scopri come eseguire GPU su Confidential GKE Node
- Scopri come eseguire vTPM su Confidential GKE Node