Questa pagina mostra come applicare la crittografia dei dati in uso nei nodi e nei carichi di lavoro utilizzando Confidential Google Kubernetes Engine Node.
Panoramica
Confidential GKE Node si basa su Confidential VM Compute Engine utilizzando AMD Secure Encryption Virtualization (SEV), che cripta i contenuti della memoria delle VM in uso. La crittografia in uso è uno dei tre stati della crittografia end-to-end.
Quando abiliti Confidential GKE Node in un cluster o in un pool di nodi, i dati nei carichi di lavoro in esecuzione sui nodi riservati sono criptati in uso. Per la visibilità sul piano di controllo, utilizza Access Transparency.
Puoi abilitare Confidential GKE Node quando esegui una delle seguenti operazioni:
- Crea un nuovo cluster
- Crea un nuovo pool di nodi
- Aggiorna un pool di nodi esistente
Non puoi aggiornare un cluster esistente per modificare l'impostazione Confidential GKE Node a livello di cluster.
La tabella seguente mostra il comportamento di GKE applicabile quando abiliti Confidential GKE Node a livello di cluster o di pool di nodi:
Impostazione Confidential GKE Node | Modalità di configurazione | Comportamento |
---|---|---|
A livello di cluster | Crea un nuovo cluster | Tutti i nodi nel cluster in qualsiasi pool di nodi utilizzano Confidential GKE Node. Non puoi effettuare le seguenti operazioni:
|
Livello del pool di nodi |
|
Puoi configurare Confidential GKE Node per i pool di nodi solo se questa funzionalità è disabilitata a livello di cluster. |
Prezzi
Non sono previsti costi aggiuntivi per il deployment di Confidential GKE Node, ad eccezione del costo di Compute Engine Confidential VM. Tuttavia, i Confidential GKE Node potrebbero generare all'avvio un numero leggermente maggiore di dati di log rispetto ai nodi standard. Per informazioni sui prezzi dei log, consulta Prezzi per Google Cloud Observability.
Disponibilità
Confidential GKE Node è disponibile nelle seguenti situazioni:
Confidential GKE Node è disponibile solo in zone e regioni in cui sono disponibili istanze N2D o istanze C2D.
I Confidential GKE Node possono essere utilizzati con Container-Optimized OS e Container-Optimized OS con containerd (
cos_containerd
).
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
- Se vuoi utilizzare Google Cloud CLI per questa attività, installa e quindi initialize gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Abilita Confidential GKE Node sui cluster
Puoi creare un nuovo cluster con Confidential GKE Node abilitati utilizzando gcloud CLI o la console Google Cloud. Se abiliti Confidential GKE Node a livello di cluster, tutti i nodi nel cluster saranno Confidential VM.
gcloud
Quando crei un nuovo cluster, specifica l'opzione --enable-confidential-nodes
in gcloud CLI:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Sostituisci quanto segue:
- CLUSTER_NAME: il nome del nuovo cluster.
- MACHINE_TYPE: il tipo di macchina per il pool di nodi predefinito del cluster, che deve essere il tipo di macchina N2D o il tipo di macchina C2D.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Nella sezione Standard, fai clic su Configura.
Nel riquadro di navigazione, in Cluster, fai clic su Sicurezza.
Seleziona la casella di controllo Abilita Confidential GKE Node.
Configura il cluster in base alle tue esigenze.
Fai clic su Crea.
Consulta Creazione di un cluster a livello di regione per ulteriori dettagli sulla creazione dei cluster.
Dopo aver creato un cluster con Confidential GKE Node, tutti i pool di nodi creati in questo cluster possono utilizzare solo nodi riservati. Non puoi creare pool di nodi normali in cluster in cui sono abilitati Confidential GKE Node. Inoltre, non puoi disabilitare Confidential GKE Node su singoli pool di nodi quando abiliti Confidential GKE Node a livello di cluster.
Abilita Confidential GKE Node sui pool di nodi
Puoi abilitare Confidential GKE Node su pool di nodi specifici se Confidential GKE Node è disabilitato a livello di cluster.
Crea un nuovo pool di nodi
Per creare un nuovo pool di nodi con Confidential GKE Node abilitati, esegui questo comando:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--enable-confidential-nodes
Sostituisci quanto segue:
- NODE_POOL_NAME: il nome del nuovo pool di nodi.
- CLUSTER_NAME: il nome del tuo cluster.
- MACHINE_TYPE: il tipo di macchina per il pool di nodi, che deve essere un tipo di macchina N2D o un tipo di macchina C2D.
Aggiorna un pool di nodi esistente
Puoi abilitare Confidential GKE Node su pool di nodi esistenti che utilizzano il tipo di macchina N2D o il tipo di macchina C2D. Esegui questo comando:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-confidential-nodes
Sostituisci quanto segue:
- NODE_POOL_NAME: il nome del tuo pool di nodi.
- CLUSTER_NAME: il nome del tuo cluster.
Verifica che i nodi Confidential GKE Node siano abilitati
Nei cluster
Puoi verificare che il cluster utilizzi Confidential GKE Node con gcloud CLI o la console Google Cloud.
gcloud
Descrivi il cluster:
gcloud container clusters describe CLUSTER_NAME
Se Confidential GKE Node è abilitato, l'output del comando include le seguenti righe:
confidentialNodes:
enabled: true
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic sul nome del cluster da ispezionare.
In Sicurezza, nel campo Confidential GKE Node, verifica che Confidential GKE Node sia impostato su Enabled.
Nei pool di nodi
Per verificare che il pool di nodi utilizzi Confidential GKE Node, esegui questo comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Se Confidential GKE Node è abilitato, l'output è simile al seguente:
confidentialNodes:
enabled: true
Sui nodi
Per convalidare la riservatezza di nodi specifici, puoi:
- Verifica che il SEV AMD sia abilitato oppure
- Convalida Confidential VM utilizzando Cloud Monitoring.
Esegui applicazioni su Confidential GKE Node
L'approccio di Google al Confidential Computing prevede la semplificazione del lift and shift delle applicazioni esistenti. I carichi di lavoro GKE che esegui oggi possono essere eseguiti su Confidential GKE Node senza modifiche al codice.
Facoltativamente, se vuoi indicare in modo dichiarativo che i carichi di lavoro devono essere eseguiti solo su cluster con nodi Confidential GKE Node, puoi utilizzare il selettore di nodi cloud.google.com/gke-confidential-nodes
.
Di seguito è riportata una specifica di pod di esempio che utilizza questo selettore:
apiVersion: v1
kind: Pod
spec:
containers:
- name: my-confidential-app
image: us-docker.pkg.dev/myproject/myrepo/my-confidential-app
nodeSelector:
cloud.google.com/gke-confidential-nodes: "true"
Imposta vincoli dei criteri dell'organizzazione
Puoi definire un vincolo del criterio dell'organizzazione per garantire che tutte le risorse VM create nella tua organizzazione siano istanze Confidential VM.
Per GKE, puoi personalizzare il vincolo Limita calcolo non riservato per richiedere che tutti i nuovi cluster vengano creati con Confidential GKE Node abilitati. Aggiungi il nome del servizio API container.googleapis.com
all'elenco di elementi bloccati durante l'applicazione di vincoli dei criteri dell'organizzazione, ad 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.
Limitazioni
Confidential GKE Node presenta le seguenti limitazioni:
- Tutte le limitazioni delle istanze Confidential VM di Compute Engine si applicano ai Confidential GKE Node.
- I Confidential GKE Node che hanno il tipo di macchina C2D possono utilizzare il provisioning automatico dei nodi in GKE versione 1.24 o successive.
- Confidential GKE Node supporta solo PersistentVolumes supportati da dischi permanenti se il tuo piano di controllo esegue GKE versione 1.22 o successiva. Per istruzioni, consulta Utilizzo del driver CSI per il disco permanente di Compute Engine .
- Confidential GKE Node non è compatibile con GPU.
- Confidential GKE Node non è compatibile con i nodi single-tenant.
- Confidential GKE Node supporta solo l'utilizzo di archiviazione temporanea su SSD locali, ma non l'utilizzo di SSD locali in generale.
- Sono supportati solo i nodi di Container-Optimized OS. I nodi Ubuntu e Windows non sono supportati.
- I cluster Autopilot non supportano i nodi Confidential GKE Node.
Limitazioni della migrazione live
Alcuni tipi di macchine Confidential VM Compute Engine supportano la migrazione live, che riduce al minimo la potenziale interruzione del carico di lavoro causata da un evento di manutenzione dell'host. La migrazione live avviene 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
Per maggiori dettagli su quali tipi di macchine Compute Engine 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
fino a quando il nodo non sarà nuovamente pronto. Se la manutenzione richiede più di cinque minuti,
GKE potrebbe provare a ricreare i pod su altri nodi.
Disabilita i nodi Confidential GKE Node
La disabilitazione di Confidential GKE Node funziona solo per i pool di nodi che hanno abilitato Confidential GKE Node. Se il cluster viene creato con Confidential GKE Node, non puoi disabilitare la funzionalità. Esegui questo comando per disabilitare i nodi Confidential GKE Node in un pool di nodi:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-confidential-nodes
Passaggi successivi
- Scopri di più su Confidential VM.
- Scopri di più sulle immagini dei nodi.
- Scopri di più sulla crittografia at-rest di Google Cloud.
- Scopri di più sulla crittografia dei dati in transito di Google Cloud.
- Scopri di più sulle chiavi di crittografia gestite dal cliente (CMEK).
- Scopri di più sulla crittografia dei secret a livello di applicazione.