Partage via


Guide pratique à propos de Secure Key Release avec des machines virtuelles confidentielles

L’article suivant explique comment exécuter Secure Key Release à partir d’Azure Key Vault lorsque vos applications s’exécutent avec une machine virtuelle confidentielle basée sur AMD SEV-SNP. Pour en savoir plus sur Secure Key Release et l’informatique confidentielle Azure, dirigez-vous ici..

SKR exige qu’une application exécutant SKR passe par un flux d’attestation invité distant à l’aide de Microsoft Azure Attestation (MAA), tel que décrit ici.

Architecture et flux globaux

Pour permettre à Azure Key Vault de mettre en circulation une clé sur une machine virtuelle confidentielle attestée, certaines étapes doivent être respectées :

  1. Attribuez une identité managée à la machine virtuelle confidentielle. L’identité managée affectée par le système et l’identité managée affectée par l’utilisateur sont prises en charge.
  2. Configurez une stratégie d’accès Key Vault pour accorder l’autorisation de « mise en circulation » de clé à l’identité managée. Une stratégie permet à la machine virtuelle confidentielle d’accéder à Key Vault et d’effectuer l’opération de mise en circulation. Si vous utilisez le HSM managé Key Vault, attribuez l’appartenance de rôle « Utilisateur de mise en circulation du service de chiffrement HSM managé ».
  3. Créez une clé Key Vault marquée comme exportable et qui a une stratégie de mise en circulation associée. La stratégie de mise en circulation de clé associe la clé à une machine virtuelle confidentielle attestée et affirme que la clé ne peut être utilisée qu’aux fins souhaitées.
  4. Pour effectuer la mise en circulation, envoyez une requête HTTP à Key Vault à partir de la machine virtuelle confidentielle. La requête HTTP doit inclure le rapport de plateforme attestée des machines virtuelles confidentielles dans le corps de requête. Le rapport de plateforme attestée est utilisé pour vérifier la fiabilité de l’état de la plateforme compatible avec l’environnement d’exécution de confiance, telle que la machine virtuelle confidentielle. Le service Microsoft Azure Attestation peut être utilisé pour créer le rapport de plateforme attestée et l’inclure dans la requête.

Diagramme des opérations mentionnées ci-dessus, que nous allons effectuer.

Déploiement d’un Azure Key Vault

Configurez AKV Premium ou AKV mHSM avec une clé exportable. Suivez les instructions détaillées fournies ici dans configuration de clés exportables SKR

Bicep

@description('Required. Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location

@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId

resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = {
  name: 'mykeyvault'
  location: location
  properties: {
    tenantId: tenantId
    sku: {
      name: 'premium'
      family: 'A'
    }
  }
}

Modèle ARM

    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2021-11-01-preview",
      "name": "mykeyvault",
      "location": "[parameters('location')]",
      "properties": {
        "tenantId": "[parameters('tenantId')]",
        "sku": {
          "name": "premium",
          "family": "A"
        }
      }
    }

Déployer une machine virtuelle confidentielle

Suivez les instructions de démarrage rapide sur comment « Déployer une machine virtuelle confidentielle avec un modèle ARM »

Activer l’identité managée affectée par le système

Les identités managées pour les ressources Azure fournissent des services Azure avec une identité managée automatiquement dans Microsoft Entra ID. Vous pouvez utiliser cette identité pour vous authentifier auprès de n’importe quel service prenant en charge l’authentification Microsoft Entra, sans avoir d’informations d’identification dans votre code.

Pour activer l’identité managée affectée par le système sur une machine virtuelle confidentielle, votre compte a besoin de l’affectation de rôle Contributeur de machine virtuelle. Aucune autre attribution de rôle de répertoire Microsoft Entra n’est requise.

  1. Si vous vous connectez à Azure localement ou via le portail Azure, utilisez un compte associé à l’abonnement Azure qui contient l’ordinateur virtuel.

  2. Pour activer l’identité managée affectée par le système, chargez le modèle dans un éditeur, recherchez la ressource Microsoft.Compute/virtualMachines qui vous intéresse, puis ajoutez la propriété "identity" au même niveau que la propriété name: vmName. Utilisez la syntaxe suivante :

       identity:{
         type: 'SystemAssigned'
       }
    
  3. Ajouter les détails resource au modèle.

     resource confidentialVm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
       name: vmName
       location: location
       identity:{
         type: 'SystemAssigned'
       }
       // other resource provider properties
     }