Supporto dell'enclave dell'applicazione con nodi di confidential computing basati su Intel SGX nel servizio Azure Kubernetes

Il confidential computing di Azure consente di proteggere i dati sensibili durante l'uso. Le enclavi basate su Intel SGX consentono l'esecuzione di applicazioni in pacchetto come contenitore all'interno del servizio Azure Kubernetes. I contenitori eseguiti all'interno di un ambiente di esecuzione attendibile (TEE) garantiscono l'isolamento da altri contenitori, ovvero il kernel del nodo in un ambiente attestabile con protezione dell'integrità e dell'hardware.

Panoramica

Il servizio Azure Kubernetes supporta l'aggiunta di nodi di macchine virtuali di confidential computing Intel SGX come pool di agenti in un cluster. Questi nodi consentono di eseguire carichi di lavoro sensibili all'interno di un ambiente TEE basato su hardware. Gli ambienti TEE consentono al codice a livello di utente dai contenitori di allocare aree private di memoria per eseguire direttamente il codice con la CPU. Queste aree di memoria privata eseguite direttamente con la CPU sono denominate enclavi. Le enclavi consentono di proteggere la riservatezza dei dati, l'integrità dei dati e l'integrità del codice da altri processi in esecuzione sugli stessi nodi, nonché dall'operatore di Azure. Il modello di esecuzione Intel SGX rimuove anche i livelli intermedi del sistema operativo guest, del sistema operativo host e dell'hypervisor riducendo così la superficie di attacco. Il modello di esecuzione isolata per contenitore basata su hardware in un nodo consente l'esecuzione diretta delle applicazioni con la CPU, mantenendo al tempo stesso il blocco di memoria speciale crittografato per ogni contenitore. I nodi di confidential computing con contenitori riservati sono un'ottima aggiunta alla strategia Zero-Trust, di pianificazione della sicurezza e per i contenitori con difesa in profondità.

Graphic of AKS Confidential Compute Node, showing confidential containers with code and data secured inside.

Funzionalità dei nodi di confidential computing Intel SGX

  • Isolamento dei contenitori a livello di processo basato su hardware tramite l'ambiente di esecuzione attendibile (TEE, Trusted Execution Environment) Intel SGX
  • Cluster di pool di nodi eterogenei (una combinazione di pool di nodi di confidential computing e non)
  • Pianificazione dei pod basata sulla memoria EPC (Encrypted Page Cache) tramite il componente aggiuntivo "confcon" del servizio Azure Kubernetes
  • Driver DCAP Intel SGX preinstallato e dipendenza del kernel installata
  • Scalabilità automatica orizzontale dei pod orizzontale e scalabilità automatica dei cluster in base all'utilizzo della CPU
  • Supporto dei contenitori Linux tramite i nodi di lavoro di VM Ubuntu 18.04 Gen 2

Componente aggiuntivo di confidential computing per il servizio Azure Kubernetes

Il componente aggiuntivo abilita funzionalità aggiuntive nel servizio Azure Kubernetes durante l'esecuzione di pool di nodi con supporto Intel SGX di confidential computing nel cluster. Il componente aggiuntivo "confcom" nel servizio Azure Kubernetes abilita le funzionalità seguenti.

Plug-in del dispositivo di Azure per Intel SGX

Il plug-in del dispositivo implementa l'interfaccia del plug-in del dispositivo Kubernetes per la memoria EPC (Encrypted Page Cache) ed espone i driver di dispositivo dai nodi. In realtà, con questo plug-in la memoria EPC diventa un altro tipo di risorsa in Kubernetes. Gli utenti possono specificare dei limiti per questa risorsa esattamente come per altre risorse. Oltre alla funzione di pianificazione, il plug-in del dispositivo consente di assegnare le autorizzazioni del driver del dispositivo Intel SGX alle distribuzioni con contenitori riservati. Con questo plug-in gli sviluppatori possono evitare di montare i volumi del driver Intel SGX nei file di distribuzione. Questo componente aggiuntivo per i cluster del servizio Azure Kubernetes viene eseguito come daemonset per ogni nodo di macchina virtuale che supporta Intel SGX. Un'implementazione di esempio della distribuzione basata sulla memoria EPC (kubernetes.azure.com/sgx_epc_mem_in_MiB) è disponibile qui

Helper Quote Intel SGX con componenti software della piattaforma

Insieme al plug-in viene distribuito un altro daemonset per ogni nodo di macchina virtuale che supporta Intel SGX nel cluster del servizio Azure Kubernetes. Questo daemonset è utile per le app del contenitore riservato quando viene richiamata una richiesta di attestazione out-of-process remota.

Le applicazioni dell'enclave che eseguono l'attestazione remota devono generare una Quote. La Quote fornisce la prova crittografica dell'identità e dello stato dell'applicazione, insieme all'ambiente host dell'enclave. La generazione di Quote si basa su alcuni componenti software attendibili di Intel, che fanno parte dei componenti software della piattaforma SGX (PSW/DCAP). Questo PSW viene fornito come DaemonSet che viene eseguito per nodo. È possibile usare PSW per richiedere la Quote dell'attestazione dalle app dell'enclave. L'uso del servizio Azure Kubernetes consente di gestire meglio la compatibilità tra il componente PSW e altri componenti SW nell'host con i driver Intel SGX che fanno parte dei nodi di macchina virtuale del servizio Azure Kubernetes. Vedere altre informazioni su come le app possono usare questo daemonset senza dover creare un pacchetto delle primitive di attestazione come parte delle distribuzioni di contenitori Altre informazioni qui

Modelli di programmazione

Contenitori riservati tramite partner e software open source

I contenitori riservati consentono di eseguire in modo riservato le applicazioni contenitore non modificate esistenti della maggior parte dei runtime dei linguaggi di programmazione comuni (Python, Node, Java e così via). Questo modello di creazione di pacchetti non richiede modifiche o ricompilazione del codice sorgente ed è il metodo più rapido per l'esecuzione in un'enclave Intel SGX ottenuto tramite la creazione di pacchetti dei contenitori Docker standard con progetti open source o soluzioni dei partner di Azure. In questo modello di creazione di pacchetti ed esecuzione tutte le parti dell'applicazione contenitore vengono caricate entro il limite attendibile (enclave). Questo modello funziona bene per le applicazioni contenitore commerciali disponibili nel mercato o per le app personalizzate attualmente in esecuzione su nodi per utilizzo generico. Altre informazioni sul processo di preparazione e distribuzione sono disponibili qui

Contenitori con riconoscimento dell'enclave

I nodi di confidential computing nel servizio Azure Kubernetes supportano anche i contenitori programmati per l'esecuzione in un'enclave per usare set di istruzioni speciali disponibili dalla CPU. Questo modello di programmazione consente un controllo più rigoroso del flusso di esecuzione e richiede l'uso di SDK e framework speciali. Questo modello di programmazione garantisce il maggior controllo sul flusso dell'applicazione con la più bassa TCB (Trusted Computing Base). Lo sviluppo di contenitori con riconoscimento dell'enclave comporta parti non attendibili e attendibili per l'applicazione contenitore, consentendo così di gestire la memoria normale e la memoria EPC (Encrypted Page Cache) in cui viene eseguita l'enclave. Altre informazioni sui contenitori con riconoscimento dell'enclave sono disponibili qui.

Domande frequenti

Qui sono disponibili risposte ad alcune delle domande comuni sul supporto per i pool di nodi del servizio Azure Kubernetes e i nodi di confidential computing basati su Intel SGX

Passaggi successivi

Distribuire un cluster del servizio Azure Kubernetes con nodi di confidential computing

Esempi di contenitori riservati

Macchine virtuali riservate Intel SGX - Elenco SKU DCsv2

Macchine virtuali riservate Intel SGX - Elenco SKU DCsv3

Sessione di webinar sulla difesa in profondità con contenitori riservati