Share via


Secure Key Release avec des conteneurs confidentiels sur Azure Container Instance (ACI)

Le flux SKR (Secure Key Release) avec Azure Key Vault (AKV) avec des offres de conteneur confidentielles peut être implémenté de deux façons. Les conteneurs confidentiels exécutent un invité éclairé exposant l’appareil AMD SEV-SNP via un noyau Linux qui utilise un microprogramme invité avec les correctifs liés à Hyper-V nécessaires que nous appelons démarrage Linux direct (DLB). Cette plateforme n’utilise pas vTPM et HCL basées sur les machines virtuelles confidentielles avec la prise en charge AMD SEV-SNP. Ce document de concept suppose que vous envisagez d’exécuter les conteneurs dans Azure Container Support en choisissant une référence SKU d’informatique confidentielle

  • Conteneur d’assistance de voiture côte à côte fourni par Azure
  • Implémentation personnalisée avec votre application conteneur

Conteneur d’assistance side-car fourni par Azure

Un projet GitHub code source ouvert d « voitures latérales confidentielles » explique comment générer ce conteneur et les paramètres/variables d’environnement nécessaires pour préparer et exécuter ce conteneur side-car. L’implémentation de voiture latérale actuelle fournit différentes API REST HTTP que votre conteneur d’application principal peut utiliser pour extraire la clé d’AKV. L’intégration via Microsoft Azure Attestation(MAA) est déjà intégrée. Les étapes de préparation pour exécuter le conteneur SKR side-car sont disponibles ici.

Votre application conteneur d’application principale peut appeler les points de terminaison de l’API WEB side-car, comme défini dans l’exemple ci-dessous. Les voitures latérales s’exécutent dans le même groupe de conteneurs et constituent un point de terminaison local pour votre conteneur d’application. Vous trouverez ici des détails complets de l’API

La key/release méthode POST attend un JSON au format suivant :

{	
    "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"
}

En cas de réussite, la réponse de la key/release méthode POST porte un StatusOK en-tête et une charge utile du format suivant :

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

En cas d’erreur, la réponse de la key/release méthode POST porte un StatusForbidden en-tête et une charge utile au format suivant :

{
    "error": "<error message>"
}

Implémentation personnalisée avec votre application conteneur

Pour effectuer une application conteneur personnalisée qui étend la capacité d’Azure Key Vault (AKV) - Secure Key Release et Microsoft Azure Attestation (MAA), utilisez les éléments ci-dessous comme flux de référence de haut niveau. Une approche simple consiste à passer en revue le code d’implémentation de voiture latérale actuel dans ce projet GitHub side-car.

Image of the aforementioned operations, which you should be performing.

  1. Étape 1 : Configurer AKV avec une clé exportable et attacher la stratégie de mise en production. Plus d’informations ici
  2. Étape 2 : Configurer une identité managée avec l’ID Microsoft Entra et l’attacher à AKV. Plus d’informations ici
  3. Étape 3 : Déployer votre application conteneur avec les paramètres requis dans ACI en configurant une stratégie d’application de l’informatique confidentielle. Plus d’informations ici
  4. Étape 4 : Dans cette étape, votre application récupère un rapport matériel RAW AMD SEV-SNP en effectuant un appel de socket Linux IOCTL. Vous n’avez pas besoin d’une bibliothèque d’attestations invitées pour effectuer cette action. Plus d’informations sur l’implémentation de voiture latérale existante
  5. Étape 5 : Récupérer la chaîne de certificats AMD SEV-SNP pour le groupe de conteneurs. Ces certificats sont remis à partir du point de terminaison IMDS hôte Azure. Plus d’informations ici
  6. Étape 6 : Envoyez le rapport matériel SNP RAW et les détails du certificat à MAA pour la vérification et le retour des revendications. Plus d’informations ici
  7. Étape 7 : Envoyez le jeton MAA et le jeton d’identité managée généré par ACI à AKV pour la version de clé. Plus d’informations ici

En cas de réussite de la récupération de clé à partir d’AKV, vous pouvez utiliser la clé pour déchiffrer les jeux de données ou chiffrer les données sortant de l’environnement de conteneur confidentiel.

Références

ACI avec déploiements de conteneurs confidentiels

Implémentation side-car avec extraction d’objets blob chiffrés et déchiffrement avec la clé AKV SKR

AKV SKR avec AMD SEV-SNP de machine virtuelle confidentielle

Microsoft Azure Attestation (MAA)

Exemples de stratégie SKR