Domande frequenti sui nodi di confidential computing nel servizio Azure Kubernetes

Questo articolo risponde alle domande frequenti sui nodi di confidential computing basati su Intel SGX nel servizio Azure Kubernetes. Per altre domande, inviare un messaggio di posta elettronica all'indirizzo acconaks@microsoft.com.

Prodotto

I nodi di confidential computing nel servizio Azure Kubernetes sono disponibili per l'uso in produzione?

Sì, per i nodi dell'enclave Intel SGX.

È possibile abilitare la rete accelerata con i cluster del servizio Azure Kubernetes per il confidential computing di Azure?

Sì, i nodi di macchine virtuali DCSv3 supportano la rete accelerata, diversamente dalle macchine virtuali DCSv2.

Quale versione del driver Intel SGX è disponibile nell'immagine del servizio Azure Kubernetes per i nodi riservati?

Attualmente, le macchine virtuali DCSv2/DCSv3 di confidential computing di Azure vengono installate con SKU DCSv2/DCsv3

È possibile inserire script di post-installazione o personalizzare i driver nei nodi di cui è stato effettuato il provisioning dal servizio Azure Kubernetes?

No. I nodi di confidential computing basati sul motore del servizio Azure Kubernetes supportano nodi di confidential computing che consentono installazioni personalizzate e hanno il controllo completo sul piano di controllo di Kubernetes.

È possibile eseguire i nodi di Confidential Computing di Azure con altri SKU standard del servizio Azure Kubernetes, creando un cluster del pool di nodi eterogeneo?

Sì, è possibile eseguire pool di nodi diversi all'interno dello stesso cluster del servizio Azure Kubernetes, inclusi i nodi di Confidential Computing di Azure. Per impostare come destinazione le applicazioni enclave in un pool di nodi specifico, provare ad aggiungere i selettori di nodo o ad applicare i limiti EPC. Per altri dettagli sull'avvio rapido dei nodi riservati, vedere qui.

È possibile eseguire i nodi e i contenitori Windows con Confidential Computing di Azure?

Non al momento. Contattare il team del prodotto all'indirizzo acconaks@microsoft.com per assistenza relativa ai nodi o ai contenitori Windows.

È comunque possibile pianificare ed eseguire contenitori non enclave nei nodi di confidential computing?

Sì. Le macchine virtuali hanno anche una memoria normale che può eseguire carichi di lavoro del contenitore standard. Prendere in considerazione il modello di sicurezza e minaccia delle applicazioni prima di prendere una decisione riguardo ai modelli di distribuzione.

Qual è lo SKU della macchina virtuale da scegliere per i nodi di confidential computing?

Intel SGX DCAP 1.33.2. Altre informazioni su DCSv 2 e DCSv3 sono disponibili nelle aree supportate

È possibile effettuare il provisioning del servizio Azure Kubernetes con i pool di nodi DCSv2 tramite il portale di Azure?

Sì. L'interfaccia della riga di comando di Azure può essere usata anche come alternativa, come documentato qui.

Quale versione di Ubuntu e generazione di macchine virtuali sono supportate?

La versione 18.04 su Gen 2.

Quali sono le limitazioni correnti note del prodotto?

  • Supporta solo i nodi della macchina virtuale Gen 2 di Ubuntu 18.04
  • Nessun supporto per i nodi o per i contenitori Windows
  • La scalabilità automatica orizzontale dei pod basata sulla memoria EPC non è supportata. La scalabilità basata sulla normale memoria e sulla CPU è supportata.
  • Dev Spaces nel servizio Azure Kubernetes per le app riservate non è attualmente supportato

È possibile effettuare il provisioning del servizio Azure Kubernetes con i pool di nodi DCSv2/DCSv3 tramite il portale di Azure?

Sì. L'interfaccia della riga di comando di Azure può essere usata anche come alternativa, come documentato qui.

Dipendenza e sviluppo

È possibile usare le applicazioni in contenitori esistenti ed eseguirle nel servizio Azure Kubernetes con Confidential computing di Azure?

Sì, si eseguirà un software wrapper SGX in un'enclave Intel SGX. Per altri dettagli sugli abilitatori della piattaforma, vedere la pagina dei contenitori riservati.

È consigliabile usare un'immagine di base Docker per iniziare a usare le applicazioni enclave?

Vari strumenti di abilitazione (progetti OSS e ISV) offrono modi diversi per abilitare i contenitori riservati. Esaminare la pagina relativa ai contenitori riservati per altri dettagli e singoli riferimenti alle implementazioni.

Concetti relativi ai contenitori riservati

Che cos'è l'attestazione e come è possibile eseguire l'attestazione delle app in esecuzione negli enclave?

L'attestazione è il processo di dimostrazione e convalida della corretta creazione di un'istanza di un componente software nella piattaforma hardware specifica. Garantisce anche che la prova sia verificabile per assicurare che sia in esecuzione in una piattaforma sicura e che non sia stata manomessa. Altre informazioni su come viene eseguita l'attestazione per le app enclave.

Cosa succede se le dimensioni del contenitore sono maggiori della memoria EPC disponibile?

La memoria EPC si applica alla parte dell'applicazione programmata per essere eseguita nell'enclave. Le dimensioni totali del contenitore non rappresentano il giusto parametro per eseguire un confronto con la memoria EPC massima disponibile. Infatti, i computer DCSv2 con SGX consentono una memoria massima della macchina virtuale di 32 GB in cui verrebbe usata la parte non attendibile dell'applicazione. Tuttavia, se il contenitore utilizza un quantitativo maggiore rispetto alla memoria EPC disponibile, le prestazioni della parte del programma in esecuzione nell'enclave potrebbero esserne influenzate.

Per gestire meglio la memoria EPC nei nodi di lavoro, prendere in considerazione la gestione dei limiti basata sulla memoria EPC tramite Kubernetes. Usare l'esempio riportato sotto come riferimento.

Nota

L'esempio seguente esegue il pull di un'immagine del contenitore pubblica da Docker Hub. È consigliabile configurare un segreto pull per l'autenticazione usando un account di Docker Hub anziché effettuare una richiesta pull anonima. Per migliorare l'affidabilità quando si lavora con contenuto pubblico, importare e gestire l'immagine in un registro Azure Container privato. Altre informazioni sull'uso delle immagini pubbliche.

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
  labels:
    app: sgx-test
spec:
  template:
    metadata:
      labels:
        app: sgx-test
    spec:
      containers:
      - name: sgxtest
        image: oeciteam/sgx-test: 1.0
        resources:
          limits:
            sgx.intel.com/sgx_epc_mem_in_MiB: 10 # This limit will automatically place the job into confidential computing node. Alternatively, you can target deployment to node pools
      restartPolicy: Never
  backoffLimit: 0

Cosa accade se l'enclave usa un quantitativo maggiore della memoria EPC massima disponibile?

La memoria EPC totale disponibile viene condivisa tra le applicazioni enclave negli stessi nodi di lavoro o nelle stesse macchine virtuali. Se l'applicazione usa un quantitativo maggiore di memoria EPC rispetto a quella disponibile, le prestazioni dell'applicazione potrebbero esserne influenzate. Per questo motivo, è consigliabile impostare la tolleranza per ogni applicazione nel file YAML di distribuzione per gestire meglio la memoria EPC disponibile per ogni nodo di lavoro, come illustrato negli esempi precedenti. In alternativa, è sempre possibile scegliere di aumentare le dimensioni della macchina virtuale del pool del nodo di lavoro o aggiungere altri nodi.

Perché non è possibile usare dei fork e delle esecuzioni per eseguire più processi nell'applicazione enclave?

Attualmente, le macchine virtuali con SKU DCsv2 di Confidential computing di Azure supportano un singolo spazio indirizzi per il programma che viene eseguito in un enclave. Un singolo processo è una limitazione corrente progettata per la sicurezza elevata. Tuttavia, gli strumenti di abilitazione dei contenitori riservati possono avere implementazioni alternative per superare questa limitazione.

È necessario montare i volumi del driver nel file YAML di distribuzione?

No. Il prodotto offre il componente aggiuntivo di confidential computing di Azure che include (confcom) per facilitare le operazioni. Per altre informazioni sui dettagli della distribuzione, vedere qui.

È possibile modificare la versione corrente del driver Intel SGX DCAP nel servizio Azure Kubernetes?

No. Per eseguire installazioni personalizzate, è consigliabile scegliere le distribuzioni di nodi del ruolo di lavoro di Confidential computing del motore del servizio Azure Kubernetes.

Nell'enclave verranno caricate immagini che sono state solo firmate e sono attendibili per il confidential computing?

Non in modo nativo durante l'inizializzazione dell'enclave, ma questa operazione è possibile: tramite la firma del processo di attestazione la firma può essere convalidata. Fare riferimento qui.

È possibile che la firma dei contenitori protegga l'integrità del codice nei contenitori riservati?

I contenitori riservati consentono di firmare il codice dell'enclave, ma non il contenitore Docker stesso. Con la firma del codice dell'enclave (che in genere è il codice principale dell'applicazione in Java, Python e così via), è possibile verificare tramite attestazione i dettagli MRSIGNER del codice dell'enclave prima di considerare attendibile il codice e l'ambiente di esecuzione tramite il flusso di attestazione.

Passaggi successivi

Esaminare la pagina relativa ai contenitori riservati per altri dettagli sui contenitori riservati.