Questa pagina mostra come applicare la crittografia dei dati in uso. nei tuoi nodi e carichi di lavoro usando i nodi Confidential Google Kubernetes Engine Node.
Panoramica
Puoi criptare i carichi di lavoro con Confidential GKE Node o Modalità riservata per Hyperdisk Balanced.
Confidential GKE Node
Confidential GKE Node è basato su Confidential VM di Compute Engine e utilizza la tecnologia Secure Encrypted Virtualization (SEV) di AMD, che cripta i contenuti della memoria delle VM in uso. La crittografia in uso è uno dei tre stati la crittografia end-to-end.
Quando abiliti Confidential GKE Node su un cluster o su un pool di nodi, i dati nei carichi di lavoro in esecuzione sui nodi riservati sono criptati in uso. Per la visibilità del tuo control plane, utilizza Access Transparency.
Puoi abilitare i nodi riservati di GKE 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 Nodi GKE riservati a livello di cluster.
La tabella seguente mostra il comportamento di GKE che si applica quando di abilitare Confidential GKE Node a livello di cluster o a livello di nodo livello del pool:
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 eseguire le
seguenti:
|
A livello di pool di nodi |
|
Puoi configurare i Confidential GKE Node per i pool di nodi solo se questa funzionalità è disattivata a livello di cluster. |
Modalità riservata per Hyperdisk bilanciato
Puoi anche attivare la modalità riservata per Hyperdisk Balanced sullo spazio di archiviazione del tuo disco di avvio, che cripta i tuoi dati in altre enclave supportate dall'hardware.
Puoi attivare la modalità riservata per Hyperdisk Balanced quando esegui una delle seguenti operazioni:
- Crea un nuovo cluster
- Crea un nuovo pool di nodi
Non puoi aggiornare un cluster o un pool di nodi esistente per modificare l'impostazione Modalità riservata per Hyperdisk bilanciata.
La tabella seguente mostra il comportamento di GKE che si applica quando abiliti la modalità riservata per l'impostazione Hyperdisk bilanciato a livello di cluster o a livello di nodo livello del pool:
Modalità riservata per l'impostazione Hyperdisk bilanciato | Modalità di configurazione | Comportamento |
---|---|---|
A livello di cluster | Crea un nuovo cluster | Verrà utilizzato solo il pool di nodi predefinito nel cluster
Modalità riservata per l'impostazione Hyperdisk bilanciato. Non puoi eseguire le
seguenti:
|
Livello del pool di nodi | Crea un nuovo pool di nodi | Puoi configurare la modalità riservata per l'impostazione Hyperdisk bilanciato per tutti i nuovi pool di nodi al momento della creazione. Non puoi aggiornare i pool di nodi esistenti in modo che utilizzino la modalità riservata per l'impostazione bilanciato Hyperdisk. |
Prezzi
Non sono previsti costi aggiuntivi per il deployment di Confidential GKE Node, rispetto al costo di Confidential VM di Compute Engine. Tuttavia, i Confidential GKE Node potrebbero generare leggermente più dati dei log all'avvio rispetto ai nodi standard. Per informazioni sui prezzi dei log, consulta Prezzi per Google Cloud Observability.
Disponibilità
Confidential GKE Node è disponibile nelle seguenti situazioni:
I Confidential GKE Node sono disponibili solo in zone e regioni con istanze N2D o istanze C2D disponibile.
I Confidential GKE Node possono essere utilizzati Container-Optimized OS e Container-Optimized OS con containerd (
cos_containerd
).
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
- 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
.
Abilita i nodi Confidential GKE sui cluster
Puoi creare un nuovo cluster con i nodi GKE riservati abilitati utilizzando la CLI gcloud o la console Google Cloud. Se attivi Confidential GKE Node a livello di cluster, tutti i nodi sono 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 i nodi Confidential GKE.
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 usare solo nodi riservati. Non puoi creare pool di nodi normali in cluster in cui sono abilitati Confidential GKE Node. Tu Inoltre, non possono disabilitare Confidential GKE Node su singoli pool di nodi abilitando Confidential GKE Node a livello di cluster.
Per qualsiasi pool di nodi creato con la modalità riservata per l'impostazione Hyperdisk Bilanciato, solo i nodi nel pool di nodi è limitato alla configurazione di configurazione. Per qualsiasi nuovo pool di nodi creato nel cluster, devi configurare la modalità riservata al momento della creazione.
Abilita Confidential GKE Node sui pool di nodi
Puoi abilitare i nodi Confidential GKE Node in pool di nodi specifici se i nodi Confidential GKE Node sono disattivati a livello di cluster.
La modalità riservata per l'impostazione Hyperdisk bilanciato deve essere specificata durante la richiesta di creazione del pool di nodi.
Crea un nuovo pool di nodi
Per creare un nuovo pool di nodi con i nodi GKE riservati abilitati, esegui il seguente 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 il tipo di macchina C2D.
Aggiornare un pool di nodi esistente
Puoi abilitare Confidential GKE Node su pool di nodi esistenti che utilizzano il tipo di macchina N2D o 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 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 tuo cluster utilizzi i nodi GKE riservati con la riga di comando gcloud 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 Enabled.
Nei pool di nodi
Per verificare che il pool di nodi utilizzi Confidential GKE Node, esegui il seguente comando:
gcloud container node-pools describe NODE_POOL_NAME \
--cluster=CLUSTER_NAME
Se Confidential GKE Node è abilitato, l'output è simile a le seguenti:
confidentialNodes:
enabled: true
Se l'impostazione della modalità riservata per Hyperdisk Balanced è abilitata, l'output è simile al seguente:
enableConfidentialStorage: true
Sui nodi
Per convalidare la riservatezza di nodi specifici, puoi:
Esegui applicazioni su Confidential GKE Node
L'approccio di Google al Confidential Computing consiste nel garantire un incremento semplice e per le applicazioni esistenti. I carichi di lavoro GKE che esegui oggi possono essere eseguiti su nodi GKE riservati senza modifiche al codice.
Se vuoi dichiarare in modo esplicito che i carichi di lavoro devono essere eseguiti solo su cluster con Confidential GKE Node, puoi utilizzare il selettore di nodi cloud.google.com/gke-confidential-nodes
.
Ecco un esempio di specifica del pod 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"
Impostare vincoli dei criteri dell'organizzazione
Puoi definire un vincolo del criterio dell'organizzazione per garantire che tutte le risorse VM
create nella tua organizzazione sono istanze Confidential VM.
Per GKE, puoi personalizzare la casella di controllo Limita le
di computing che richiede la creazione di tutti i nuovi cluster
Confidential GKE Node abilitati. Aggiungi container.googleapis.com
Nome del servizio API nell'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.
Crea un volume persistente per la modalità riservata per Hyperdisk bilanciato
Per indicazioni sui valori consentiti per la velocità effettiva o il numero di IOPS, vedi Pianificare il livello delle prestazioni per il volume Hyperdisk.
I seguenti esempi mostrano come creare una modalità riservata per Hyperdisk Balanced StorageClass per ciascun 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 del keyring che include la chiaveHSM_KEY_NAME
: il nome della chiave HSM utilizzata per criptare il disco
Crea l'oggetto StorageClass:
kubectl create -f hdb-example-class.yaml
Crea un claim del volume Hyperdisk permanente per GKE che utilizzi la modalità Confidenziale per il volume Hyperdisk bilanciato.
Per trovare il nome delle classi di archiviazione disponibili nel cluster, esegui il seguente comando:
kubectl get sc
Limitazioni
Confidential GKE Node presenta le seguenti limitazioni:
- Tutti i limitazioni delle istanze Confidential VM Compute Engine si applicano ai Confidential GKE Node.
- I nodi riservati di GKE con il tipo di macchina C2D possono utilizzare il provisioning automatico dei nodi solo in GKE 1.24 o versioni successive.
- Confidential GKE Nodes supporta solo i volumi permanenti supportati da dischi permanenti se il tuo piano di controllo esegue GKE 1.22 o versioni successive. Per istruzioni, consulta in 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 utilizzando l'archiviazione temporanea su SSD locali, ma non supporta l'uso degli 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 GKE riservati.
- Per ulteriori informazioni sulla modalità riservata per Hyperdisk Balanced, consulta la sezione Limitazioni.
- La modalità riservata per Hyperdisk Bilanciato è supportata solo sui nodi Confidential GKE Node.
Limitazioni della migrazione live
Alcuni tipi di macchine Confidential VM di Compute Engine supportano la migrazione live, che riduce al minimo la potenziale interruzione del carico di lavoro a causa di un evento di manutenzione dell'host. La migrazione in tempo reale 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
Se i tuoi pool di nodi eseguivano già una versione supportata quando è stata aggiunta la migrazione in tempo reale, esegui l'upgrade manuale dei pool di nodi alla stessa versione supportata o a una diversa. L'upgrade dei nodi attiva il nodo e la migrazione live è abilitata per i nuovi nodi.
Per informazioni dettagliate sui tipi di macchine Compute Engine che supportano la migrazione in tempo reale, consulta Configurazioni supportate.
Se un evento di manutenzione dell'host
si verifica su un nodo che non supporta la migrazione live, il nodo entra
NotReady
. L'esecuzione dei pod subirà interruzioni fino a quando
quando si prepara di nuovo. 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 disattivazione di Confidential GKE Node funziona solo per i pool di nodi che hanno attivato Confidential GKE Node. Se il cluster è creato con nodi riservati di GKE, non puoi disattivare la funzionalità. Esegui l' questo comando per disabilitare Confidential GKE Node su 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.