Crittografia dei dati del workload in uso con Confidential GKE Node

Questa pagina mostra come applicare la crittografia dei dati in uso nei nodi e nei workload utilizzando Confidential Google Kubernetes Engine Node. L'applicazione della crittografia può contribuire ad aumentare la sicurezza dei workload.

Questa pagina è rivolta agli esperti di sicurezza che implementano misure di sicurezza su GKE. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti di Google Cloud , consulta Ruoli e attività comuni degli utenti GKE.

Prima di leggere questa pagina, assicurati di avere familiarità con il concetto di dati in uso.

Che cos'è Confidential GKE Node?

Puoi criptare i tuoi workload con Confidential GKE Node o con la modalità riservata per Hyperdisk bilanciato.

Confidential GKE Node

Confidential GKE Node utilizza Confidential VM di Compute Engine per proteggere i dati in uso con la crittografia della memoria basata su hardware. Confidential GKE Node supporta le seguenti tecnologie di Confidential Computing:

  • AMD Secure Encrypted Virtualization (SEV)
  • AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP)
  • Intel Trust Domain Extensions (TDX)

Per saperne di più su queste tecnologie e per scegliere quella più adatta alle tue esigenze, consulta la panoramica di Confidential VM.

Confidential GKE Node non modifica le misure di sicurezza che GKE applica ai control plane dei cluster. Per scoprire di più su queste misure, consulta Sicurezza del control plane. Per la visibilità su chi accede ai control plane nei tuoi progetti Google Cloud, utilizza Access Transparency.

Puoi abilitare Confidential GKE Node per interi cluster, per node pool specifici o per workload specifici. La tabella seguente descrive questi metodi di attivazione:

Impostazione Confidential GKE Node Descrizione Comportamento
Livello del workload Configura Confidential GKE Node in una ComputeClass, quindi seleziona la ComputeClass in un workload. GKE crea nodi che utilizzano questa configurazione per eseguire i pod.

L'impostazione del workload supporta una delle seguenti tecnologie di Confidential Computing, indipendentemente dalla modalità del cluster o dal tipo di pool di nodi:

  • AMD SEV
  • AMD SEV-SNP
  • Intel TDX
Livello cluster Questa impostazione è irreversibile.

Abilita Confidential GKE Node quando crei un nuovo cluster Autopilot o Standard. Tutti i nodi del cluster utilizzano Confidential GKE Node. Non puoi eseguire l'override dell'impostazione del cluster per singoli pool di nodi o workload.

Le tecnologie supportate a livello di cluster dipendono dalla modalità operativa del cluster, come segue:

  • Cluster Autopilot:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Cluster Standard:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
Livello del node pool Abilita Confidential GKE Node quando crei un nuovo node pool in un cluster Standard. Puoi utilizzare questo metodo solo se Confidential GKE Node è disabilitato a livello di cluster.

Le tecnologie supportate a livello di pool di nodi dipendono dall'utilizzo o meno del provisioning automatico dei nodi da parte del node pool, come segue:

  • Node pool creati manualmente:
    • AMD SEV
    • AMD SEV-SNP
    • Intel TDX
  • Pool di nodi con provisioning automatico:
    • AMD SEV
    • AMD SEV-SNP

Modalità Confidential per Hyperdisk Balanced

Puoi anche attivare la modalità riservata per Hyperdisk Balanced sullo spazio di archiviazione del disco di avvio, che cripta i dati su enclave aggiuntive con crittografia hardware.

Puoi attivare la modalità riservata per Hyperdisk bilanciato quando esegui una delle seguenti operazioni:

  • Crea un nuovo cluster
  • Crea un nuovo node pool

Non puoi aggiornare un cluster o un pool di nodi esistente per modificare l'impostazione della modalità Confidential per Hyperdisk bilanciato.

La tabella seguente mostra il comportamento di GKE che si applica quando attivi l'impostazione della modalità Confidential per Hyperdisk Balanced a livello di cluster o di node pool:

Impostazione della modalità riservata per Hyperdisk bilanciato Modalità di configurazione Comportamento
A livello di cluster Crea un nuovo cluster Solo il pool di nodi predefinito nel cluster utilizzerà l'impostazione della modalità Confidential per Hyperdisk bilanciato. Non puoi eseguire le seguenti operazioni:
  • Disabilita l'impostazione della modalità Confidential per Hyperdisk Balanced per un node pool esistente nel cluster
  • Attiva l'impostazione della modalità Confidential per Hyperdisk Balanced sui cluster esistenti
Livello del node pool Crea un nuovo node pool Puoi configurare l'impostazione della modalità Confidential per Hyperdisk bilanciato per i nuovi pool di nodi al momento della creazione. Non puoi aggiornare i node pool esistenti per utilizzare la modalità Confidential per l'impostazione Hyperdisk bilanciato.

Prezzi

A seconda di come configuri Confidential GKE Node, si applicano i seguenti prezzi:

Prezzi di Confidential GKE Node
A livello di workload

Nei workload Autopilot, si applicano entrambi i seguenti costi:

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

Nei workload Standard, si applicano entrambi i seguenti costi:

A livello di cluster

Nei cluster Autopilot, si applicano entrambi i seguenti costi:

  • Prezzi della classe di computing Balanced, perché la serie di macchine predefinita nel cluster cambia in N2D. Per saperne di più, consulta la sezione "Pod delle classi di computing Balanced e Scale-Out" in Prezzi di Google Kubernetes Engine.
  • Prezzi di Confidential GKE Node. Per ulteriori informazioni, consulta la sezione "Prezzi di Confidential GKE Node su GKE Autopilot" in Prezzi di Confidential VM.

Nei cluster Standard, si applicano entrambi i seguenti costi:

Livello del node pool

Nei node pool Standard, si applicano i seguenti costi:

Inoltre, i Confidential GKE Node potrebbero generare un volume di dati di log leggermente superiore all'avvio rispetto ai nodi che non sono Confidential GKE Node. Per maggiori informazioni sui prezzi dei log, consulta Prezzi di Google Cloud Observability.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Per utilizzare Google Cloud CLI per questa attività, installala e poi inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo il comando gcloud components update. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.

Requisiti

Confidential GKE Node prevede i seguenti requisiti:

  • I cluster Autopilot devono eseguire la seguente versione di GKE:
    • Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.
    • Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.
  • I cluster Standard devono eseguire una delle seguenti versioni di GKE, a seconda della tecnologia Confidential Computing e del sistema operativo dei nodi che scegli:

    • Container-Optimized OS:

      • AMD SEV: qualsiasi versione di GKE.
      • AMD SEV-SNP: 1.32.2-gke.1297000 o versioni successive.
      • Intel TDX: 1.32.2-gke.1297000 o versioni successive.
    • Ubuntu:

      • AMD SEV: 1.33.5-gke.1350000 o versioni successive e 1.34.1-gke.2037000 o versioni successive.
      • AMD SEV-SNP: 1.33.5-gke.1350000 o versioni successive e 1.34.1-gke.2037000 o versioni successive.
      • Intel TDX: 1.33.5-gke.1697000 o versioni successive e 1.34.1-gke.2909000 o versioni successive.
  • Per abilitare Confidential GKE Node a livello di workload, i cluster Autopilot e Standard devono eseguire GKE versione 1.33.3-gke.1392000 o successiva.

  • I nodi devono utilizzare un tipo di macchina che supporti la tecnologia Confidential Computing che scegli. Per ulteriori informazioni, consulta Tipi di macchine.

  • I control plane e i nodi del cluster devono trovarsi in una località che supporti la tecnologia Confidential Computing scelta. Per saperne di più, consulta Zone.

Configura Confidential GKE Node a livello di workload

Per abilitare Confidential GKE Node in singoli workload, utilizza una ComputeClass. Le ComputeClass sono risorse personalizzate di Kubernetes che ti consentono di definire gli attributi dei nuovi nodi creati da GKE e di controllare il comportamento di riserva se l'hardware non è disponibile. Le classi di computing supportano tutte le tecnologie di Confidential Computing disponibili per GKE, anche se una tecnologia specifica non è supportata a livello di cluster o di pool di nodi.

Per configurare Confidential GKE Node a livello di workload, segui questi passaggi:

  1. (Facoltativo) Per i cluster GKE Standard, attiva il provisioning automatico dei nodi per il cluster. Per i cluster Autopilot, salta questo passaggio.

    Se scegli di utilizzare ComputeClasses solo con i node pool creati manualmente, devi anche configurare manualmente i taint e le etichette dei nodi su questi node pool. Questa configurazione manuale aggiuntiva potrebbe comportare una riduzione dei vantaggi derivanti dall'utilizzo di una classe ComputeClass per creare Confidential GKE Node.

  2. Salva il seguente manifest ComputeClass come file YAML. Per ulteriori informazioni sui campi e sui valori supportati per ComputeClasses, consulta ComputeClass CustomResourceDefinition.

    apiVersion: cloud.google.com/v1
    kind: ComputeClass
    metadata:
      name: COMPUTE_CLASS
    spec:
      nodePoolConfig:
        confidentialNodeType: CONFIDENTIAL_COMPUTE_TECHNOLOGY
      nodePoolAutoCreation:
        enabled: true
      activeMigration:
        optimizeRulePriority: true
      priorityDefaults:
        location:
          zones: ['ZONE1','ZONE2']
      priorities:
      - machineFamily: MACHINE_SERIES
      - machineType: MACHINE_TYPE
      whenUnsatisfiable: DoNotScaleUp
    

    Sostituisci quanto segue:

    • COMPUTE_CLASS: un nome per la nuova classe di computing.
    • CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:

      • 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 saperne di più, consulta Zone.

      (Facoltativo) Se esegui il provisioning di VM TPU, utilizza una zona AI, ad esempio us-central1-ai1a. Le zone AI sono località specializzate ottimizzate per i workload AI/ML all'interno delle regioni Google Cloud .

    • MACHINE_SERIES: la serie di macchine per i nodi, ad esempio n2d. Specifica una serie di macchine che supporti la tecnologia Confidential Computing che hai specificato. Per ulteriori informazioni, consulta Tipi di macchine.

    • 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 ulteriori informazioni, consulta Tipi di macchine.

    Questo manifest include il campo spec.nodePoolAutoCreation con un valore di enabled: true, che consente a GKE di creare nuovi pool di nodi utilizzando il provisioning automatico dei nodi.

  3. Crea la classe 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: "1Gi"

  5. Crea il deployment:

    kubectl apply -f PATH_TO_DEPLOYMENT_MANIFEST
    

    Sostituisci PATH_TO_DEPLOYMENT_MANIFEST con il percorso del file manifest del deployment.

I nuovi nodi creati da GKE per questo workload utilizzano la tecnologia Confidential Computing specificata. Questi nodi vengono eseguiti in una delle zone selezionate, su un tipo di macchina definito nella classe ComputeClass. GKE aggiunge taints e etichette dei nodi in modo che solo i pod che selezionano la stessa ComputeClass possano essere eseguiti sui nodi.

Configura Confidential GKE Node a livello di cluster

Puoi abilitare Confidential GKE Node per un intero cluster Autopilot o Standard, il che significa che ogni nodo dei cluster utilizza Confidential GKE Node. Di conseguenza, tutti i workload di cui esegui il deployment in quel cluster vengono eseguiti su Confidential GKE Node. Non puoi eseguire l'override dell'impostazione del cluster in singoli workload o pool di nodi.

Crea un nuovo cluster Autopilot

I cluster Autopilot supportano Confidential GKE Node solo a livello di cluster. Quando attivi Confidential GKE Node, la serie di macchine predefinita nel cluster Autopilot cambia in base alla tecnologia di Confidential Computing. Tutti i tuoi workload vengono eseguiti su questi nodi riservati senza dover modificare i manifest dei workload. Le serie di macchine predefinite per ciascuna tecnologia di Confidential Computing sono le seguenti:

  • SEV: la serie di macchine predefinita è N2D.
  • SEV_SNP: la serie di macchine predefinita è N2D.
  • TDX: la serie di macchine predefinita è C3.

Per creare un cluster Autopilot che utilizza Confidential GKE Node, seleziona una delle seguenti opzioni:

gcloud

  • Esegui questo comando:
gcloud container clusters create-auto CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster Autopilot.
  • CONTROL_PLANE_LOCATION: la regione di Compute Engine per il control plane del cluster, ad esempio us-central1.
  • 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

    Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.

    Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.

Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.

Console

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

    Vai a Crea un cluster Autopilot

  2. Nella sezione Impostazioni di base del cluster, completa quanto segue:

    1. Inserisci il nome del cluster.
    2. Seleziona una regione per il tuo cluster.
  3. Nel menu di navigazione, nella sezione Impostazioni avanzate, fai clic su Sicurezza.

  4. Seleziona la casella di controllo Abilita Confidential GKE Node.

  5. Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.

    Per AMD SEV, il cluster deve eseguire la versione 1.30.2 o successiva.

    Per AMD SEV-SNP e Intel TDX, il cluster deve eseguire la versione 1.35.2-gke.1485000 o successiva.

  6. Fai clic su Crea.

Per saperne di più, consulta Crea un cluster Autopilot con un canale di rilascio e una versione specifici.

Crea un nuovo cluster Standard

Puoi specificare una tecnologia di Confidential Computing per i tuoi nodi quando crei un cluster Standard. La specifica della tecnologia durante la creazione di un cluster ha i seguenti effetti:

  • In questo cluster puoi creare solo node pool o workload che utilizzano Confidential GKE Node.
  • Non puoi aggiornare il cluster per disabilitare Confidential GKE Node.
  • Non puoi eseguire l'override della tecnologia Confidential Computing a livello di cluster in singoli pool di nodi o workload.

La configurazione di un'impostazione di Confidential Computing a livello di cluster è permanente. Di conseguenza, prima di creare il cluster, considera i seguenti casi d'uso:

Per creare un cluster in modalità Standard che utilizza Confidential GKE Node, seleziona una delle seguenti opzioni:

gcloud

Quando crei un nuovo cluster, specifica l'opzione --confidential-node-type in gcloud CLI:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.
  • LOCATION: la località di Compute Engine per il control plane del cluster. La località deve supportare la tecnologia Confidential Computing specificata. Per saperne di più, consulta la sezione Disponibilità.
  • MACHINE_TYPE: un tipo di macchina che supporta la tecnologia Confidential Computing specificata. Per ulteriori informazioni, consulta la sezione Disponibilità.
  • ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del control plane che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:

    • sev: AMD SEV
    • sev_snp: AMD SEV-SNP
    • tdx: Intel TDX

Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Il tipo di macchina specificato nel comando deve supportare AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.

Console

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

    Vai a Crea un cluster Kubernetes

  2. Nel riquadro di navigazione, fai clic su Impostazioni avanzate.

  3. Nella riga Nodi riservati, fai clic su Modifica configurazione.

  4. Seleziona la casella di controllo Abilita Confidential GKE Node.

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

  6. Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.

    Se la tecnologia selezionata richiede una serie di macchine Compute Engine specifica, viene visualizzata una finestra di dialogo. Fai clic su Apporta modifiche per aggiornare la serie di macchine per il pool di nodi.

  7. Fai clic su Salva.

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

  9. Nel riquadro Dettagli node pool, segui questi passaggi:

    1. Seleziona la casella di controllo Specifica le località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
    2. Seleziona le caselle di controllo per le zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per saperne di più, consulta Zone.
  10. Fai clic su Crea.

Per saperne di più sulla creazione di cluster, consulta Creazione di un cluster a livello di regione.

Per qualsiasi pool di nodi creato con l'impostazione Modalità riservata per Hyperdisk bilanciato, solo i nodi nel pool di nodi sono limitati alla configurazione di setup. Per tutti i nuovi node pool creati nel cluster, devi configurare la modalità riservata al momento della creazione.

Configura il provisioning automatico dei nodi

Puoi configurare il provisioning automatico dei nodi per utilizzare Confidential GKE Node nei pool di nodi con provisioning automatico. Il provisioning automatico dei nodi supporta le seguenti tecnologie di Confidential Computing:

  • AMD SEV
  • AMD SEV-SNP

Per utilizzare Confidential GKE Node con il provisioning automatico dei nodi, specifica il flag gcloud CLI --enable-confidential-nodes quando crei un cluster. Si applicano le seguenti considerazioni aggiuntive:

  • Quando crei il cluster, scegli una tecnologia di Confidential Computing supportata dal provisioning automatico dei nodi. Questa scelta è irreversibile a livello di cluster.
  • Quando attivi il provisioning automatico dei nodi su un cluster esistente, il cluster deve già utilizzare una tecnologia Confidential GKE Node supportata dal provisioning automatico dei nodi.
  • Quando esegui il deployment dei workload, verifica che selezionino la tecnologia Confidential Computing del cluster e una serie di macchine compatibile con questa tecnologia.

Configura Confidential GKE Node a livello di pool di nodi

Puoi abilitare Confidential GKE Node su node pool specifici se Confidential GKE Node è disabilitato a livello di cluster.

L'impostazione della modalità riservata per Hyperdisk bilanciato deve essere specificata durante la richiesta di creazione del pool di nodi.

Crea un nuovo node pool

Per creare un nuovo pool di nodi con Confidential GKE Node abilitato, seleziona una delle seguenti opzioni:

gcloud

Esegui questo comando:

gcloud container node-pools create NODE_POOL_NAME \
    --location=LOCATION \
    --cluster=CLUSTER_NAME \
    --machine-type=MACHINE_TYPE \
    --node-locations=ZONE1,ZONE2,... \
    --confidential-node-type=CONFIDENTIAL_COMPUTE_TECHNOLOGY

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del nuovo pool di nodi.
  • LOCATION: la località del nuovo pool di nodi. La località deve supportare la tecnologia di Confidential Computing specificata. Per maggiori dettagli, consulta la sezione Disponibilità.
  • CLUSTER_NAME: il nome del tuo cluster.
  • MACHINE_TYPE: un tipo di macchina che supporta la tecnologia Confidential Computing specificata. Per maggiori dettagli, consulta la sezione Disponibilità.
  • ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del cluster che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.
  • CONFIDENTIAL_COMPUTE_TECHNOLOGY: la tecnologia Confidential Computing da utilizzare. Sono supportati i seguenti valori:

    • sev: AMD SEV
    • sev_snp: AMD SEV-SNP
    • tdx: Intel TDX

Puoi anche utilizzare il flag --enable-confidential-nodes nel comando di creazione del cluster. Se nel comando specifichi solo questo flag, il cluster utilizza AMD SEV. Il tipo di macchina specificato nel comando deve supportare AMD SEV. Tuttavia, se specifichi il flag --confidential-node-type nello stesso comando, GKE utilizza il valore specificato nel flag --confidential-node-type.

Console

  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 su Crea node pool gestito dall'utente.

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

  6. Nel riquadro Sicurezza dei nodi, segui questi passaggi:

    1. Seleziona la casella di controllo Abilita Confidential GKE Node.
    2. Nella finestra di dialogo Modifiche necessarie, fai clic su Apporta modifiche.
    3. Nel menu Tipo, seleziona la tecnologia di Confidential Computing che vuoi utilizzare.

      Se la tecnologia selezionata richiede una serie di macchine Compute Engine specifica, viene visualizzata una finestra di dialogo. Fai clic su Apporta modifiche per aggiornare la serie di macchine per il pool di nodi.

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

  8. Nel riquadro Dettagli node pool, segui questi passaggi:

    1. Seleziona la casella di controllo Specifica le località dei nodi. Viene visualizzato un elenco di zone nella regione del cluster.
    2. Seleziona le caselle di controllo per le zone che supportano la tecnologia Confidential Computing che hai selezionato per i nodi. Per saperne di più, consulta Zone.
  9. (Facoltativo) Configura altre impostazioni per il pool di nodi.

  10. Fai clic su Crea.

Aggiorna un pool di nodi esistente

Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni dei workload in esecuzione. Per informazioni dettagliate su questa modifica specifica, trova la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi senza rispettare le policy di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificazione delle interruzioni degli aggiornamenti dei nodi.

Puoi aggiornare i node pool esistenti per utilizzare Confidential GKE Node o per cambiare la tecnologia di Confidential Computing utilizzata dai nodi. Il pool di nodi deve soddisfare tutti i seguenti requisiti:

  • I nodi utilizzano un tipo di macchina che supporta la tecnologia Confidential Computing scelta.
  • I nodi vengono eseguiti in zone che supportano la tecnologia Confidential Computing scelta.

Poiché la disponibilità del tipo di macchina e della località potrebbe variare tra le tecnologie Confidential Computing, potrebbe essere necessario aggiornare questi attributi per il pool di nodi prima di attivare una tecnologia Confidential Computing specifica.

Per aggiornare un pool di nodi esistente in modo che utilizzi Confidential GKE Node, seleziona una delle seguenti opzioni:

gcloud

Puoi utilizzare gcloud CLI per abilitare Confidential GKE Node su un pool di nodi o per modificare la tecnologia Confidential Computing dei nodi.

  1. Se il pool di nodi utilizza già Confidential GKE Node, disabilita Confidential GKE Node. Attendi il completamento dell'operazione di aggiornamento del node pool.
  2. Modifica il tipo di macchina pool di nodi e le località dei nodi in modo che corrispondano ai valori supportati per la nuova tecnologia Confidential Computing:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --location=CLUSTER_LOCATION \
        --machine-type=MACHINE_TYPE \
        --node-locations=ZONE1,ZONE2,...
    

    Sostituisci quanto segue:

    • NODE_POOL_NAME: il nome del node pool esistente.
    • CLUSTER_NAME: il nome del cluster.
    • CLUSTER_LOCATION: la località del cluster.
    • MACHINE_TYPE: un tipo di macchina che supporta la nuova tecnologia Confidential Computing. Per saperne di più, consulta la sezione Disponibilità.
    • ZONE1,ZONE2,...: un elenco separato da virgole di zone nella regione del cluster che supportano la nuova tecnologia Confidential Computing. Per saperne di più, consulta Zone.
  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 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 in modo che utilizzi i nodi Confidential GKE solo se il tipo di macchina del pool di nodi è supportato dalla tecnologia Confidential Computing scelta. Se i nodi non utilizzano un tipo di macchina supportato, utilizza le istruzioni di gcloud CLI in questa sezione.

  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 che vuoi 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 saperne di più, consulta Zone.

    Se una zona selezionata non supporta la tecnologia, procedi nel seguente modo:

    1. Deseleziona la casella di controllo della 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 node pool.
  7. Nella sezione Sicurezza, seleziona la casella di controllo Abilita Confidential GKE Node.

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

  9. Fai clic su Salva.

Posiziona i workload solo su pool di nodi riservati

Se abiliti Confidential GKE Node a livello di cluster, tutti i tuoi workload vengono eseguiti su nodi riservati. Non è necessario apportare modifiche ai manifest. Tuttavia, se abiliti Confidential GKE Node solo per node pool in modalità Standard specifici a livello di pool di nodi, devi esprimere in modo dichiarativo che i tuoi workload devono essere eseguiti solo su node pool con Confidential GKE Node.

  • Per richiedere che un workload venga eseguito su una tecnologia Confidential Computing specifica, utilizza un selettore di nodi con l'etichetta cloud.google.com/gke-confidential-nodes-instance-type, come nell'esempio seguente:

    apiVersion: v1
    kind: Pod
    spec:
    # For readability, lines are omitted from this example manifest
      nodeSelector:
        cloud.google.com/gke-confidential-nodes-instance-type: "CONFIDENTIAL_COMPUTE_SELECTOR"
    

    Sostituisci CONFIDENTIAL_COMPUTE_SELECTOR con il nome della tecnologia utilizzata dal pool di nodi. Questo campo supporta i seguenti valori, che devi specificare in lettere maiuscole:

    • SEV: AMD SEV
    • SEV_SNP: AMD SEV-SNP
    • TDX: Intel TDX
  • Per consentire l'esecuzione di un workload su qualsiasi nodo riservato, indipendentemente dalla tecnologia Confidential Computing, utilizza una regola di affinità dei nodi, come nell'esempio seguente:

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: Exists
    
  • Per consentire l'esecuzione di un workload su nodi che utilizzano solo un sottoinsieme delle tecnologie di Confidential Computing disponibili, utilizza una regola di affinità dei nodi simile al seguente esempio:

    apiVersion: v1
    kind: Pod
    spec:
      containers:
      - name: confidential-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: cloud.google.com/gke-confidential-nodes-instance-type
                operator: In
                values:
                - SEV
                - SEV_SNP
                - TDX
    

    Nel campo values, specifica solo le tecnologie di Confidential Computing su cui vuoi eseguire il workload.

Verifica che Confidential GKE Node sia abilitato

Puoi verificare se i tuoi cluster o nodi utilizzano Confidential GKE Node esaminando i cluster, i node pool, i nodi o le istanze di Compute Engine.

Verifica per i cluster

Seleziona una delle seguenti opzioni:

gcloud

Descrivi il cluster:

gcloud container clusters describe CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType)'

Se Confidential GKE Node è abilitato, l'output è simile al seguente:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Console

  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 Confidential GKE Node abbia il valore Abilitato.

Verifica per i node pool

Seleziona una delle seguenti opzioni:

gcloud

Descrivi il pool di nodi:

gcloud container node-pools describe NODE_POOL_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --format='yaml(confidentialNodes.confidentialInstanceType,enableConfidentialStorage)'

Se Confidential GKE Node è abilitato, l'output è simile al seguente:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR

Se è abilitata anche la modalità riservata per Hyperdisk Balanced, l'output è simile al seguente:

confidentialNodes:
  confidentialInstanceType: CONFIDENTIAL_COMPUTE_SELECTOR
enableConfidentialStorage: true

Console

  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 Confidential GKE Node sia impostato su 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 si tratta di un nodo riservato.

Imposta i vincoli delle policy dell'organizzazione

Puoi definire un vincolo della policy dell'organizzazione per assicurarti che tutte le risorse VM create nell'organizzazione siano istanze Confidential VM. Per GKE, puoi personalizzare il vincolo Limita Confidential Computing non riservato per richiedere che tutti i nuovi cluster vengano creati con una delle tecnologie di Confidential Computing disponibili abilitate. Aggiungi il nome del servizio API container.googleapis.com alla lista bloccata quando applichi i vincoli delle policy dell'organizzazione, come nell'esempio seguente:

gcloud resource-manager org-policies deny \
    constraints/compute.restrictNonConfidentialComputing compute.googleapis.com container.googleapis.com \
    --project=PROJECT_ID

Sostituisci PROJECT_ID con l'ID progetto.

Crea un PersistentVolume per la modalità riservata per Hyperdisk bilanciato

Per indicazioni sui valori consentiti per il throughput o le IOPS, consulta Pianifica il livello di prestazioni per il volume Hyperdisk.

I seguenti esempi mostrano come creare una modalità Confidential per Hyperdisk Balanced StorageClass per ogni tipo di Hyperdisk:

Hyperdisk bilanciato

  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 include la chiave
    • HSM_KEY_NAME: il nome della chiave HSM utilizzata per criptare il disco
  2. Crea la classe di archiviazione:

    kubectl create -f hdb-example-class.yaml
    
  3. Crea un oggetto PersistentVolumeClaim Hyperdisk per GKE che utilizza la modalità riservata per il volume Hyperdisk bilanciato.

Per trovare il nome delle StorageClass disponibili nel tuo cluster, esegui questo comando:

kubectl get sc

Limitazioni

Confidential GKE Node presenta le seguenti limitazioni:

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

Limitazioni della migrazione live

La migrazione live è disponibile solo per determinati tipi di macchine Confidential VM. Per saperne di più, consulta la colonna "Supporto della migrazione live" in Tipi di macchine.

Se si verifica un evento di manutenzione dell'host su un nodo che non supporta la migrazione live, il nodo entra in uno stato NotReady. I pod in esecuzione subiranno interruzioni finché il nodo non sarà nuovamente pronto. Se la manutenzione richiede più di cinque minuti, GKE potrebbe tentare di ricreare i pod su altri nodi. Per saperne di più su come ridurre l'impatto sui workload, consulta Gestisci le interruzioni dei nodi GKE che non eseguono la migrazione live.

Disabilita Confidential GKE Nodes

Questa modifica richiede la ricreazione dei nodi, il che può causare interruzioni dei workload in esecuzione. Per informazioni dettagliate su questa modifica specifica, trova la riga corrispondente nella tabella Modifiche manuali che ricreano i nodi utilizzando una strategia di upgrade dei nodi senza rispettare le policy di manutenzione. Per scoprire di più sugli aggiornamenti dei nodi, consulta Pianificazione delle interruzioni degli aggiornamenti dei nodi.

Puoi disabilitare Confidential GKE Node solo nei node pool in modalità Standard. Se il pool di nodi si trova in un cluster che utilizza Confidential GKE Node a livello di cluster, non puoi disattivare la funzionalità a livello di pool di nodi. Per disattivare Confidential GKE Node, seleziona una delle seguenti opzioni:

gcloud

Esegui questo comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CLUSTER_LOCATION \
    --no-enable-confidential-nodes

Console

  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 che vuoi 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 Confidential GKE Node.

  7. Fai clic su Salva.

Passaggi successivi