Share via


Guide pratique pour sécuriser la version de clé avec des machines virtuelles confidentielles

L’article ci-dessous explique comment effectuer une version de clé sécurisée à 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 la version de clé sécurisée et l’informatique confidentielle Azure, consultez cette page.

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

Flux et architecture globaux

Pour permettre à Azure Key Vault de libérer une clé sur une machine virtuelle confidentielle attestée, certaines étapes doivent être suivies :

  1. Attribuez une identité managée à la machine virtuelle confidentielle. L’identité managée affectée par le système ou une identité managée affectée par l’utilisateur est prise en charge.
  2. Définissez une stratégie d’accès Key Vault pour accorder à l’identité managée l’autorisation de clé « release ». Une stratégie permet à la machine virtuelle confidentielle d’accéder au coffre de clés et d’effectuer l’opération de mise en production. Si vous utilisez Key Vault Managed HSM, attribuez l’appartenance au rôle « Utilisateur de publication 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 production associée. La stratégie de mise en production de clé associe la clé à une machine virtuelle confidentielle attestée et que la clé ne peut être utilisée qu’à des fins souhaitées.
  4. Pour effectuer la version, envoyez une requête HTTP au coffre de clés à 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 la requête. Le rapport de plateforme attesté est utilisé pour vérifier la fiabilité de l’état de la plateforme compatible avec l’environnement d’exécution approuvé, telle que la machine virtuelle confidentielle. Le service Microsoft Azure Attestation peut être utilisé pour créer le rapport de plateforme attesté et l’inclure dans la demande.

Diagram of the aforementioned operations, which we'll be performing.

Déploiement d’un coffre de clés Azure

Configurez AKV Premium ou AKV mHSM avec une clé exportable. Suivez les instructions détaillées fournies ici pour configurer des 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 la façon de « 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 CVM, votre compte a besoin de l’attribution 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 Microsoft.Compute/virtualMachines ressource d’intérêt et ajoutez la "identity" propriété au même niveau que la name: vmName propriété. Utilisez la syntaxe suivante :

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

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