Crittografia dei dati in uso del carico di lavoro con i nodi GKE riservati


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:

  • AMD SEV
  • AMD SEV-SNP
  • Intel TDX
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:

  • Cluster Autopilot: AMD SEV
  • Cluster standard:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
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:

  • Node pool creati manualmente:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Pool di nodi di cui è stato eseguito il provisioning automatico:
    • AMD SEV
    • AMD SEV-SNP

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:
  • Disabilita l'impostazione della modalità Confidential per Hyperdisk Balanced per un pool di nodi esistente nel cluster
  • Abilitare l'impostazione della modalità confidenziale per Hyperdisk Balanced sui cluster esistenti
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:

  • Fatturazione basata sui nodi Autopilot per la serie di macchine Compute Engine su cui vengono eseguiti i pod. Per ulteriori informazioni, consulta la sezione "Pod con requisiti hardware specifici" in Prezzi di Google Kubernetes Engine.
  • Prezzi di Confidential GKE Nodes. Per saperne di più, consulta la sezione "Prezzi di Confidential GKE Node su GKE Autopilot" in Prezzi di Confidential VM.

Nei workload Standard, si applicano entrambi i costi seguenti:

A livello di cluster

Nei cluster Autopilot si applicano entrambi i seguenti costi:

  • Prezzi bilanciati della classe di calcolo, perché la serie di macchine predefinita nel cluster cambia in N2D. Per saperne di più, consulta la sezione "Pod di classe di calcolo bilanciata e scalabile" nella pagina Prezzi di Google Kubernetes Engine.
  • Prezzi di Confidential GKE Nodes. Per saperne di più, consulta la sezione "Prezzi di Confidential GKE Node su GKE Autopilot" in Prezzi di Confidential VM.

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:

  1. (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.

  2. 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 SEV
      • SEV_SNP per AMD SEV-SNP
      • TDX 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 esempio n2d. 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 esempio n2d-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 di enabled: true, che consente a GKE di creare nuovi node pool utilizzando il provisioning automatico dei nodi.

  3. 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.

  4. Salva il seguente manifest di Deployment come file YAML:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: helloweb
      labels:
        app: hello
    spec:
      selector:
        matchLabels:
          app: hello
      template:
        metadata:
          labels:
            app: hello
        spec:
          nodeSelector:
            # Replace with the name of a compute class
            cloud.google.com/compute-class: COMPUTE_CLASS 
          containers:
          - name: hello-app
            image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
            ports:
            - containerPort: 8080
            resources:
              requests:
                cpu: "250m"
                memory: "4Gi"

  5. 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 esempio us-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 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 SEV
    • sev_snp: AMD SEV-SNP
    • tdx: 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

  1. Nella console Google Cloud , vai alla pagina Crea un cluster Kubernetes.

    Vai a Crea un cluster Kubernetes

  2. Nel menu di navigazione, nella sezione Cluster, fai clic su Sicurezza.

  3. Seleziona la casella di controllo Abilita Confidential GKE Nodes.

  4. Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.

  5. 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.

  6. Nel menu di navigazione, nella sezione Pool di nodi, fai clic su default-pool.

  7. Nel riquadro Dettagli node pool, procedi nel seguente modo:

    1. Seleziona la casella di controllo Specifica località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
    2. 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.
  8. 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 SEV
    • sev_snp: AMD SEV-SNP
    • tdx: 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

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster Standard.

  3. Fai clic su Aggiungi pool di nodi.

  4. Nel menu di navigazione, fai clic su Sicurezza.

  5. Nel riquadro Sicurezza dei nodi, procedi nel seguente modo:

    1. Seleziona la casella di controllo Abilita Confidential GKE Nodes.
    2. Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
    3. 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.

  6. Nel menu di navigazione, fai clic su Dettagli del pool di nodi.

  7. Nel riquadro Dettagli node pool, procedi nel seguente modo:

    1. Seleziona la casella di controllo Specifica località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
    2. 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.
  8. (Facoltativo) Configura altre impostazioni per il pool di nodi.

  9. 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.

  1. 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.
  2. 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.
  3. 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 SEV
    • sev_snp: AMD SEV-SNP
    • tdx: 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.

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster Standard.

  3. Fai clic sulla scheda Nodi.

  4. Fai clic sul nome del pool di nodi da modificare.

  5. Nella pagina Dettagli del pool di nodi, fai clic su Modifica. Viene visualizzato il riquadro Modifica node pool.

  6. 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:

    1. Deseleziona la casella di controllo per la zona non supportata.
    2. (Facoltativo) Seleziona le caselle di controllo per altre zone supportate.
    3. Fai clic su Salva. Attendi il completamento dell'operazione di aggiornamento del pool di nodi.
    4. Fai clic su Modifica per riaprire il riquadro Modifica pool di nodi.
  7. Nella sezione Sicurezza, seleziona la casella di controllo Abilita Confidential GKE Nodes.

  8. Nel menu Tipo, seleziona la tecnologia di Confidential Computing per i nodi.

  9. 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 SEV
    • SEV_SNP: AMD SEV-SNP
    • TDX: 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

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes.

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster che vuoi ispezionare.

  3. 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

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes.

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster che vuoi ispezionare.

  3. Fai clic sul nome di un pool di nodi.

  4. Nella sezione Sicurezza, verifica che il campo GKE Confidential Nodes abbia il valore Abilitato.

Verifica per un nodo specifico

  1. Trova il nome del nodo:

    kubectl get nodes
    
  2. 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

  1. 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 KMS
    • REGION: la regione in cui si trova il disco
    • KEY_RING: il nome delle chiavi automatizzate che includono la chiave
    • HSM_KEY_NAME: il nome della chiave HSM utilizzata per criptare il disco
  2. Crea StorageClass:

    kubectl create -f hdb-example-class.yaml
    
  3. 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:

La modalità confidenziale per Hyperdisk Balanced presenta le seguenti limitazioni:

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

  1. Nella console Google Cloud , vai alla pagina Cluster Kubernetes:

    Vai ai cluster Kubernetes

  2. Fai clic sul nome del cluster Standard.

  3. Fai clic sulla scheda Nodi.

  4. Fai clic sul nome del pool di nodi da modificare.

  5. Nella pagina Dettagli del pool di nodi, fai clic su Modifica. Viene visualizzato il riquadro Modifica node pool.

  6. Nella sezione Sicurezza, deseleziona la casella di controllo Abilita GKE Confidential Nodes.

  7. Fai clic su Salva.

Passaggi successivi