Besturingssysteem- en gekoppelde gegevensschijven versleutelen in een virtuele-machineschaalset met Azure PowerShell
Van toepassing op: ✔️ Virtuele Linux-heavy_check_mark: Windows-VM's ✔️ Uniforme schaalsets
De Azure PowerShell-module wordt gebruikt voor het maken en beheren van Azure-resources vanaf de PowerShell-opdrachtregel of in scripts. In dit artikel wordt beschreven hoe u Azure PowerShell een virtuele-machineschaalset maakt en versleutelt. Zie voor meer informatie over het Azure Disk Encryption op een virtuele-machineschaalset Azure Disk Encryption voor Virtual Machine Scale Sets.
Azure Cloud Shell gebruiken
Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.
Om Azure Cloud Shell op te starten:
| Optie | Voorbeeld/koppeling |
|---|---|
| Selecteer Nu proberen in de rechterbovenhoek van een codeblok. Als u Uitproberen selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. | ![]() |
| Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. | ![]() |
| Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. | ![]() |
Om de code in dit artikel in Azure Cloud Shell uit te voeren:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.
Plak de code in de Cloud Shell-sessie door CTRL+Shift+V te selecteren in Windows en Linux of door Cmd+Shift+V op macOS te selecteren.
Selecteer Invoeren om de code uit te voeren.
Een schijf Azure Key Vault schijfversleuteling is ingeschakeld
Azure Key Vault kan sleutels, geheimen of wachtwoorden opslaan waarmee u deze veilig kunt implementeren in uw toepassingen en services. Cryptografische sleutels worden opgeslagen in Azure Key Vault met behulp van softwarebeveiliging, of u kunt uw sleutels in Hardware Security Modules (HMS's), die zijn gecertificeerd voor FIPS 140-2 level 2-standaarden, importeren of genereren. Deze cryptografische sleutels worden gebruikt voor het versleutelen en ontsleutelen van virtuele schijven die zijn gekoppeld aan uw VM. U behoudt de controle over deze cryptografische sleutels en kunt het gebruik controleren.
Maak een Key Vault met New-AzKeyVault. Stel de parameter EnabledForDiskEncryption in om de Key Vault te gebruiken voor schijfversleuteling. In het volgende voorbeeld worden ook variabelen voor de naam van de resourcegroep, Key Vault naam en locatie. Geef uw eigen unieke Key Vault op:
$rgName="myResourceGroup"
$vaultName="myuniquekeyvault"
$location = "EastUS"
New-AzResourceGroup -Name $rgName -Location $location
New-AzKeyVault -VaultName $vaultName -ResourceGroupName $rgName -Location $location -EnabledForDiskEncryption
Een bestaande sleutelkluis gebruiken
Deze stap is alleen vereist als u een bestaande sleutelkluis hebt die u wilt gebruiken met schijfversleuteling. Sla deze stap over als u in de vorige sectie een sleutelkluis hebt gemaakt.
U kunt een bestaande Key Vault in hetzelfde abonnement en dezelfde regio als de schaalset voor schijfversleuteling inschakelen met Set-AzKeyVaultAccessPolicy. Definieer de naam van uw Key Vault in de $vaultName variabele als volgt:
$vaultName="myexistingkeyvault"
Set-AzKeyVaultAccessPolicy -VaultName $vaultName -EnabledForDiskEncryption
Een schaalset maken
Stel eerst een beheerdersnaam en -wachtwoord in voor de VM-exemplaren met behulp van Get-Credential:
$cred = Get-Credential
Maak nu een virtuele-machineschaalset met behulp van New-AzVmss. Om het verkeer te distribueren naar de verschillende VM-exemplaren, wordt er ook een load balancer gemaakt. De load balancer bevat regels voor het distribueren van verkeer op TCP-poort 80, en voor het toestaan van extern bureaubladverkeer op TCP-poort 3389 en externe toegang via PowerShell op TCP-poort 5985:
$vmssName="myScaleSet"
New-AzVmss `
-ResourceGroupName $rgName `
-VMScaleSetName $vmssName `
-Location $location `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-UpgradePolicy "Automatic" `
-Credential $cred
Versleuteling inschakelen
Als u VM-exemplaren in een schaalset wilt versleutelen, moet u eerst wat informatie over de Key Vault-URI en resource-id op halen met Get-AzKeyVault. Deze variabelen worden gebruikt om het versleutelingsproces vervolgens te starten met Set-AzVmssDiskEncryptionExtension:
$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"
Wanneer u hier om wordt gevraagd, typt u y om door te gaan met het schijfversleutelingsproces op de VM-exemplaren van de schaalset.
Versleuteling inschakelen met KEK om de sleutel in te pakken
U kunt ook een sleutelversleutelingssleutel voor extra beveiliging gebruiken bij het versleutelen van de schaalset voor virtuele machines.
$diskEncryptionKeyVaultUrl=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).VaultUri
$keyVaultResourceId=(Get-AzKeyVault -ResourceGroupName $rgName -Name $vaultName).ResourceId
$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $vaultName -Name $keyEncryptionKeyName).Key.kid;
Set-AzVmssDiskEncryptionExtension -ResourceGroupName $rgName -VMScaleSetName $vmssName `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $keyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $keyVaultResourceId -VolumeType "All"
Notitie
De syntaxis voor de waarde van de parameter voor disk-encryption-keyvault is de volledige id-tekenreeks: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name] De syntaxis voor de waarde van de parameter sleutel-versleuteling-sleutel is de volledige URI naar de KEK, zoals in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]
Voortgang van de versleuteling controleren
Gebruik Get-AzVmssDiskEncryptionom de status van schijfversleuteling te controleren:
Get-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName
Wanneer VM-exemplaren zijn versleuteld, rapporteert de code EncryptionSummary ProvisioningState/succeeded, zoals wordt weergegeven in de volgende voorbeelduitvoer:
ResourceGroupName : myResourceGroup
VmScaleSetName : myScaleSet
EncryptionSettings :
KeyVaultURL : https://myuniquekeyvault.vault.azure.net/
KeyEncryptionKeyURL :
KeyVaultResourceId : /subscriptions/guid/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/myuniquekeyvault
KekVaultResourceId :
KeyEncryptionAlgorithm :
VolumeType : All
EncryptionOperation : EnableEncryption
EncryptionSummary[0] :
Code : ProvisioningState/succeeded
Count : 2
EncryptionEnabled : True
EncryptionExtensionInstalled : True
Versleuteling uitschakelen
Als u geen versleutelde schijven van VM-exemplaren meer wilt gebruiken, kunt u versleuteling als volgt uitschakelen met Disable-AzVmssDiskEncryption:
Disable-AzVmssDiskEncryption -ResourceGroupName $rgName -VMScaleSetName $vmssName
Volgende stappen
- In dit artikel hebt u een Azure PowerShell een virtuele-machineschaalset te versleutelen. U kunt ook de Azure CLI gebruiken of Azure Resource Manager gebruiken.
- Als u Azure Disk Encryption wilt toepassen nadat een andere extensie is ingericht, kunt u extensiereeksen gebruiken.


