Condividi tramite


Contenitori riservati nel servizio Azure Kubernetes con enclavi Intel SGX

I contenitori riservati consentono di eseguire le applicazioni contenitore non modificate esistenti della maggior parte dei runtime dei linguaggi di programmazione comuni (Python, Node, Java e così via) nell'ambiente di esecuzione attendibile (TEE, Trusted Execution Environment) basato su Intel SGX. Questo modello di creazione di pacchetti in genere non richiede modifiche o ricompilazioni del codice sorgente ed è il metodo più veloce da eseguire in enclavi Intel SGX. Il processo di distribuzione tipico per l'esecuzione dei contenitori Docker standard richiede un wrapper SGX open source o una soluzione partner di Azure. In questo modello di creazione di pacchetti ed esecuzione ogni applicazione contenitore viene caricata nel limite attendibile (enclave) e con un isolamento basato su hardware applicato dalla CPU Intel SGX. Ogni contenitore in esecuzione in un'enclave riceve la propria chiave di crittografia della memoria fornita dalla CPU Intel SGX. 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. Per eseguire un contenitore Docker esistente, le applicazioni nei nodi di confidential computing richiedono un software wrapper Intel Software Guard Extensions (SGX) per facilitare l'esecuzione del contenitore entro i limiti di un set di istruzioni CPU speciale. SGX crea un'esecuzione diretta alla CPU per rimuovere il sistema operativo guest, il sistema operativo host o l'hypervisor dal limite di attendibilità. Questo passaggio riduce la superficie di attacco e le vulnerabilità nel loro complesso, ottenendo al tempo stesso l'isolamento del livello di processo all'interno di un singolo nodo.

Il processo complessivo per l'esecuzione di contenitori non modificati comporta modifiche all'attuale modalità di creazione di pacchetti del contenitore, come descritto in dettaglio di seguito.

Diagramma della conversione di contenitori riservati, con nuovi passaggi per l'abilitazione di Intel SGX e servizio Azure Kubernetes.

Il software wrapper SGX necessario per eseguire contenitori standard è offerto dai partner per il software di Azure o da soluzioni software open source.

Partner

Gli sviluppatori possono scegliere provider di software in base alle funzionalità, all'integrazione con i servizi di Azure e al supporto degli strumenti.

Importante

I partner per il software di Azure spesso implicano costi di licenza oltre all'infrastruttura di Azure. Verificare in modo indipendente tutte le condizioni per il software dei partner.

Fortanix

Fortanix offre esperienze di portale e interfaccia della riga di comando per convertire le applicazioni in contenitori in contenitori riservati compatibili con SGX. Non è necessario modificare o ricompilare l'applicazione. Fortanix offre la flessibilità necessaria per l'esecuzione e la gestione di un ampio set di applicazioni. È possibile usare applicazioni esistenti, nuove applicazioni native dell'enclave e applicazioni preconfezionate. Iniziare con l'interfaccia utente di Enclave Manager o le API REST di Fortanix. Creare contenitori riservati usando la guida introduttiva per il servizio Azure Kubernetes di Fortanix.

Diagramma del processo di distribuzione di Fortanix, che illustra i passaggi per spostare le applicazioni in contenitori riservati e distribuirle.

SCONE (Scontain)

I criteri di sicurezza di SCONE (Scontain) generano certificati, chiavi e segreti. Solo i servizi con attestazione per un'applicazione visualizzano queste credenziali. I servizi dell'applicazione eseguono automaticamente l'attestazione tra loro tramite TLS. Non è necessario modificare l'applicazione o la configurazione TLS. Per altre spiegazioni, vedere la demo dell'applicazione Flask di SCONE.

SCONE può convertire la maggior parte dei file binari esistenti in applicazioni eseguite all'interno di enclavi. SCONE protegge anche linguaggi interpretati come Python crittografando sia i file di dati che i file di codice Python. È possibile usare i criteri di sicurezza SCONE per proteggere i file crittografati da accessi, modifiche e rollback non autorizzati. Per altre informazioni, vedere la documentazione di SCONE su come usare SCONE con un'applicazione Python esistente.

Diagramma del flusso di lavoro SCONE, che mostra come SCONE elabora le immagini binarie.

È possibile distribuire SCONE nei nodi di confidential computing di Azure con il servizio Azure Kubernetes seguendo questa distribuzione dell'applicazione del servizio Azure Kubernetes di esempio di SCONE.

Anjuna

Anjuna fornisce software della piattaforma SGX per eseguire contenitori non modificati nel servizio Azure Kubernetes. Per altre informazioni, vedere la documentazione sulle funzionalità e sulle applicazioni di esempio di Anjuna.

È possibile iniziare con un'applicazione personalizzata di esempio Cache Redis e Pythonqui

Diagramma del processo di Anjuna, che mostra come vengono eseguiti i contenitori nel computing riservato di Azure.

Software open source

Nota

Il confidential computing di Azure e Microsoft non hanno affiliazioni dirette con questi progetti e soluzioni.

Gramine

Gramine è un sistema operativo guest leggero, progettato per eseguire una singola applicazione Linux con requisiti host minimi. Gramine può eseguire applicazioni in un ambiente isolato. È disponibile il supporto degli strumenti per convertire il contenitore Docker esistente in contenitori pronti per SGX.

Per altre informazioni, vedere l'applicazione di esempio e la distribuzione nel servizio Azure Kubernetes di Gramine

Occlum

Occlum è un sistema operativo libreria (LibOS) multiprocesso con protezione della memoria per Intel SGX. Il sistema operativo consente l'esecuzione di applicazioni legacy in SGX senza modifiche al codice sorgente o con modifiche minime. Occlum protegge in modo trasparente la riservatezza dei carichi di lavoro degli utenti, consentendo al contempo facili operazioni "lift-and-shift" per applicazioni Docker esistenti.

Per altre informazioni, vedere le istruzioni di distribuzione e le app di esempio nel servizio Azure Kubernetes di Occlum.

Marblerun

Marblerun è un framework di orchestrazione per i contenitori riservati. È possibile eseguire e ridimensionare i servizi riservati in Kubernetes abilitato per SGX. Marblerun si occupa di attività boilerplate, come la verifica dei servizi nel cluster, la gestione dei segreti e la definizione di connessioni mTLS da enclave a enclave tra di essi. Marblerun garantisce anche che il cluster di contenitori riservati sia conforme a un manifesto definito in JSON semplice. È possibile verificare il manifesto con client esterni tramite attestazione remota.

Questo framework estende le proprietà di riservatezza, integrità e verificabilità di una singola enclave a un cluster Kubernetes.

Marblerun supporta i contenitori riservati creati con Graphene, Occlum ed EGo, con esempi per ogni SDK. Il framework viene eseguito in Kubernetes insieme agli strumenti nativi del cloud esistenti. Sono disponibili un'interfaccia della riga di comando e grafici Helm. Marblerun supporta anche i nodi di confidential computing nel servizio Azure Kubernetes. Seguire la guida per distribuire Marblerun nel servizio Azure Kubernetes di Marblerun.

Architetture di riferimento per i contenitori riservati

Ottenere un contatto

Domande sull'implementazione? Si vuole diventare un abilitatore per i contenitori riservati? Invia un'e-mail a acconaks@microsoft.com.

Passaggi successivi