Condividi tramite


Secure Key Release con contenitori riservati nell'istanza di contenitore di Azure (ACI)

Il flusso SKR (Secure Key Release) con AKV (Azure Key Vault) con offerte di contenitori riservati può essere implementato in due modi. I contenitori riservati eseguono un dispositivo AMD SEV-SNP che espone un dispositivo AMD SEV-SNP tramite un kernel Linux che usa un firmware guest con patch correlate a Hyper-V necessarie cui si fa riferimento come DLB (Direct Linux Boot). Questa piattaforma non si avvale di vTPM e HCL basati su macchine virtuali riservate con supporto AMD SEV-SNP. Questo documento concettuale presuppone che si pianifichi l'esecuzione di contenitori nel Supporto di Azure Container scegliendo uno SKU di confidential computing

  • Contenitore helper collaterale fornito da Azure
  • Implementazione personalizzata con l'applicazione contenitore

Contenitore helper collaterale fornito da Azure

Un progetto GitHub open source "elementi collaterali riservati" descrive in dettaglio come compilare questo contenitore e quali parametri/variabili di ambiente sono richiesti per preparare ed eseguire questo contenitore collaterale. L'implementazione collaterale corrente fornisce varie API REST HTTP che il contenitore dell'applicazione principale può utilizzare per recuperare la chiave da AKV. L'integrazione tramite Attestazione di Microsoft Azure (MAA) è già incorporata. I passaggi dettagliati di preparazione per eseguire il contenitore SKR collaterale sono disponibili qui.

L'applicazione contenitore dell'applicazione principale può richiamare gli endpoint dell'API WEB collaterale, come indicato nell'esempio seguente. Gli elementi collaterali vengono eseguiti nello stesso gruppo di contenitori che è un endpoint locale per il contenitore dell'applicazione. I dettagli completi relativi all'API sono disponibili qui

Il metodo POST key/release prevede un file 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 metodo POST key/release contiene un'intestazione StatusOK e un payload del formato seguente:

{
    "key": "<key in JSON Web Key format>"
}

In caso di esito negativo, la risposta del metodo POST key/release 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 estenda la funzionalità di Azure Key Vault (AKV), Secure Key Release e Attestazione di Microsoft Azure (MAA), avvalersi di quanto segue come flusso di riferimento di alto livello. Un approccio semplice consiste nell'esaminare il codice di implementazione collaterale corrente in questo progetto GitHub collaterale.

Immagine delle operazioni indicate in precedenza, che è necessario eseguire.

  1. Passaggio 1: configurare AKV con una chiave esportabile e allegare i criteri di rilascio. Altre informazioni sono disponibili qui
  2. Passaggio 2: configurare un'identità gestita con Microsoft Entra ID e allegare tale identità ad AKV. Altre informazioni sono disponibili qui
  3. Passaggio 3: distribuire l'applicazione contenitore con i parametri richiesti in ACI configurando un criterio di imposizione del confidential computing. Altre informazioni sono disponibili qui
  4. Passaggio 4: in questo passaggio, l'applicazione recupera un report hardware AMD SEV-SNP non elaborato eseguendo una chiamata socket Linux IOCTL. Non è necessario disporre di librerie di attestazione guest per eseguire questa azione. Altre informazioni sull'implementazione collaterale esistente
  5. Passaggio 5: recuperare la catena di certificati AMD SEV-SNP per il gruppo di contenitori. Questi certificati vengono recapitati dall'endpoint IMDS dell'host di Azure. Altre informazioni sono disponibili qui
  6. Passaggio 6: inviare il report hardware SNP non elaborato e i dettagli del certificato a MAA per la le attestazioni di verifica e restituzione. Altre informazioni sono disponibili qui
  7. Passaggio 7: inviare il token MAA e il token dell'identità gestita generato da ACI per AKV per il rilascio della chiave. Altre informazioni sono disponibili qui

In caso di corretto recupero della chiave da AKV, è possibile utilizzare la chiave per decrittografare i set di dati o per crittografare i dati in uscita dall'ambiente contenitore riservato.

Riferimenti

ACI con distribuzioni di contenitori riservati

Implementazione collaterale con recupero di BLOB con crittografia e decrittografia con chiave AKV SKR

AKV SKR con macchine virtuali riservate AMD SEV-SNP

Attestazione di Microsoft Azure (MAA)

Esempi di criteri SKR