Oefening: Bestaande VM-schijven versleutelen
Stel dat u een app voor financieel beheer ontwikkelt voor nieuwe zakelijke start-ups. U wilt ervoor zorgen dat alle gegevens van uw klanten zijn beveiligd. U hebt dus besloten om Azure Disk Encryption (ADE) te implementeren op alle besturingssysteem- en gegevensschijven op de servers waarop deze app wordt gehost. Als onderdeel van uw nalevingsvereisten bent u ook verantwoordelijk voor uw eigen versleutelingssleutelbeheer.
In deze eenheid versleutelt u schijven op een bestaande virtuele machine (VM) en beheert u de versleutelingssleutels met behulp van uw eigen Azure Key Vault.
De omgeving voorbereiden
U begint met het implementeren van een nieuwe Windows-VM in een Azure-VM.
Een Windows-VM implementeren
Als u een nieuwe Windows-VM wilt maken en implementeren, gebruikt u het Azure PowerShell-venster aan de rechterkant.
Definieer een PowerShell-variabele die gebruikt wordt voor de geselecteerde locatie. Gebruik dezelfde regio als de resourcegroep.
$location = (Get-AzResourceGroup -name <rgn>[sandbox Resource Group]</rgn>).location
Tip
U kunt de knop Kopiëren gebruiken om opdrachten te kopiëren naar het klembord. Als u wilt plakken, klikt u met de rechtermuisknop op een nieuwe regel in de Cloud Shell-terminal en selecteert u Plakken of gebruikt u de sneltoets Shift+Insert (⌘+V in macOS).
Vervolgens definieert u nog een aantal handige variabelen voor de naam van de virtuele machine en de resourcegroep. U gebruikt hier de vooraf gemaakte resourcegroep. Normaal gesproken maakt u een nieuwe resourcegroep in uw abonnement met behulp van
New-AzResourceGroup
.$vmName = "fmdata-vm01" $rgName = "<rgn>[sandbox Resource Group]</rgn>"
Als u een nieuwe VIRTUELE machine wilt maken, gebruikt u
New-AzVm
:New-AzVm ` -ResourceGroupName $rgName ` -Name $vmName ` -Location $location ` -OpenPorts 3389
Wanneer u in Cloud Shell wordt gevraagd, voert u een gebruikersnaam en wachtwoord voor de virtuele machine in. Deze informatie wordt gebruikt als het eerste account dat is gemaakt voor de virtuele machine.
Notitie
Met deze opdracht worden enkele standaardinstellingen gebruikt omdat er niet veel opties zijn opgegeven. Er wordt met name een Windows 2016 Server-installatiekopieën gemaakt met de grootte die is ingesteld op Standard_DS1_v2. Houd er rekening mee dat vm's in de Basic-laag geen ondersteuning bieden voor ADE als u besluit de VM-grootte op te geven.
Nadat de virtuele machine is geïmplementeerd, legt u de details van de virtuele machine vast in een variabele. U kunt deze variabele gebruiken om te verkennen wat u hebt gemaakt:
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
U kunt de volgende code gebruiken om te bevestigen dat de besturingssysteemschijf is gekoppeld aan de virtuele machine:
$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
Controleer de huidige status van versleuteling op de besturingssysteemschijf (en eventuele gegevensschijven).
Get-AzVmDiskEncryptionStatus ` -ResourceGroupName $rgName ` -VMName $vmName
U ziet dat de schijven momenteel niet zijn versleuteld.
OsVolumeEncrypted : NotEncrypted DataVolumesEncrypted : NotEncrypted OsVolumeEncryptionSettings : ProgressMessage : No Encryption extension or metadata found on the VM
Laten we die waarde wijzigen.
De VM-schijven versleutelen met Azure Disk Encryption
We moeten deze gegevens beschermen, dus laten we de schijven versleutelen. Denk eraan dat we verschillende stappen moeten uitvoeren:
Een sleutelkluis maken.
Stel de sleutelkluis in ter ondersteuning van schijfversleuteling.
Informeer Azure om de VM-schijven te versleutelen met behulp van de sleutel die is opgeslagen in de sleutelkluis.
Tip
We gaan de stappen afzonderlijk doorlopen, maar wanneer u deze taak uitvoert in uw eigen abonnement, kunt u een handig PowerShell-script gebruiken dat we hebben gekoppeld in de sectie Samenvatting van deze module.
Maak een sleutelkluis.
Voor het maken van een Azure Key Vault moeten we de service in ons abonnement inschakelen. U hoeft de service slechts één keer in te schakelen.
Tip
Afhankelijk van uw abonnement, moet u mogelijk de Microsoft.KeyVault-provider inschakelen met de cmdlet Register-AzResourceProvider
. Dit is niet nodig in het Azure-sandboxabonnement.
Kies een naam voor uw nieuwe sleutelkluis. Het moet uniek zijn en mag tussen 3 en 24 tekens zijn, bestaande uit cijfers, letters en streepjes. Voeg enkele willekeurige getallen toe aan het einde, waarbij u de volgende 1234 vervangt:
$keyVaultName = "mvmdsk-kv-1234"
Een Azure Key Vault maken met
New-AzKeyVault
:- Zorg ervoor dat u deze in dezelfde resourcegroep en locatie plaatst als uw VIRTUELE machine.
- Schakel de sleutelkluis in voor gebruik met schijfversleuteling.
- Geef een unieke sleutelkluisnaam op.
New-AzKeyVault -VaultName $keyVaultName ` -Location $location ` -ResourceGroupName $rgName ` -EnabledForDiskEncryption
U krijgt een waarschuwing van deze opdracht over geen gebruikers die toegang hebben.
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.
De waarschuwing is prima, omdat u alleen de kluis gebruikt om de versleutelingssleutels voor de virtuele machine op te slaan en gebruikers geen toegang nodig hebben tot deze gegevens.
De schijf versleutelen
U bent bijna klaar om de schijven te versleutelen. Voordat u dit doet, wordt hier een waarschuwing weergegeven over het maken van back-ups.
Belangrijk
Als dit een productiesysteem was, moet u een back-up van de beheerde schijven uitvoeren, hetzij met behulp van Azure Backup of door een momentopname te maken. U kunt momentopnamen maken in Azure Portal of via de opdrachtregel. In PowerShell gebruikt u de New-AzSnapshot
cmdlet. Omdat dit een eenvoudige oefening is en u deze gegevens disponeert wanneer u klaar bent, gaat u deze stap overslaan.
Als u de sleutelkluisgegevens wilt bewaren, definieert u een variabele:
$keyVault = Get-AzKeyVault ` -VaultName $keyVaultName ` -ResourceGroupName $rgName
Voer vervolgens de
Set-AzVmDiskEncryptionExtension
cmdlet uit om de VM-schijven te versleutelen"- Met de parameter
VolumeType
kunt u opgeven welke schijven u wilt versleutelen: [Alle | OS | Gegevens]. De standaardwaarde is Alles. Voor bepaalde Linux-distributies kunt u alleen gegevensschijven versleutelen. - U kunt de
SkipVmBackup
vlag voor beheerde schijven opgeven als er geen momentopname is.
Set-AzVmDiskEncryptionExtension ` -ResourceGroupName $rgName ` -VMName $vmName ` -VolumeType All ` -DiskEncryptionKeyVaultId $keyVault.ResourceId ` -DiskEncryptionKeyVaultUrl $keyVault.VaultUri ` -SkipVmBackup
- Met de parameter
De cmdlet waarschuwt u dat de virtuele machine offline moet worden gehaald en dat het enkele minuten kan duren voordat de taak is voltooid. Ga verder en laat het doorgaan:
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
Zodra de cmdlet is uitgevoerd, controleert u de versleutelingsstatus opnieuw:
Get-AzVmDiskEncryptionStatus -ResourceGroupName $rgName -VMName $vmName
De besturingssysteemschijf moet nu worden versleuteld. Gekoppelde gegevensschijven die zichtbaar zijn voor Windows, worden ook versleuteld.
OsVolumeEncrypted : Encrypted DataVolumesEncrypted : NoDiskFound OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings ProgressMessage : Provisioning succeeded
Notitie
Nieuwe schijven die zijn toegevoegd nadat versleuteling is toegevoegd, worden niet automatisch versleuteld. U kunt de Set-AzVMDiskEncryptionExtension
cmdlet opnieuw uitvoeren om nieuwe schijven te versleutelen. Als u schijven toevoegt aan een virtuele machine waarop al schijven zijn versleuteld, moet u een nieuw nummer op volgorde opgeven. Bovendien worden schijven die niet zichtbaar zijn voor het besturingssysteem niet versleuteld. De schijf moet correct zijn gepartitioneerd, geformatteerd en gekoppeld voor de BitLocker-extensie om deze te kunnen zien.