Avvio attendibile (anteprima) per servizio Azure Kubernetes (servizio Azure Kubernetes)
L'avvio attendibile (anteprima) migliora la sicurezza delle macchine virtuali di seconda generazione proteggendo da tecniche di attacco avanzate e persistenti. Consente agli amministratori di distribuire nodi del servizio Azure Kubernetes, che contengono le macchine virtuali sottostanti, con bootloader verificati e firmati, kernel del sistema operativo e driver. Usando l'avvio sicuro e misurato, gli amministratori ottengono informazioni dettagliate e attendibilità dell'integrità dell'intera catena di avvio.
Questo articolo aiuta a comprendere questa nuova funzionalità e a come implementarla.
Panoramica
L'avvio attendibile è costituito da diverse tecnologie di infrastruttura coordinate che possono essere abilitate in modo indipendente. Ogni tecnologia offre un altro livello di difesa contro minacce sofisticate.
vTPM : l'avvio attendibile introduce una versione virtualizzata di un modulo TPM (Trusted Platform Module ), conforme alla specifica TPM 2.0. Funge da insieme di credenziali sicuro dedicato per chiavi e misurazioni. L'avvio attendibile fornisce alla macchina virtuale una propria istanza TPM dedicata, in esecuzione in un ambiente sicuro all'esterno della copertura di qualsiasi macchina virtuale. VTPM abilita l'attestazione misurando l'intera catena di avvio della macchina virtuale (UEFI, sistema operativo, sistema e driver). L'avvio attendibile usa vTPM per eseguire l'attestazione remota dal cloud. Viene usato per i controlli di integrità della piattaforma e per prendere decisioni basate sull'attendibilità. Come controllo dell'integrità, l'avvio attendibile può certificare crittograficamente che la macchina virtuale è stata avviata correttamente. Se il processo non riesce, probabilmente perché la macchina virtuale esegue un componente non autorizzato, Microsoft Defender per il cloud genera avvisi di integrità. Gli avvisi includono i dettagli sui componenti che non sono riusciti a superare i controlli di integrità.
Avvio protetto: nella radice dell'avvio attendibile è Avvio protetto per la macchina virtuale. Questa modalità, implementata nel firmware della piattaforma, protegge dall'installazione di rootkit e kit di avvio basati su malware. L'avvio protetto funziona per garantire che solo i sistemi operativi e i driver firmati possano essere avviati. Stabilisce una "radice di attendibilità" per lo stack software nella macchina virtuale. Con l'avvio protetto abilitato, tutti i componenti di avvio del sistema operativo (caricatore di avvio, kernel, driver kernel) devono essere firmati da autori attendibili. Sia Windows che le distribuzioni Linux supportano l'avvio protetto. Se l'avvio protetto non riesce a autenticare un'immagine firmata da un autore attendibile, non è consentita l'avvio della macchina virtuale. Per altre informazioni, vedere Avvio protetto.
Operazioni preliminari
Interfaccia della riga di comando di Azure versione 2.44.1 o successiva. Eseguire
az --version
per trovare la versione ed eseguireaz upgrade
per aggiornare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.Estensione dell'interfaccia della
aks-preview
riga di comando di Azure versione 1.0.0b6 o successiva.Registrare la funzionalità
TrustedLaunchPreview
nella sottoscrizione di Azure.Il servizio Azure Kubernetes supporta l'avvio attendibile (anteprima) nella versione 1.25.2 e successive.
L'avvio attendibile supporta solo le macchine virtuali di seconda generazione di Azure.
L'avvio protetto richiede caricatori di avvio firmati, kernel del sistema operativo e driver.
Installare l'estensione dell'interfaccia della riga di comando di Azure aks-preview
Importante
Le funzionalità di anteprima del servizio Azure Kubernetes sono disponibili in modalità self-service e opzionale. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:
Per installare l'estensione aks-preview, eseguire il comando seguente:
az extension add --name aks-preview
Per eseguire l'aggiornamento alla versione più recente dell'estensione rilasciata eseguire il comando seguente:
az extension update --name aks-preview
Registrare il flag di funzionalità TrustedLaunchPreview
Registrare il flag di funzionalità TrustedLaunchPreview
usando il comando az feature register, come mostrato nell'esempio seguente:
az feature register --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"
Sono necessari alcuni minuti per visualizzare lo stato Registered. Verificare lo stato della registrazione usando il comando az feature show:
az feature show --namespace "Microsoft.ContainerService" --name "TrustedLaunchPreview"
Quando lo stato passa a Registrato, aggiornare la registrazione del provider di risorse Microsoft.ContainerService usando il comando az provider register:
az provider register --namespace "Microsoft.ContainerService"
Limiti
- I nodi del cluster che eseguono il sistema operativo Windows Server non sono supportati.
- L'avvio attendibile (anteprima) non supporta i pool di nodi con FIPS abilitato o basato su ARM64.
- I set di disponibilità non sono supportati, ma solo set di scalabilità di macchine virtuali.
- Per abilitare l'avvio protetto nei pool di nodi GPU, è necessario ignorare l'installazione del driver GPU. Per altre informazioni, vedereIgnorare l'installazione del driver GPU.
- I dischi temporanei del sistema operativo possono essere creati con l'avvio attendibile e tutte le aree sono supportate. Tuttavia, non tutte le dimensioni delle macchine virtuali sono supportate. Per altre informazioni, vedere Dimensioni temporanee del sistema operativo di avvio attendibili.
Distribuire un nuovo cluster
Eseguire la procedura seguente per distribuire un cluster del servizio Azure Kubernetes usando l'interfaccia della riga di comando di Azure.
Creare un cluster del servizio Azure Kubernetes usando il comando crare az ask. Prima di eseguire il comando, esaminare i parametri seguenti:
- --name: immettere un nome univoco per il cluster del servizio Azure Kubernetes, ad esempio myAKSCluster.
- --resource-group: immettere il nome di un gruppo di risorse esistente per ospitare la risorsa cluster del servizio Azure Kubernetes.
- --enable-secure-boot: abilita l'avvio protetto per autenticare un'immagine firmata da un autore attendibile.
- --enable-vtpm: abilita vTPM ed esegue l'attestazione misurando l'intera catena di avvio della macchina virtuale.
Nota
L'avvio protetto richiede caricatori di avvio firmati, kernel del sistema operativo e driver. Se dopo aver abilitato l'avvio protetto, i nodi non vengono avviati, è possibile verificare quali componenti di avvio sono responsabili degli errori di avvio protetto all'interno di una macchina virtuale Linux di Azure. Vedere Verificare gli errori di avvio protetto.
L'esempio seguente crea un cluster denominato myAKSCluster con un nodo in myResourceGroup e abilita l'avvio protetto e vTPM:
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --node-count 1 \ --enable-secure-boot \ --enable-vtpm \ --generate-ssh-keys
Eseguire il comando seguente per ottenere le credenziali di accesso per il cluster Kubernetes. Usare il comando az aks get-credentials e sostituire i valori del nome del cluster e il nome del gruppo di risorse.
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Aggiungere un pool di nodi con avvio attendibile abilitato
Distribuire un pool di nodi con avvio attendibile abilitato usando il comando az aks nodepool add . Prima di eseguire il comando, esaminare i parametri seguenti:
- --cluster-name: immettere il nome del cluster del servizio Azure Kubernetes.
- --resource-group: immettere il nome di un gruppo di risorse esistente per ospitare la risorsa cluster del servizio Azure Kubernetes.
- --name: immettere un nome univoco per il pool di nodi. Il nome di un pool di nodi può contenere solo caratteri alfanumerici minuscoli e deve iniziare con una lettera minuscola. Per i pool di nodi Linux, la lunghezza deve essere compresa tra 1 e 11 caratteri.
- --node-count: numero di nodi nel pool di agenti Kubernetes. Il valore predefinito è 3.
- --enable-secure-boot: abilita l'avvio protetto per autenticare l'immagine firmata da un autore attendibile.
- --enable-vtpm: abilita vTPM ed esegue l'attestazione misurando l'intera catena di avvio della macchina virtuale.
Nota
L'avvio protetto richiede caricatori di avvio firmati, kernel del sistema operativo e driver. Se dopo aver abilitato l'avvio protetto, i nodi non vengono avviati, è possibile verificare quali componenti di avvio sono responsabili degli errori di avvio protetto all'interno di una macchina virtuale Linux di Azure. Vedere Verificare gli errori di avvio protetto.
L'esempio seguente distribuisce un pool di nodi con vTPM abilitato in un cluster denominato myAKSCluster con tre nodi:
az aks nodepool add --resource-group myResourceGroup -–cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm
L'esempio seguente distribuisce un pool di nodi con vTPM e Avvio protetto abilitato in un cluster denominato myAKSCluster con tre nodi:
az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-boot
Aggiornare il cluster e abilitare l'avvio attendibile
Aggiornare un pool di nodi con avvio attendibile abilitato usando il comando az aks nodepool update . Prima di eseguire il comando, esaminare i parametri seguenti:
- --resource-group: immettere il nome di un gruppo di risorse esistente che ospita il cluster del servizio Azure Kubernetes esistente.
- --cluster-name: immettere un nome univoco per il cluster del servizio Azure Kubernetes, ad esempio myAKSCluster.
- --name: immettere il nome del pool di nodi, ad esempio mynodepool.
- --enable-secure-boot: abilita l'avvio protetto per autenticare che l'immagine è stata firmata da un autore attendibile.
- --enable-vtpm: abilita vTPM ed esegue l'attestazione misurando l'intera catena di avvio della macchina virtuale.
Nota
Il pool di nodi esistente deve usare un'immagine di avvio attendibile per abilitare in un pool di nodi esistente. Di conseguenza, per i pool di nodi creati prima di registrare la TrustedLaunchPreview
funzionalità, non è possibile aggiornarli con l'avvio attendibile abilitato.
Per impostazione predefinita, la creazione di un pool di nodi con una configurazione compatibile con TL e il flag di funzionalità registrato genera un'immagine di avvio attendibile. Senza specificare --enable-vtpm
o --enable-secure-boot
parametri, questi vengono disabilitati per impostazione predefinita ed è possibile abilitarli in un secondo momento usando il az aks nodepool update
comando .
Nota
L'avvio protetto richiede caricatori di avvio firmati, kernel del sistema operativo e driver. Se dopo aver abilitato l'avvio protetto, i nodi non vengono avviati, è possibile verificare quali componenti di avvio sono responsabili degli errori di avvio protetto all'interno di una macchina virtuale Linux di Azure. Vedere Verificare gli errori di avvio protetto.
L'esempio seguente aggiorna il pool di nodi mynodepool in myAKSCluster in myResourceGroup e abilita Avvio protetto e vTPM:
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot --enable-vtpm
Assegnare pod ai nodi con avvio attendibile abilitato
È possibile vincolare un pod e limitarlo per l'esecuzione in un nodo o in nodi specifici o preferenza per i nodi con avvio attendibile abilitato. È possibile controllare questa operazione usando il selettore del pool di nodi seguente nel manifesto del pod.
Per un pool di nodi che esegue vTPM, applicare quanto segue:
spec:
nodeSelector:
kubernetes.azure.com/trusted-launch: true
Per un pool di nodi che esegue l'avvio protetto, applicare quanto segue:
spec:
nodeSelector:
kubernetes.azure.com/secure-boot: true
Disabilitare l'avvio protetto
Per disabilitare l'avvio protetto in un cluster del servizio Azure Kubernetes, eseguire il comando seguente:
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot
Nota
Gli aggiornamenti avviano automaticamente un'immagine del nodo e questa operazione può richiedere alcuni minuti per ogni nodo.
Disabilitare vTPM
Per disabilitare vTPM in un cluster del servizio Azure Kubernetes, eseguire il comando seguente:
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm
Passaggi successivi
In questo articolo si è appreso come abilitare l'avvio attendibile. Altre informazioni sull'avvio attendibile.
Azure Kubernetes Service
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per