Questa pagina mostra come applicare la crittografia dei dati in uso nei nodi e nei carichi di lavoro utilizzando Confidential GKE Nodes. L'applicazione della crittografia può contribuire ad aumentare la sicurezza dei carichi di lavoro.
Questa pagina è destinata 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, consulta Ruoli e attività comuni degli utenti GKE. Google Cloud
Prima di leggere questa pagina, assicurati di conoscere il concetto di dati in uso.
Che cos'è Confidential GKE Nodes?
Puoi criptare i tuoi workload con i nodi GKE confidenziali o la modalità Confidential per Hyperdisk Balanced.
Confidential GKE Node
Confidential GKE Nodes utilizza Compute Engine Confidential VM per proteggere i dati in uso con la crittografia della memoria basata su hardware. Confidential GKE Nodes 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 ricevere assistenza nella scelta di quella ottimale per le tue esigenze, consulta la panoramica di Confidential VM.
Confidential GKE Nodes non modifica le misure di sicurezza che GKE applica ai piani di controllo del cluster. Per scoprire di più su queste misure, consulta Sicurezza del control plane. Per avere visibilità su chi accede ai control plane nei tuoi Google Cloud progetti, utilizza Access Transparency.
Puoi attivare GKE Confidential Nodes per interi cluster, per node pool specifici o per carichi di lavoro specifici. La seguente tabella descrive questi metodi di attivazione:
Impostazione Confidential GKE Nodes | Descrizione | Comportamento |
---|---|---|
Livello di workload | Configura i Confidential GKE Node in una ComputeClass, quindi seleziona ComputeClass in un workload. GKE crea nodi che utilizzano questa configurazione per eseguire i pod. | L'impostazione del workload supporta una qualsiasi delle seguenti tecnologie di Confidential Computing, indipendentemente dalla modalità del cluster o dal tipo di pool di nodi:
|
A livello di cluster | Questa impostazione è irreversibile.
Abilita GKE Confidential Nodes 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 carichi di lavoro. |
Le tecnologie supportate a livello di cluster dipendono dalla modalità operativa del cluster, come segue:
|
Livello del node pool | Abilita Confidential GKE Nodes quando crei un nuovo node pool in un cluster Standard. Puoi utilizzare questo metodo solo se Confidential GKE Nodes è disabilitato a livello di cluster. | Le tecnologie supportate a livello di pool di nodi dipendono dal fatto che il pool di nodi utilizzi il provisioning automatico dei nodi, come segue:
|
Modalità Confidential per Hyperdisk Balanced
Puoi anche attivare la modalità Confidential per Hyperdisk Balanced sull'archiviazione del disco di avvio, che cripta i dati su enclave aggiuntive supportate dall'hardware.
Puoi attivare la modalità Confidential per Hyperdisk Balanced 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 Balanced.
La tabella seguente mostra il comportamento di GKE che si applica quando attivi la modalità Confidential per l'impostazione Hyperdisk Balanced a livello di cluster o di node pool:
Impostazione della modalità Confidential per Hyperdisk Balanced | 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 Balanced. Non puoi eseguire le
seguenti operazioni:
|
Livello del node pool | Crea un nuovo node pool | Puoi configurare l'impostazione della modalità Confidential per Hyperdisk Balanced per tutti i nuovi pool di nodi al momento della creazione. Non puoi aggiornare i pool di nodi esistenti per utilizzare la modalità Confidential per l'impostazione Hyperdisk Balanced. |
Prezzi
A seconda di come configuri Confidential GKE Nodes, si applicano i seguenti prezzi:
Prezzi di Confidential GKE Nodes | |
---|---|
A livello di workload | Nei carichi di lavoro Autopilot si applicano entrambi i seguenti costi:
Nei workload Standard, si applicano entrambi i costi seguenti:
|
A livello di cluster | Nei cluster Autopilot si applicano entrambi i seguenti costi:
Nei cluster Standard, vengono applicati entrambi i seguenti costi:
|
Livello del node pool | Nei pool di nodi Standard si applicano i seguenti costi:
|
Inoltre, i Confidential GKE Node potrebbero generare una quantità leggermente maggiore di dati di log all'avvio rispetto ai nodi che non sono Confidential GKE Node. Per ulteriori informazioni sui prezzi dei log, consulta la pagina Prezzi di Google Cloud Observability.
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à,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo
gcloud components update
.
Requisiti
Confidential GKE Nodes presenta i seguenti requisiti:
- I cluster Autopilot devono eseguire GKE versione 1.30.2 o successive.
I cluster standard devono eseguire una delle seguenti versioni di GKE, a seconda della tecnologia Confidential Computing che scegli:
- 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.
Per abilitare i Confidential GKE Node a livello di workload, i cluster Autopilot e Standard devono eseguire GKE versione 1.33.3-gke.1392000 o successive.
I nodi devono utilizzare un tipo di macchina che supporti la tecnologia Confidential Computing che scegli. Per saperne di più, consulta Tipi di macchine, CPU e zone.
I control plane e i nodi del cluster devono trovarsi in una località che supporti la tecnologia di Confidential Computing che scegli. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
Configura Confidential GKE Nodes a livello di workload
Per abilitare Confidential GKE Nodes nei singoli carichi di lavoro, utilizza un oggetto 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 fallback se l'hardware non è disponibile. ComputeClasses supporta tutte le tecnologie di Confidential Computing disponibili per GKE, anche se una tecnologia specifica non è supportata a livello di cluster o pool di nodi.
Per configurare Confidential GKE Nodes a livello di workload, segui questi passaggi:
(Facoltativo) Per i cluster GKE Standard, abilita il provisioning automatico dei nodi per il cluster. Per i cluster Autopilot, salta questo passaggio.
Se scegli di utilizzare ComputeClass 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 un minor numero di vantaggi dall'utilizzo di una ComputeClass per creare nodi GKE confidenziali.
Salva il seguente manifest ComputeClass come file YAML. Per ulteriori informazioni sui campi e sui valori supportati per ComputeClasses, consulta la CustomResourceDefinition di ComputeClass.
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: DoNotScaleUp
Sostituisci quanto segue:
COMPUTE_CLASS
: un nome per la nuova classe di calcolo.CONFIDENTIAL_COMPUTE_TECHNOLOGY
: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:SEV
per AMD SEVSEV_SNP
per AMD SEV-SNPTDX
per 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 ulteriori informazioni, vedi Visualizzare le zone supportate.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 saperne di più, consulta Tipi di macchine, CPU e zone.MACHINE_TYPE
il 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 saperne di più, consulta Tipi di macchine, CPU e zone.
Questo manifest include il campo
spec.nodePoolAutoCreation
con un valore dienabled: true
, che consente a GKE di creare nuovi node pool utilizzando il provisioning automatico dei nodi.Crea ComputeClass nel tuo cluster:
kubectl apply -f PATH_TO_COMPUTE_CLASS_MANIFEST
Sostituisci
PATH_TO_COMPUTE_CLASS_MANIFEST
con il percorso del file manifest ComputeClass.Salva il seguente manifest di Deployment come file YAML:
Crea il deployment:
kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
Sostituisci
PATH_TO_DEPLOYMENT_MANIFEST
con il percorso del file manifest deployment.
I nuovi nodi creati da GKE per questo carico di lavoro utilizzano la tecnologia Confidential Computing specificata. Questi nodi vengono eseguiti in una delle zone selezionate, su un tipo di macchina definito in ComputeClass. GKE aggiunge incompatibilità e etichette dei nodi in modo che solo i pod che selezionano la stessa ComputeClass possano essere eseguiti sui nodi.
Configura Confidential GKE Nodes a livello di cluster
Puoi abilitare Confidential GKE Nodes per un intero cluster Autopilot o Standard, il che significa che ogni nodo nei cluster utilizza Confidential GKE Nodes. Di conseguenza, tutti i workload che deploy in quel cluster vengono eseguiti su Confidential GKE Nodes. Non puoi eseguire l'override dell'impostazione del cluster in singoli carichi di lavoro o pool di nodi.
Crea un nuovo cluster Autopilot
I cluster Autopilot supportano solo AMD SEV a livello di cluster. Quando abiliti Confidential GKE Nodes, la serie di macchine predefinita nel cluster Autopilot cambia in N2D. Tutti i tuoi workload vengono eseguiti su questi nodi confidenziali senza dover modificare i manifest dei workload.
Esegui questo comando:
gcloud container clusters create-auto CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-confidential-nodes
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster Autopilot.CONTROL_PLANE_LOCATION
: la regione Compute Engine per il control plane del cluster, ad esempious-central1
.
Il cluster deve eseguire la versione 1.30.2 o successive. Per maggiori informazioni, consulta Crea un cluster Autopilot con un canale di rilascio e una versione specifici.
Crea un nuovo cluster standard
Quando crei un cluster Standard, puoi specificare una tecnologia Confidential Computing per i nodi. La specifica della tecnologia durante la creazione di un cluster ha i seguenti effetti:
- Puoi creare solo pool di nodi o workload che utilizzano nodi GKE confidenziali in quel cluster.
- Non puoi aggiornare il cluster per disabilitare Confidential GKE Nodes.
- Non puoi ignorare la tecnologia Confidential Computing a livello di cluster in singoli node pool o carichi di lavoro.
La configurazione di un'impostazione di Confidential Computing a livello di cluster è permanente. Di conseguenza, considera i seguenti casi d'uso prima di creare il cluster:
- Per utilizzare il provisioning automatico dei nodi nel cluster, devi configurare opzioni specifiche nel comando di creazione del cluster. Per saperne di più, consulta la sezione Utilizzare Confidential GKE Nodes con il provisioning automatico dei nodi.
- Per utilizzare diverse tecnologie di Confidential Computing per criptare node pool specifici nel cluster, salta questa sezione e configura Confidential GKE Nodes a pool di nodi pool.
Per creare un cluster in modalità Standard che utilizza i nodi GKE confidenziali, 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 che specifichi. Per saperne di più, consulta la sezione Disponibilità.MACHINE_TYPE
: un tipo di macchina che supporta la tecnologia Confidential Computing che specifichi. 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 ulteriori informazioni, vedi Visualizzare le zone supportate.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 specifichi solo questo flag nel comando, 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 menu di navigazione, nella sezione Cluster, fai clic su Sicurezza.
Seleziona la casella di controllo Abilita Confidential GKE Nodes.
Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
Nel menu Tipo, seleziona la tecnologia Confidential Computing che vuoi utilizzare.
Se la tecnologia che selezioni 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, nella sezione Pool di nodi, fai clic su default-pool.
Nel riquadro Dettagli node pool, procedi nel seguente modo:
- Seleziona la casella di controllo Specifica località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
- Seleziona le caselle di controllo delle zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
Fai clic su Crea.
Per saperne di più sulla creazione di cluster, vedi Creazione di un cluster regionale.
Per qualsiasi pool di nodi creato con l'impostazione della modalità Confidential per Hyperdisk Balanced, solo i nodi nel pool di nodi sono limitati alla configurazione di configurazione. Per tutti i nuovi node pool creati nel cluster, devi configurare la modalità confidenziale al momento della creazione.
Configurare il provisioning automatico dei nodi
Puoi configurare il provisioning automatico dei nodi per utilizzare Confidential GKE Nodes nei node pool di cui è stato eseguito il provisioning automatico. Il provisioning automatico dei nodi supporta le seguenti tecnologie Confidential Computing:
- AMD SEV
- AMD SEV-SNP
Per utilizzare Confidential GKE Nodes 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 abiliti il provisioning automatico dei nodi su un cluster esistente, il cluster deve già utilizzare una tecnologia Confidential GKE Nodes supportata dal provisioning automatico dei nodi.
- Quando esegui il deployment dei carichi di lavoro, verifica che selezionino la tecnologia Confidential Computing del cluster e una serie di macchine compatibile per questa tecnologia.
Configura Confidential GKE Nodes a livello di pool di nodi
Puoi abilitare Confidential GKE Nodes su node pool specifici se Confidential GKE Nodes è disabilitato a livello di cluster.
La modalità Confidential per l'impostazione di Hyperdisk Balanced 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 Nodes 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 posizione del nuovo pool di nodi. La località deve supportare la tecnologia Confidential Computing che specifichi. 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 che specifichi. 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 ulteriori informazioni, vedi Visualizzare le zone supportate.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 specifichi solo questo flag nel comando, 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 su
Aggiungi pool di nodi.Nel menu di navigazione, fai clic su Sicurezza.
Nel riquadro Sicurezza dei nodi, procedi nel seguente modo:
- Seleziona la casella di controllo Abilita Confidential GKE Nodes.
- Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
Nel menu Tipo, seleziona la tecnologia Confidential Computing che vuoi utilizzare.
Se la tecnologia che selezioni 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, procedi nel seguente modo:
- Seleziona la casella di controllo Specifica località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
- Seleziona le caselle di controllo delle zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per ulteriori informazioni, vedi Visualizzare le zone supportate.
(Facoltativo) Configura altre impostazioni per il pool di nodi.
Fai clic su Crea.
Aggiornare un pool di nodi esistente
Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni ai carichi di lavoro 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 norme di manutenzione. Per saperne di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni dell'aggiornamento dei nodi.
Puoi aggiornare i pool di nodi esistenti per utilizzare Confidential GKE Nodes o per cambiare la tecnologia 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à può variare tra le tecnologie di Confidential Computing, potrebbe essere necessario aggiornare questi attributi per il pool di nodi prima di attivare una tecnologia di Confidential Computing specifica.
Per aggiornare un pool di nodi esistente in modo che utilizzi Confidential GKE Nodes, seleziona una delle seguenti opzioni:
gcloud
Puoi utilizzare gcloud CLI per abilitare Confidential GKE Nodes su un pool di nodi o per modificare la tecnologia di Confidential Computing dei nodi.
- Se il pool di nodi utilizza già Confidential GKE Nodes, disabilita Confidential GKE Nodes. Attendi il completamento dell'operazione di aggiornamento del pool di nodi.
Modifica il tipo di macchina del pool di nodi e le località dei nodi in base 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 pool di nodi esistente.CLUSTER_NAME
: il nome del cluster.CLUSTER_LOCATION
: la posizione del cluster.MACHINE_TYPE
: un tipo di macchina che supporta la nuova tecnologia Confidential Computing. Per ulteriori informazioni, 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 ulteriori informazioni, vedi Visualizzare le zone supportate.
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_TECHNOLOGY
Sostituisci
CONFIDENTIAL_COMPUTE_TECHNOLOGY
con la tecnologia di 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 per utilizzare i nodi GKE confidenziali solo se il tipo di macchina delpool di nodil è supportato dalla tecnologia Confidential Computing che hai scelto. Se i nodi non utilizzano un tipo di macchina supportato, segui invece le istruzioni dell'interfaccia a riga della 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 da 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 ulteriori informazioni, vedi Visualizzare le zone supportate.
Se una zona selezionata non supporta la tecnologia, procedi nel seguente modo:
- Deseleziona la casella di controllo per la 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 pool di nodi.
Nella sezione Sicurezza, seleziona la casella di controllo Abilita Confidential GKE Nodes.
Nel menu Tipo, seleziona la tecnologia di Confidential Computing per i nodi.
Fai clic su Salva.
Posiziona i carichi di lavoro solo sui pool di nodi confidenziali
Se abiliti Confidential GKE Nodes a livello di cluster, tutti i tuoi workload vengono eseguiti su nodi confidenziali. Non è necessario apportare modifiche ai manifest. Tuttavia, se abiliti Confidential GKE Nodes solo per node pool in modalità Standard specifici a livello dipool di nodil, devi dichiarare in modo dichiarativo che i tuoi carichi di lavoro devono essere eseguiti solo su node pool con Confidential GKE Nodes.
Per richiedere l'esecuzione di un workload su una tecnologia Confidential Computing specifica, utilizza un selettore di nodi con l'etichetta
cloud.google.com/gke-confidential-nodes-instance-type
, come nel seguente esempio: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_SELECTOR
con il nome della tecnologia utilizzata dal pool di nodi. Questo campo supporta i seguenti valori, che devi specificare in maiuscolo:SEV
: AMD SEVSEV_SNP
: AMD SEV-SNPTDX
: Intel TDX
Per consentire a un workload di essere eseguito su qualsiasi nodo confidenziale, indipendentemente dalla tecnologia Confidential Computing, utilizza una regola di affinità dei nodi, come nel 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: Exists
Per consentire a un workload di essere eseguito su nodi che utilizzano solo un sottoinsieme delle tecnologie di Confidential Computing disponibili, utilizza una regola di affinità dei nodi simile a quella dell'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: In values: - SEV - SEV_SNP - TDX
Nel campo
values
, specifica solo le tecnologie di Confidential Computing su cui vuoi eseguire il workload.
Verifica che Confidential GKE Nodes sia abilitato
Puoi verificare se i tuoi cluster o nodi utilizzano i nodi GKE confidenziali esaminando i cluster, i pool di nodi, i nodi o le istanze 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 Nodes è 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 Nodi GKE confidenziali 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 Nodes è abilitato, l'output è simile al seguente:
confidentialNodes:
confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
Se è abilitata anche la modalità Confidential 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 GKE Confidential Nodes abbia il valore Abilitato.
Verifica per un nodo specifico
Trova il nome del nodo:
kubectl get nodes
Descrivi il nodo:
kubectl describe NODE_NAME
Sostituisci
NODE_NAME
con 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 clarity
In questo output, l'etichetta del nodo
cloud.google.com/gke-confidential-nodes-instance-type
indica che il nodo è riservato.
Impostare i vincoli dei criteri dell'organizzazione
Puoi definire un vincolo dei criteri dell'organizzazione per assicurarti che tutte le risorse VM
create nella tua organizzazione siano istanze Confidential VM.
Per GKE, puoi personalizzare il vincolo Limitare il Confidential
Computing 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
all'elenco dei servizi non consentiti quando applichi i vincoli dei criteri dell'organizzazione, come nel seguente esempio:
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à Confidential per Hyperdisk Balanced
Per indicazioni sui valori consentiti per il throughput o le IOPS, consulta Pianifica il livello di prestazioni per il volume Hyperdisk.
Gli esempi seguenti mostrano come creare una StorageClass in modalità Confidential per Hyperdisk Balanced 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 includono la chiaveHSM_KEY_NAME
: il nome della chiave HSM utilizzata per criptare il disco
Crea StorageClass:
kubectl create -f hdb-example-class.yaml
Crea una rivendicazione del volume permanente Hyperdisk per GKE che utilizza la modalità Confidential per il volume Hyperdisk Balanced.
Per trovare il nome delle StorageClass disponibili nel cluster, esegui questo comando:
kubectl get sc
Limitazioni
Confidential GKE Nodes presenta le seguenti limitazioni:
- Tutte le limitazioni delle istanze Confidential VM di Compute Engine si applicano anche ai nodi Confidential GKE.
- Confidential GKE Nodes non è compatibile con i nodi single-tenant.
- Confidential GKE Nodes supporta solo l'utilizzo dell'archiviazione temporanea su SSD locali, ma non supporta l'utilizzo di SSD locali in generale.
- Confidential GKE Nodes supporta solo le immagini dei nodi Container-Optimized OS. I nodi Ubuntu e Windows non sono supportati.
- I cluster Autopilot supportano solo AMD SEV a livello di cluster. Per utilizzare una tecnologia Confidential Computing diversa, configura Confidential GKE Node a livello di carico di lavoro.
- Il provisioning automatico dei nodi supporta solo AMD SEV e AMD SEV-SNP a livello di pool di nodi. Per utilizzare una tecnologia Confidential Computing diversa, configura Confidential GKE Node a livello di carico di lavoro.
La modalità confidenziale per Hyperdisk Balanced presenta le seguenti limitazioni:
- Tutte le limitazioni dell'utilizzo delle chiavi di crittografia gestite dal cliente (CMEK) per criptare i dischi si applicano alla modalità riservata per Hyperdisk Balanced.
- La modalità Confidential per Hyperdisk Balanced è supportata solo sui Confidential GKE Node che utilizzano AMD SEV come tecnologia Confidential Computing.
Limitazioni della migrazione live
Le Confidential VM di Compute Engine che utilizzano il tipo di macchina N2D e AMD SEV come tecnologia di Confidential Computing supportano la migrazione live, che riduce al minimo la potenziale interruzione del workload dovuta a un evento di manutenzione dell'host. La migrazione live si verifica nelle seguenti versioni di GKE:
- 1.27.10-gke.1218000 e versioni successive
- 1.28.6-gke.1393000 e versioni successive
- 1.29.1-gke.1621000 e versioni successive
Se i tuoi node pool eseguivano già una versione supportata quando è stata aggiunta la migrazione live, esegui manualmente l'upgrade dei node pool alla stessa versione supportata o a una diversa. L'upgrade dei nodi attiva la ricreazione dei nodi e i nuovi nodi hanno la migrazione live abilitata.
Per informazioni dettagliate sui tipi di macchine Compute Engine che supportano la migrazione live, consulta Configurazioni supportate.
Se si verifica un evento di manutenzione dell'host su un nodo che non supporta la migrazione live, il nodo entra nello stato NotReady
. I pod in esecuzione subiranno interruzioni finché il nodo non sarà di nuovo pronto. Se la manutenzione richiede più di cinque minuti,
GKE potrebbe tentare di ricreare i pod su altri nodi.
Disabilita Confidential GKE Nodes
Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni ai carichi di lavoro 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 norme di manutenzione. Per saperne di più sugli aggiornamenti dei nodi, consulta Pianificare le interruzioni dell'aggiornamento dei nodi.
Puoi disabilitare Confidential GKE Nodes solo nei node pool in modalità Standard. Se il pool di nodi si trova in un cluster che utilizza Confidential GKE Nodes a livello di cluster, non puoi disattivare la funzionalità a livello dipool di nodil. Per disattivare i nodi 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 da 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 GKE Confidential Nodes.
Fai clic su Salva.
Passaggi successivi
- Scopri di più su Confidential VM
- Scopri di più sulla crittografia Google Cloud dei dati archiviati
- Scopri di più sulla Google Cloud crittografia in transito
- Scopri di più sulle chiavi di crittografia gestite dal cliente (CMEK)
- Scopri come attestare in remoto che i carichi di lavoro vengono eseguiti su Confidential VM
- Scopri come eseguire le GPU su Confidential GKE Nodes