Secure Key Release with Confidential Containers on Azure Container Instance (ACI) (Proteggere la versione della chiave con contenitori riservati nell'istanza di Azure Container)
Il flusso SKR (Secure Key Release) con Azure Key Vault (AKV) con offerte di contenitori riservati può essere implementato in due modi. I contenitori riservati eseguono un guest che espone il dispositivo AMD edizione Standard V-SNP tramite un kernel Linux che usa un nel firmware guest con patch correlate hyper-V necessarie a cui si fa riferimento come avvio DLB (Direct Linux Boot). Questa piattaforma non usa vTPM e HCL basati su macchine virtuali riservate con supporto AMD edizione Standard V-SNP. Questo documento di concetto presuppone che si prevede di eseguire i contenitori nel supporto di Azure Container scegliendo uno SKU di confidential computing
- Contenitore helper side-car fornito da Azure
- Implementazione personalizzata con l'applicazione contenitore
Contenitore helper side-car fornito da Azure
Un progetto GitHub open source "confidential side-cars" descrive in dettaglio come compilare questo contenitore e quali parametri/variabili di ambiente sono necessari per preparare ed eseguire questo contenitore side-car. L'implementazione corrente dell'auto sul lato fornisce varie API REST HTTP che il contenitore dell'applicazione principale può usare per recuperare la chiave da AKV. L'integrazione tramite Microsoft attestazione di Azure (MAA) è già integrata. I passaggi di preparazione per eseguire il contenitore SKR side-car sono disponibili qui in dettaglio.
L'applicazione contenitore dell'applicazione principale può chiamare gli endpoint dell'API WEB side-car, come definito nell'esempio seguente. Le automobili laterali vengono eseguite nello stesso gruppo di contenitori ed è un endpoint locale per il contenitore dell'applicazione. I dettagli completi dell'API sono disponibili qui
Il key/release
metodo POST prevede un formato JSON del formato seguente:
{
"maa_endpoint": "<maa endpoint>", //https://learn.microsoft.com/en-us/azure/attestation/quickstart-portal#attestation-provider
"akv_endpoint": "<akv endpoint>", //AKV URI
"kid": "<key identifier>" //key name,
"access_token": "optional aad token if the command will run in a resource without proper managed identity assigned"
}
In caso di esito positivo, la risposta del key/release
metodo POST contiene un'intestazione StatusOK
e un payload del formato seguente:
{
"key": "<key in JSON Web Key format>"
}
In caso di errore, la risposta del key/release
metodo POST contiene un'intestazione StatusForbidden
e un payload del formato seguente:
{
"error": "<error message>"
}
Implementazione personalizzata con l'applicazione contenitore
Per eseguire un'applicazione contenitore personalizzata che estende la funzionalità di Azure Key Vault (AKV) - Secure Key Release e Microsoft attestazione di Azure (MAA), usare quanto segue come flusso di riferimento di alto livello. Un approccio semplice consiste nell'esaminare il codice di implementazione corrente dell'auto laterale in questo progetto GitHub side-car.
- Passaggio 1: Configurare AKV con chiave esportabile e allegare i criteri di rilascio. Altre informazioni qui
- Passaggio 2: Configurare un'identità gestita con Microsoft Entra ID e allegare tale identità a AKV. Altre informazioni qui
- Passaggio 3: Distribuire l'applicazione contenitore con i parametri obbligatori all'interno di ACI configurando un criterio di imposizione del confidential computing. Altre informazioni qui
- Passaggio 4: In questo passaggio, l'applicazione recupera un report hardware RAW AMD edizione Standard V-SNP eseguendo una chiamata Socket Linux IOCTL. Non è necessaria alcuna libreria di attestazioni guest per eseguire questa azione. Altre informazioni sull'implementazione dell'auto laterale esistente
- Passaggio 5: Recuperare la catena di certificati AMD edizione Standard V-SNP per il gruppo di contenitori. Questi certificati vengono recapitati dall'endpoint IMDS dell'host di Azure. Altre informazioni qui
- Passaggio 6: Inviare il report hardware SNP RAW e i dettagli del certificato a MAA per la verifica e la restituzione delle attestazioni. Altre informazioni qui
- Passaggio 7: Inviare il token MAA e il token di identità gestita generato da ACI ad AKV per il rilascio della chiave. Altre informazioni qui
In caso di esito positivo del recupero della chiave da AKV, è possibile utilizzare la chiave per decrittografare i set di dati o crittografare i dati in uscita dall'ambiente contenitore riservato.
Riferimenti
ACI con distribuzioni di contenitori riservati
Implementazione side-car con recupero e decrittografia BLOB crittografati con chiave AKV SKR
AKV SKR con AMD edizione Standard V-SNP della macchina virtuale riservata