Exercice - Chiffrer des disques de machines virtuelles existantes
Supposons que vous développiez une application de gestion financière pour de nouvelles start-ups. Vous voulez vous assurer que toutes les données de vos clients sont sécurisées. Vous avez donc décidé d’implémenter Azure Disk Encryption (ADE) sur tous les disques de système d’exploitation et de données sur les serveurs qui hébergent cette application. Dans le cadre de vos exigences de conformité, vous devez également assurer la gestion de vos propres clés de chiffrement.
Dans cette unité, vous chiffrez des disques sur une machine virtuelle Windows existante et gérez les clés de chiffrement en utilisant votre propre Azure Key Vault.
Préparer l’environnement
Vous commencez par déployer une nouvelle machine virtuelle Windows sur une machine virtuelle Azure.
Déployer une machine virtuelle Windows
Pour créer et déployer une machine virtuelle Windows, utilisez la fenêtre Azure PowerShell à droite.
Définissez une variable PowerShell destinée à contenir l’emplacement sélectionné. Utilisez la même région que celle du groupe de ressources.
$location = (Get-AzResourceGroup -name <rgn>[sandbox Resource Group]</rgn>).location
Conseil
Vous pouvez utiliser le bouton Copier pour copier des commandes dans le Presse-papiers. Pour coller, cliquez avec le bouton droit sur une nouvelle ligne dans le terminal Cloud Shell et sélectionnez Coller ou utilisez le raccourci clavier Maj+Inser (⌘+V sur macOS).
Ensuite, définissez d’autres variables pratiques pour capturer le nom de la machine virtuelle et le groupe de ressources. Vous utilisez ici le groupe de ressources précédemment créé. Normalement, vous devriez créer un nouveau groupe de ressources dans votre abonnement avec
New-AzResourceGroup
.$vmName = "fmdata-vm01" $rgName = "<rgn>[sandbox Resource Group]</rgn>"
Pour créer une machine virtuelle, utilisez
New-AzVm
:New-AzVm ` -ResourceGroupName $rgName ` -Name $vmName ` -Location $location ` -OpenPorts 3389
Quand Cloud Shell vous y invite, entrez un nom d’utilisateur et un mot de passe pour la machine virtuelle. Ces informations constituent le compte initial créé pour la machine virtuelle.
Remarque
Cette commande utilise certaines valeurs par défaut puisque nous n’avons pas fourni beaucoup d’options. Plus précisément, cela crée une image Windows 2016 Server avec la taille définie sur Standard_DS1_v2. N’oubliez pas que les machines virtuelles du niveau de base ne prennent pas en charge ADE si vous décidez de spécifier la taille de machine virtuelle.
Après le déploiement de la machine virtuelle, capturez les détails de la machine virtuelle dans une variable. Vous pouvez utiliser cette variable pour découvrir ce que vous avez créé :
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
Vous pouvez utiliser le code suivant pour confirmer le disque de système d’exploitation attaché à la machine virtuelle :
$vm.StorageProfile.OSDisk
OsType : Windows EncryptionSettings : Name : fmdata-vm01_OsDisk_1_6bcf8dcd49794aa785bad45221ec4433 Vhd : Image : Caching : ReadWrite WriteAcceleratorEnabled : CreateOption : FromImage DiskSizeGB : 127 ManagedDisk : Microsoft.Azure.Management.Compute.Models.ManagedDiskP arameters
Vérifiez l’état actuel du chiffrement sur le disque de système d’exploitation (et sur les éventuels disques de données).
Get-AzVmDiskEncryptionStatus ` -ResourceGroupName $rgName ` -VMName $vmName
Notez que les disques sont actuellement non chiffrés.
OsVolumeEncrypted : NotEncrypted DataVolumesEncrypted : NotEncrypted OsVolumeEncryptionSettings : ProgressMessage : No Encryption extension or metadata found on the VM
Nous allons y remédier.
Chiffrer les disques de machine virtuelle avec Azure Disk Encryption
Nous devons protéger ces données, il faut donc chiffrer les disques. Rappelez-vous que nous devons effectuer plusieurs étapes :
Créer un coffre de clés.
Définir le coffre de clés pour prendre en charge le chiffrement de disque.
Indiquer à Azure de chiffrer les disques de machine virtuelle à l’aide de la clé stockée dans le coffre de clés.
Conseil
Nous allons examiner ces étapes une par une, mais quand vous effectuerez cette tâche dans votre propre abonnement, vous pourrez utiliser un script PowerShell pratique dont le lien est fourni dans la section Récapitulatif de ce module.
Créer un coffre de clés
Pour créer un coffre de clés Azure, nous devons activer le service dans notre abonnement. Vous n’êtes obligé d’activer le service qu’une seule fois.
Conseil
En fonction de votre abonnement, vous devez peut-être activer le fournisseur Microsoft.KeyVault avec l’applet de commande Register-AzResourceProvider
. Cela n’est pas nécessaire dans l’abonnement bac à sable Azure.
Choisissez un nom pour votre nouveau coffre de clés. Il doit être unique et avoir entre 3 et 24 caractères, constitués de chiffres, de lettres et de tirets. Essayez d’ajouter des chiffres aléatoires à la fin pour remplacer les chiffres 1234 ci-dessous :
$keyVaultName = "mvmdsk-kv-1234"
Créez un coffre de clés Azure avec
New-AzKeyVault
:- Assurez-vous de le placer dans le même groupe de ressources et au même emplacement que votre machine virtuelle.
- Autorisez l’utilisation du coffre de clés avec le chiffrement de disque.
- Spécifiez un nom de coffre de clés unique.
New-AzKeyVault -VaultName $keyVaultName ` -Location $location ` -ResourceGroupName $rgName ` -EnabledForDiskEncryption
Cette commande affiche un avertissement indiquant qu’aucun utilisateur n’y a accès.
WARNING: Access policy is not set. No user or app have access permission to use this vault. This warning can occur if the vault was created by a service principal. To set access policies, use Set-AzKeyVaultAccessPolicy.
Cet avertissement n’est pas un problème dans la mesure où nous utilisons le coffre seulement pour y stocker les clés de chiffrement de la machine virtuelle. Les utilisateurs n’ont pas besoin d’accéder à ces données.
Chiffrer le disque
Vous êtes presque prêt à chiffrer les disques. Avant cela, un avertissement s’affiche concernant la création de sauvegardes.
Important
Dans un système de production, vous devriez effectuer une sauvegarde des disques managés en utilisant Sauvegarde Azure ou en créant un instantané. Vous pouvez créer des instantanés dans le portail Azure ou à partir de la ligne de commande. Dans PowerShell, vous utilisez la cmdlet New-AzSnapshot
. Comme il s’agit d’un exercice simple et que vous supprimez ces données une fois terminé, vous allez ignorer cette étape.
Pour conserver les informations du coffre de clés, définissez une variable :
$keyVault = Get-AzKeyVault ` -VaultName $keyVaultName ` -ResourceGroupName $rgName
Ensuite, pour chiffrer les disques de machine virtuelle, utilisez l’applet de commande
Set-AzVmDiskEncryptionExtension
.- Le paramètre
VolumeType
permet de spécifier les disques à chiffrer : [All | OS | Data]. Sa valeur par défaut est All. Sur certaines distributions de Linux, seuls les disques de données peuvent être chiffrés. - Vous pouvez fournir l’indicateur
SkipVmBackup
pour les disques managés s’il n’y a pas d’instantané.
Set-AzVmDiskEncryptionExtension ` -ResourceGroupName $rgName ` -VMName $vmName ` -VolumeType All ` -DiskEncryptionKeyVaultId $keyVault.ResourceId ` -DiskEncryptionKeyVaultUrl $keyVault.VaultUri ` -SkipVmBackup
- Le paramètre
La cmdlet vous avertit que la machine virtuelle doit être mise hors ligne et que la tâche peut prendre plusieurs minutes. Continuez et patientez :
Enable AzureDiskEncryption on the VM This cmdlet prepares the VM and enables encryption which may reboot the machine and takes 10-15 minutes to finish. Please save your work on the VM before confirming. Do you want to continue? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
Une fois l’applet de commande exécutée, vérifiez à nouveau l’état du chiffrement :
Get-AzVmDiskEncryptionStatus -ResourceGroupName $rgName -VMName $vmName
Le disque de système d’exploitation doit maintenant être chiffré. Les éventuels disques de données attachés qui sont exposés à Windows sont également chiffrés.
OsVolumeEncrypted : Encrypted DataVolumesEncrypted : NoDiskFound OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings ProgressMessage : Provisioning succeeded
Remarque
Les nouveaux disques ajoutés après le chiffrement ne sont pas automatiquement chiffrés. Pour les chiffrer, vous devrez réexécuter la cmdlet Set-AzVMDiskEncryptionExtension
. Si vous ajoutez des disques à une machine virtuelle qui comporte déjà des disques chiffrés, n’oubliez pas d’indiquer un nouveau numéro dans la séquence. En outre, les disques qui ne sont pas visibles par le système d’exploitation ne sont pas chiffrés. Le disque doit être correctement partitionné, formaté et monté pour que l’extension BitLocker puisse le voir.