Scénarios Azure Disk Encryption sur les machines virtuelles Linux

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Azure Disk Encryption pour machines virtuelles Linux utilise la fonctionnalité DM-Crypt de Linux pour effectuer un chiffrement complet du disque du système d’exploitation et des disques de données. Il assure en outre le chiffrement des disques temporaires lors de l’utilisation de la fonctionnalité EncryptFormatAll.

Azure Disk Encryption est intégré à Azure Key Vault pour faciliter le contrôle et la gestion des clés et des secrets de chiffrement des disques. Pour obtenir une vue d’ensemble du service, consultez Azure Disk Encryption pour les machines virtuelles Linux.

Prérequis

Vous pouvez appliquer le chiffrement de disque uniquement aux machines virtuelles dont la taille et le système d’exploitation sont pris en charge. Vous devez également satisfaire les prérequis suivants :

Dans tous les cas, vous devez capturer un instantané et/ou créer une sauvegarde avant le chiffrement des disques. Les sauvegardes vous garantissent une possibilité de récupération en cas de défaillance inattendue lors du chiffrement. Les machines virtuelles avec des disques managés imposent une sauvegarde avant que le chiffrement soit effectué. Une fois la sauvegarde effectuée, vous pouvez utiliser la cmdlet Set-AzVMDiskEncryptionExtension pour chiffrer des disques managés en spécifiant le paramètre -skipVmBackup. Pour plus d’informations sur la façon de sauvegarder et de restaurer des machines virtuelles chiffrées, consultez l’article Sauvegarde Azure.

Restrictions

Si vous avez déjà utilisé Azure Disk Encryption avec Microsoft Entra ID pour chiffrer une machine virtuelle, vous devez continuer à utiliser cette option pour chiffrer votre machine virtuelle. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Azure Disk Encryption avec Microsoft Entra ID (version précédente).

Lors du chiffrement de volumes de système d’exploitation Linux, la machine virtuelle ne devrait pas être disponible. Nous vous recommandons vivement d'éviter les connexions SSH pendant le chiffrement afin d'éviter tout problème risquant de bloquer les fichiers ouverts qui devront être accessibles pendant le processus de chiffrement. Pour vérifier la progression, utilisez la cmdlet PowerShell Get-AzVMDiskEncryptionStatus ou la commande CLI vm encryption show. Ce processus peut prendre quelques heures pour un volume de système d’exploitation de 30 Go, et du temps supplémentaire pour le chiffrement des volumes de données. La durée de chiffrement de volume de données est proportionnelle à la taille et à la quantité des volumes de données, sauf si l’option « EncryptFormatAll » est utilisée.

La désactivation du chiffrement sur les machines virtuelles Linux est prise en charge seulement pour les volumes de données. Elle n’est pas prise en charge sur les volumes de données ou de système d’exploitation si le volume du système d’exploitation a été chiffré.

Azure Disk Encryption ne fonctionne pas pour les scénarios, fonctionnalités et technologies Linux suivants :

  • Chiffrement de machines virtuelles de niveau de base ou de machines virtuelles créées par le biais de la méthode de création de machine virtuelle classique
  • Désactivation du chiffrement sur un lecteur de système d’exploitation ou de données d’une machine virtuelle Linux quand le lecteur de système d’exploitation est chiffré
  • Chiffrement du lecteur de système d’exploitation pour des groupes de machines virtuelles identiques Linux.
  • Chiffrement d’images personnalisées sur des machines virtuelles Linux
  • Intégration à un système de gestion de clés local
  • Azure Files (système de fichiers partagés).
  • NFS (système de gestion de fichiers en réseau).
  • Volumes dynamiques.
  • Disques de système d’exploitation éphémères.
  • Chiffrement des systèmes de fichiers partagés/distribués comme (liste non exhaustive) : DFS, GFS, DRDB et CephFS.
  • Déplacement d’une machine virtuelle chiffrée vers un autre abonnement.
  • Création d’une image ou d’une capture instantanée d’une machine virtuelle chiffrée et utilisation de celle-ci pour déployer des machines virtuelles supplémentaires.
  • Vidage sur incident du noyau (kdump)
  • Oracle ACFS (ASM Cluster File System).
  • Disques NVMe tels que ceux indiqués dans Tailles de machines virtuelles de calcul haute performance ou Tailles de machines virtuelles à stockage optimisé.
  • Une machine virtuelle avec des « points de montage imbriqués », autrement dit, avec plusieurs points de montage dans un même chemin d’accès (par exemple, « /1stmountpoint/data/2stmountpoint »).
  • Machine virtuelle avec un lecteur de données monté sur un dossier du système d’exploitation.
  • Machine virtuelle sur laquelle un volume logique racine (disque de système d’exploitation) a été étendu à l’aide d’un disque de données.
  • Machines virtuelles de la série M avec des disques Accélérateur d’écriture.
  • Application d’ADE à une machine virtuelle qui possède des disques chiffrés avec un chiffrement sur l’hôte ou un chiffrement côté serveur avec des clés gérées par le client (SSE + CMK). L’application de SSE + CMK à un disque de données ou l’ajout d’un disque de données avec SSE + CMK configuré à une machine virtuelle chiffrée avec ADE est également un scénario non pris en charge.
  • Migration d’une machine virtuelle chiffrée avec ADE ou qui n’a jamais été chiffrée avec ADE, pour un chiffrement sur l’hôte ou un chiffrement côté serveur avec clés gérées par le client.
  • Chiffrement des machines virtuelles dans les clusters de basculement.
  • Chiffrement des disques Ultra Azure.
  • Chiffrement des disques SSD Premium v2.
  • Le chiffrement des machines virtuelles dans les abonnements avec les Secrets doit disposer de la stratégie de période de validité maximale spécifiée activée avec l’effet DENY.

Installer les outils et se connecter à Azure

Vous pouvez activer et gérer Azure Disk Encryption par le biais d’Azure CLI et d’Azure PowerShell. Pour ce faire, vous devez installer les outils localement et vous connecter à votre abonnement Azure.

Azure CLI 2.0 est un outil en ligne de commande pour la gestion des ressources Azure. L’interface CLI est conçue pour interroger les données de manière flexible, pour prendre en charge les opérations de longue durée en tant que processus non bloquants et pour simplifier l’écriture de scripts. Vous pouvez l’installer localement en effectuant les étapes décrites dans Installer Azure CLI.

Pour vous connecter à votre compte Azure avec Azure CLI, utilisez la commande az login.

az login

Si vous voulez sélectionner un locataire sous lequel vous connecter, utilisez :

az login --tenant <tenant>

Si vous avez plusieurs abonnements et que vous voulez spécifier un de ceux-ci, récupérez la liste de vos abonnements avec az account list et spécifiez le compte avec az account set.

az account list
az account set --subscription "<subscription name or ID>"

Pour plus d’informations, consultez Bien démarrer avec Azure CLI 2.0.

Activer le chiffrement sur une machine virtuelle Linux existante ou en cours d’exécution

Dans ce scénario, vous pouvez activer le chiffrement en utilisant le modèle Resource Manager, des applets de commande PowerShell ou des commandes CLI. Si vous avez besoin d’informations de schéma pour l’extension de machine virtuelle, consultez l’article Azure Disk Encryption pour extension Linux.

Important

Il est impératif de réaliser un instantané et/ou une sauvegarde d’une instance de machine virtuelle basée sur un disque managé en dehors d’Azure Disk Encryption et avant de l’activer. Vous pouvez prendre un instantané du disque managé à partir du portail ou par le biais de Sauvegarde Azure. Les sauvegardes vous garantissent une possibilité de récupération en cas de défaillance inattendue pendant le chiffrement. Une fois la sauvegarde effectuée, il est possible d’utiliser la cmdlet Set-AzVMDiskEncryptionExtension pour chiffrer des disques managés en spécifiant le paramètre -skipVmBackup. La commande Set-AzVMDiskEncryptionExtension échoue sur les machines virtuelles basées sur des disques managés tant qu’une sauvegarde n’a pas été effectuée et que ce paramètre n’a pas été spécifié.

Le chiffrement ou la désactivation du chiffrement peut entraîner le redémarrage de la machine virtuelle.

Pour désactiver le chiffrement, consultez Désactiver le chiffrement et supprimer l’extension de chiffrement.

Vous pouvez activer le chiffrement de disque sur votre disque dur virtuel chiffré en installant et en utilisant l’outil en ligne de commande Azure CLI. Vous pouvez l’ouvrir dans le navigateur avec Azure Cloud Shell, ou vous pouvez l’installer sur votre ordinateur local et l’utiliser dans une session PowerShell. Pour activer le chiffrement sur des machines virtuelles Linux existantes ou en cours d’exécution dans Azure, utilisez les commandes CLI suivantes :

Utilisez la commande az vm encryption enable pour activer le chiffrement sur une machine virtuelle en cours d’exécution dans Azure.

  • Chiffrer une machine virtuelle en cours d’exécution :

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Chiffrer une machine virtuelle en cours d’exécution avec la clé KEK :

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
    

    Notes

    La syntaxe de la valeur du paramètre disk-encryption-keyvault correspond à la chaîne d’identificateur complète : /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    La syntaxe de la valeur du paramètre key-encryption-key correspond à l’URI complet de la clé KEK, comme dans : https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Vérifier que les disques sont chiffrés : Pour vérifier l’état du chiffrement d’une machine virtuelle, utilisez la commande az vm encryption show.

    az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    

Pour désactiver le chiffrement, consultez Désactiver le chiffrement et supprimer l’extension de chiffrement.

Utiliser la fonctionnalité EncryptFormatAll pour les disques de données sur les machines virtuelles Linux

Le paramètre EncryptFormatAll réduit le temps de chiffrement des disques de données Linux. Les partitions remplissant certains critères sont formatées, avec leurs systèmes de fichiers actuels, puis remontées à l’emplacement où elles se trouvaient avant l’exécution de la commande. Si vous voulez exclure un disque de données répondant aux critères, vous pouvez le démonter avant d’exécuter la commande.

Après l’exécution de cette commande, tous les lecteurs montés précédemment seront formatés, et la couche de chiffrement sera démarrée sur le lecteur désormais vide. Quand cette option est sélectionnée, le disque temporaire attaché à la machine virtuelle est également chiffré. Si le disque temporaire est réinitialisé, il est reformaté et rechiffré par la solution Azure Disk Encryption dès que l’occasion s’en présente. Quand le disque de ressources est chiffré, l’Agent Microsoft Azure Linux ne peut pas gérer le disque de ressources ni activer le fichier d’échange, mais ce dernier peut être configuré manuellement.

Avertissement

EncryptFormatAll ne doit pas être utilisé quand des données indispensables se trouvent sur les volumes de données d’une machine virtuelle. Vous pouvez exclure des disques du chiffrement en les démontant. Vous devez d’abord essayer EncryptFormatAll sur une machine virtuelle de test, comprendre le paramètre de la fonctionnalité et son implication, avant de l’essayer sur la machine virtuelle de production. L’option EncryptFormatAll formate le disque de données et toutes ses données seront perdues. Avant de continuer, vérifiez que les disques que vous souhaitez exclure sont correctement démontés.

Si vous définissez ce paramètre durant la mise à jour des paramètres de chiffrement, un redémarrage peut se produire avant le chiffrement proprement dit. Dans ce cas, il peut être utile de supprimer du fichier fstab le disque que vous ne voulez pas formater. De même, vous devez ajouter la partition que vous voulez chiffrer-formater au fichier fstab avant de lancer l’opération de chiffrement.

Critères pour EncryptFormatAll

Ce paramètre fait que la commande parcourt toutes les partitions et les chiffre, à condition qu’elles répondent à tous les critères ci-dessous :

  • Elle n’est pas une partition root/de système d’exploitation/de démarrage
  • Elle n’est pas déjà chiffrée
  • Elle n’est pas un volume BEK
  • Elle n’est pas un volume RAID
  • Elle n’est pas un volume LVM
  • Elle est montée

Chiffrez les disques composant le volume RAID ou LVM au lieu de chiffrer le volume RAID ou LVM lui-même.

Utilisez la commande az vm encryption enable pour activer le chiffrement sur une machine virtuelle en cours d’exécution dans Azure.

  • Chiffrer une machine virtuelle en cours d’exécution avec EncryptFormatAll :

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
    

Utiliser le paramètre EncryptFormatAll avec Logical Volume Manager (LVM)

Nous recommandons une installation LVM-on-crypt. Pour obtenir des instructions détaillées sur la configuration LVM sur crypt, consultez l’article Configurer LVM et RAID sur les appareils chiffrés avec ADE.

Nouvelles machines virtuelles créées à partir de disques durs virtuels et de clés de chiffrement chiffrés par le client

Dans ce scénario, vous pouvez activer le chiffrement avec des applets de commande PowerShell ou avec des commandes CLI.

Utilisez les instructions des mêmes scripts Azure Disk Encryption pour préparer des images préchiffrées qui peuvent être utilisées dans Azure. Une fois l’image créée, vous pouvez suivre la procédure décrite dans la section suivante pour créer une machine virtuelle Azure chiffrée.

Important

Il est impératif de réaliser un instantané et/ou une sauvegarde d’une instance de machine virtuelle basée sur un disque managé en dehors d’Azure Disk Encryption et avant de l’activer. Vous pouvez prendre un instantané du disque managé à partir du portail ou utiliser le service Sauvegarde Azure. Les sauvegardes vous garantissent une possibilité de récupération en cas de défaillance inattendue pendant le chiffrement. Une fois la sauvegarde effectuée, il est possible d’utiliser la cmdlet Set-AzVMDiskEncryptionExtension pour chiffrer des disques managés en spécifiant le paramètre -skipVmBackup. La commande Set-AzVMDiskEncryptionExtension échoue sur les machines virtuelles basées sur des disques managés tant qu’une sauvegarde n’a pas été effectuée et que ce paramètre n’a pas été spécifié.

Le chiffrement ou la désactivation du chiffrement peut entraîner le redémarrage de la machine virtuelle.

Utiliser Azure PowerShell pour chiffrer des machines virtuelles avec des disques durs virtuels préchiffrés

Vous pouvez activer le chiffrement de disque sur votre disque dur virtuel chiffré avec la cmdlet PowerShell Set-AzVMOSDisk. L’exemple ci-dessous vous montre certains paramètres courants.

$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

Activer le chiffrement sur un disque de données nouvellement ajouté

Vous pouvez ajouter un nouveau disque de données avec az vm disk attach ou via le portail Azure. Avant de pouvoir chiffrer, vous devez d’abord monter le disque de données nouvellement attaché. Vous devez demander le chiffrement du lecteur de données, car le lecteur sera inutilisable pendant que le chiffrement est en cours.

Si la machine virtuelle a déjà été chiffrée avec « All », le paramètre --volume-type doit rester « All ». All inclut les disques de système d’exploitation et de données. Si la machine virtuelle a déjà été chiffrée avec le type de volume « OS », le paramètre --volume-type doit être remplacé par « All » afin que le système d’exploitation et le nouveau disque de données soient inclus. Si la machine virtuelle a été chiffrée avec uniquement le type de volume « Data », le paramètre « Data » peut être conservé comme illustré ci-dessous. L’ajout et l’attachement d’un nouveau disque de données à une machine virtuelle ne constituent pas une préparation suffisante pour le chiffrement. Le disque nouvellement attaché doit aussi être formaté et monté correctement au sein de la machine virtuelle avant l’activation du chiffrement. Sur Linux, le disque doit être monté dans/etc/fstab avec un nom de l’appareil de bloc persistant.

Contrairement à la syntaxe de PowerShell, l’interface CLI ne nécessite pas que l’utilisateur fournisse une version de séquence unique lors de l’activation du chiffrement. L’interface CLI génère automatiquement et utilise sa propre valeur de version de séquence unique.

  • Chiffrer des volumes de données d’une machine virtuelle en cours d’exécution :

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Chiffrer des volumes de données d’une machine virtuelle en cours d’exécution à l’aide de KEK :

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
    

Désactiver le chiffrement et supprimer l’extension de chiffrement

Vous pouvez désactiver l’extension Azure Disk Encryption et vous pouvez également la supprimer. Il s’agit de deux opérations distinctes.

Pour supprimer ADE, il est recommandé de désactiver d’abord le chiffrement, puis de supprimer l’extension. Si vous supprimez l’extension de chiffrement sans la désactiver, les disques seront toujours chiffrés. Si vous désactivez le chiffrement après la suppression de l’extension, l’extension sera réinstallée (pour effectuer l’opération de déchiffrement) et devra être supprimée une deuxième fois.

Avertissement

Vous ne pouvez pas désactiver le chiffrement si le disque du système d’exploitation est chiffé. (Les disques du système d’exploitation sont chiffrés lorsque l’opération de chiffrement d’origine spécifie volumeType=ALL ou volumeType=OS.)

La désactivation du chiffrement ne fonctionne que lorsque les disques de données sont chiffrés, mais que le disque du système d’exploitation ne l’est pas.

Désactiver le chiffrement

Vous pouvez désactiver le chiffrement avec Azure PowerShell, Azure CLI ou un modèle Resource Manager. Le fait de désactiver le chiffrement ne supprime pas l’extension (voir Supprimer l’extension de chiffrement).

  • Désactiver le chiffrement de disque avec Azure PowerShell : Pour désactiver le chiffrement, utilisez la cmdlet Disable-AzVMDiskEncryption.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Désactiver le chiffrement avec Azure CLI : pour désactiver le chiffrement, utilisez la commande az vm encryption disable.

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
    
  • Désactiver le chiffrement avec un modèle Resource Manager :

    1. Cliquez sur Déployer sur Azure dans le modèle Désactiver le chiffrement de disque sur une machine virtuelle Linux en cours d’exécution.
    2. Sélectionnez l’abonnement, le groupe de ressources, l’emplacement, la machine virtuelle, le type de volume, les conditions juridiques et le contrat.
    3. Cliquez sur Acheter pour désactiver le chiffrement de disque sur une machine virtuelle Linux en cours d’exécution.

Supprimer l’extension de chiffrement

Si vous souhaitez déchiffrer vos disques et supprimer l’extension de chiffrement, vous devez désactiver le chiffrement avant de supprimer extension (voir Désactiver le chiffrement).

Vous pouvez supprimer l’extension de chiffrement à l’aide d’Azure PowerShell ou d’Azure CLI.

  • Désactiver le chiffrement de disque avec Azure PowerShell : pour supprimer le chiffrement, utilisez l’applet de commande Remove-AzVMDiskEncryptionExtension.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Désactiver le chiffrement avec Azure CLI : pour supprimer le chiffrement, utilisez la commande az vm extension delete.

    az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
    

Étapes suivantes