Usare le macchine virtuali riservate (CVM) in un cluster di Servizio Azure Kubernetes (AKS)

Confidential Macchine virtuali (CVMs) offrono sicurezza e riservatezza avanzate per i tenant. Le macchine virtuali basate su VM offrono un ambiente di esecuzione protetta (Hardware Trusted Execution Environment) che sfrutta le funzionalità di sicurezza SEV-SNP per impedire l'accesso dell'hypervisor e di altri codici di gestione dell'host alla memoria e allo stato della macchina virtuale, fornendo una protezione approfondita contro l'accesso degli operatori. Queste funzionalità consentono ai pool di nodi con CVM di indirizzare la migrazione di carichi di lavoro di contenitori estremamente sensibili al servizio Azure Kubernetes senza eseguire il refactoring del codice sfruttando al contempo le funzionalità del servizio Azure Kubernetes. Ad esempio, potrebbe essere necessario disporre di CVM nei seguenti casi:

  • Carichi di lavoro che gestiscono dati critici per la sicurezza e dati sensibili dei clienti.
  • Servizi necessari per soddisfare vari requisiti di conformità, in particolare per i contratti governativi. Senza una soluzione scalabile per la protezione dei dati, ciò potrebbe causare la perdita di accreditamento e contratti.

In questo articolo, imparerai come creare pool di nodi nel servizio Azure Kubernetes usando dimensioni di macchine virtuali riservate e confidenziali.

Schermata del diagramma di architettura che mostra le macchine virtuali riservate in AKS.

Importante

A partire dal 10 dicembre 2026, Servizio Azure Kubernetes (AKS) non supporta più Azure Linux con OS Guard per il servizio Azure Kubernetes (anteprima). A quel punto, AKS non produce più nuove immagini dei nodi di Azure Linux con OS Guard né fornisce patch di sicurezza, e non è più possibile creare nuovi pool di nodi con Azure Linux e OS Guard. Il 10 marzo 2027, AKS rimuove tutte le immagini dei nodi esistenti di Azure Linux con OS Guard, causando il fallimento delle operazioni di ridimensionamento e ripristino (reimaging e ridistribuzione). Per evitare interruzioni, eseguire la migrazione a Azure Contenitore Linux (ACL). Per altre informazioni su questo ritiro, vedere il problema di ritiro GitHub e l'annuncio di ritiro degli aggiornamenti Azure. Per rimanere aggiornati sugli annunci e gli aggiornamenti, vedere le note sulla versione di AKS.

Dimensioni di macchine virtuali confidenziali supportate da AKS

Azure offre una scelta di opzioni TEE (Trusted Execution Environment) sia da AMD che da Intel. Questi TEE consentono di creare ambienti di macchine virtuali riservati con ottimi rapporti di prezzo-prestazioni, senza richiedere modifiche al codice. Le macchine virtuali riservate basate su Intel TDX non sono attualmente supportate nel servizio Azure Kubernetes.

Per altre informazioni, vedere Dimensioni delle macchine virtuali CVM.

Funzionalità di sicurezza

La CVM offre i seguenti miglioramenti di sicurezza rispetto ad altre misure delle macchine virtuali:

  • Isolamento affidabile basato su hardware tra macchine virtuali, hypervisor e codice di gestione host.
  • Criteri di attestazione personalizzabili per garantire la conformità dell'host prima della distribuzione.
  • Chiavi di crittografia della macchina virtuale che la piattaforma o il cliente (facoltativamente) possiede e gestisce.
  • Versione della chiave sicura con l'associazione crittografica tra l'attestazione corretta della piattaforma e le chiavi di crittografia della macchina virtuale.
  • Istanza TPM (Virtual Trusted Platform Module) dedicata per l'attestazione e la protezione di chiavi e segreti nella macchina virtuale.
  • Funzionalità di avvio sicuro simili all'avvio attendibile per le macchine virtuali di Azure

Come funziona?

Se si esegue un carico di lavoro che richiede una maggiore riservatezza e integrità, è possibile trarre vantaggio dalla crittografia della memoria e dalla sicurezza avanzata senza modifiche al codice nell'applicazione. Tutti i pod sul nodo CVM sono parte dello stesso ambito di attendibilità. I nodi in un pool di nodi creati con le macchine virtuali usano un'immagine del nodo personalizzata configurata appositamente per le macchine virtuali.

Versioni del sistema operativo supportate

È possibile creare pool di nodi CVM in tipi di sistema operativo Linux (Ubuntu e Linux di Azure). Tuttavia, non tutte le versioni del sistema operativo supportano pool di nodi CVM.

Questa tabella include le versioni del sistema operativo supportate:

Tipo di sistema operativo SKU del sistema operativo Supporto CVM CVM predefinito
Linux Ubuntu Sostenuto Ubuntu 20.04 è l'impostazione predefinita per Kubernetes versione 1.24-1.34. Ubuntu 24.04 è l'impostazione predefinita per Kubernetes versione 1.35-1.38.
Linux Ubuntu2204 Non supportato AKS non supporta CVM per Ubuntu 22.04.
Linux Ubuntu2404 Sostenuto CVM è supportato su Ubuntu2404 in Kubernetes 1.32-1.38.
Linux AzureLinux Supportato in Azure Linux 3.0 Azure Linux 3 è l'impostazione predefinita quando si abilita CVM per Kubernetes versione 1.28-1.36.
Linux flatcar Non supportato Flatcar Container Linux per AKS non supporta CVM.
Linux AzureLinuxOSGuard Non supportato Azure Linux con OS Guard per AKS non supporta CVM.
Linux AzureContainerLinux Non supportato Azure Contenitore Linux (ACL) non supporta CVM.
Windows Tutti gli SKU del sistema operativo Windows Non supportato N/A

Quando si utilizza Ubuntu o AzureLinux come osSKU, se la versione predefinita del sistema operativo non supporta le CVM, AKS usa per impostazione predefinita la versione più recente del sistema operativo supportata da CVM.

Limitazioni

Quando si aggiunge un pool di nodi con CVM al servizio Azure Kubernetes, si applicano le limitazioni seguenti:

  • Non è possibile usare FIPS, ARM64, Avvio attendibile, Sandbox pod, Contenitori riservati o provisioning automatico dei nodi con pool di nodi CVM.
  • Non è possibile usare cvm con pool di nodi Windows.

Prerequisiti

Prima di iniziare, verificare di disporre di quanto segue:

  • Un cluster del servizio Azure Kubernetes pre-esistente.
  • Le dimensioni CVM devono essere disponibili per la sottoscrizione nell'area in cui viene creato il cluster. È necessario disporre di una quota sufficiente per creare un pool di nodi con dimensioni CVM.

Aggiungere un pool di nodi con un CVM al cluster AKS

Aggiungere un pool di nodi con un CVM al cluster del servizio Azure Kubernetes utilizzando il comando az aks nodepool add e impostare node-vm-size su una dimensione di macchina virtuale supportata.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name cvmnodepool \
    --node-count 3 \
    --node-vm-size Standard_DC4as_v5 

Se non si specifica osSKU o osType, AKS per impostazione predefinita è --os-type Linux e --os-sku Ubuntu.

Per creare un pool di nodi CVM che usa Azure Linux, impostare --os-sku AzureLinux.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name cvmnodepool \
    --node-count 3 \
    --node-vm-size Standard_DC4as_v5 \
    --os-sku AzureLinux

Verificare che il pool di nodi usi cvm

  1. Verificare che un pool di nodi utilizzi CVMs eseguendo il comando az aks nodepool show e controllando che Standard_DC4as_v5 sia vmSize.

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'vmSize'
    

    L'output di esempio seguente mostra che il pool di nodi usa cvm:

    "Standard_DC4as_v5"
    
  2. Verificare che un pool di nodi usi un'immagine CVM eseguendo il az aks nodepool show comando .

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name cvmnodepool \
        --query 'nodeImageVersion'
    

    L'output di esempio seguente mostra che il pool di nodi usa un'immagine CVM Ubuntu 20.04. La generazione del sistema operativo e la versione dell'immagine dipendono dalla versione di Kubernetes e dallo SKU del sistema operativo del pool di nodi.

    "AKSUbuntu-2404gen2CVMcontainerd-202608.06.1"
    

Rimuovere un pool di nodi con CVM da un cluster AKS

Rimuovere un pool di nodi con CVM da un cluster del servizio Azure Kubernetes usando il az aks nodepool delete comando .

az aks nodepool delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name cvmnodepool

In questo articolo si è appreso come aggiungere un pool di nodi con CVM a un cluster del servizio Azure Kubernetes.