Cvičení – šifrování existujících disků virtuálních počítačů
Předpokládejme, že vyvíjíte aplikaci pro finanční správu pro nové obchodní startupy. Chcete zajistit, aby všechna data vašich zákazníků byla zabezpečená, takže jste se rozhodli implementovat Službu Azure Disk Encryption (ADE) na všech discích operačního systému a datových disků na serverech, které budou tuto aplikaci hostovat. V rámci požadavků na dodržování předpisů musíte také sami zodpovídat za správu vašich šifrovacích klíčů.
V této lekci zašifrujete disky stávajícího virtuálního počítače a budete ve službě Azure Key Valult spravovat vlastní šifrovací klíče.
Příprava prostředí
Začnete nasazením nového virtuálního počítače s Windows na virtuální počítač Azure.
Nasazení virtuálního počítače s Windows
Pokud chcete vytvořit a nasadit nový virtuální počítač s Windows, použijte napravo okno Azure PowerShellu.
Definujte proměnnou PowerShellu, která obsahuje vybrané umístění. Použijete stejnou oblast jako u skupiny prostředků.
$location = (Get-AzResourceGroup -name <rgn>[sandbox Resource Group]</rgn>).location
Tip
Můžete použít tlačítko Kopírovat pro kopírování příkazů do schránky. Pokud chcete vložit, klikněte pravým tlačítkem myši na nový řádek v terminálu Cloud Shellu a vyberte Vložit nebo použijte klávesovou zkratku Shift+Insert (⌘+V v macOS).
Dále definujte pár další praktické proměnné pro zachycení názvu virtuálního počítače a skupiny prostředků. Všimněte si, že tady používáte předem vytvořenou skupinu prostředků. Normálně byste ve svém předplatném vytvořili novou skupinu prostředků pomocí
New-AzResourceGroup
.$vmName = "fmdata-vm01" $rgName = "<rgn>[sandbox Resource Group]</rgn>"
Pokud chcete vytvořit nový virtuální počítač, použijte
New-AzVm
:New-AzVm ` -ResourceGroupName $rgName ` -Name $vmName ` -Location $location ` -OpenPorts 3389
Když vás Cloud Shell vyzve, zadejte uživatelské jméno a heslo virtuálního počítače. Použijí se jako počáteční účet vytvořený pro virtuální počítač.
Poznámka:
Tento příkaz použije některé výchozí hodnoty, protože jsme nezadali mnoho možností. Konkrétně se tím vytvoří image Windows 2016 Server s velikostí pro Standard_DS1_v2. Mějte na paměti, že virtuální počítače úrovně Basic nepodporují ADE, pokud se rozhodnete určit velikost virtuálního počítače.
Po nasazení virtuálního počítače zaznamenejte jeho podrobnosti do proměnné. Pomocí této proměnné můžete prozkoumat, co jste vytvořili:
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
Pomocí následujícího kódu můžete ověřit disk s operačním systémem připojený k virtuálnímu počítači:
$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
Zkontrolujte aktuální stav šifrování disku s operačním systémem (a všechny datové disky).
Get-AzVmDiskEncryptionStatus ` -ResourceGroupName $rgName ` -VMName $vmName
Všimněte si, že disky jsou momentálně nešifrované.
OsVolumeEncrypted : NotEncrypted DataVolumesEncrypted : NotEncrypted OsVolumeEncryptionSettings : ProgressMessage : No Encryption extension or metadata found on the VM
Pojďme to změnit.
Šifrování disků virtuálních počítačů pomocí Azure Disk Encryption
Je potřeba chránit tato data, takže disky zašifrujeme. Pamatujte, že existuje několik kroků, které je třeba provést:
Vytvořte trezor klíčů.
Nastavte trezor klíčů pro podporu šifrování disků.
Informujte Azure o šifrování disků virtuálních počítačů pomocí klíče uloženého v trezoru klíčů.
Tip
Jednotlivé kroky si projdeme, ale když tuto úlohu provádíte ve vlastním předplatném, můžete použít praktický skript PowerShellu, který jsme propojili v části Souhrn tohoto modulu.
Vytvořte trezor klíčů.
Abychom mohli vytvořit Azure Key Vault, musíme povolit službu v našem předplatném. Jedná se o jednorázový úkon.
Tip
V závislosti na vašem předplatném může být potřeba povolit poskytovatele Microsoft.KeyVault pomocí rutiny Register-AzResourceProvider
. To není nutné v předplatném sandboxu Azure.
Určete název nového trezoru klíčů. Musí být jedinečný a může mít 3 až 24 znaků, které se skládají z číslic, písmen a pomlček. Zkuste na konec přidat několik náhodných čísel a nahraďte následující číslo 1234:
$keyVaultName = "mvmdsk-kv-1234"
Vytvoření služby Azure Key Vault pomocí
New-AzKeyVault
:- Ujistěte se, že je umístěná ve stejné skupině prostředků a ve stejném umístění jako váš virtuální počítač.
- Povolení trezoru klíčů pro použití s šifrováním disků
- Zadání jedinečného názvu trezoru klíčů
New-AzKeyVault -VaultName $keyVaultName ` -Location $location ` -ResourceGroupName $rgName ` -EnabledForDiskEncryption
Z tohoto příkazu se zobrazí upozornění na to, že nemají přístup žádní uživatelé.
WARNING: Access policy is not set. No user or app have access permission to use this vault. This can happen if the vault was created by a service principal. To set access policies, use Set-AzKeyVaultAccessPolicy.
Je to v pořádku, protože k ukládání šifrovacích klíčů pro virtuální počítač používáte jenom trezor a uživatelé k datům nebudou potřebovat přístup.
Šifrování disku
Skoro jste připraveni šifrovat disky. Než to uděláte, tady je upozornění na vytváření záloh.
Důležité
Pokud se jedná o produkční systém, museli byste provést zálohu spravovaných disků, a to buď pomocí služby Azure Backup, nebo vytvořením snímku. Snímky můžete vytvářet na webu Azure Portal nebo prostřednictvím příkazového řádku. V PowerShellu byste použili rutinu New-AzSnapshot
. Vzhledem k tomu, že se jedná o jednoduché cvičení a jakmile budete hotovi, budete tato data vystavovat, tento krok přeskočíte.
Pokud chcete uchovávat informace o trezoru klíčů, definujte proměnnou:
$keyVault = Get-AzKeyVault ` -VaultName $keyVaultName ` -ResourceGroupName $rgName
Dále spuštěním
Set-AzVmDiskEncryptionExtension
rutiny zašifrujte disky virtuálních počítačů.- Parametr
VolumeType
umožňuje určit, které disky chcete šifrovat: [Vše | OS | Data]. Ve výchozím nastavení se nastaví vše. Pro některé distribuce Linuxu lze zašifrovat pouze datové disky. - Příznak pro spravované disky můžete zadat
SkipVmBackup
, pokud neexistuje žádný snímek.
Set-AzVmDiskEncryptionExtension ` -ResourceGroupName $rgName ` -VMName $vmName ` -VolumeType All ` -DiskEncryptionKeyVaultId $keyVault.ResourceId ` -DiskEncryptionKeyVaultUrl $keyVault.VaultUri ` -SkipVmBackup
- Parametr
Rutina vás upozorní, že virtuální počítač musí být převeden do režimu offline a že úloha může trvat několik minut. Pokračujte a pokračujte:
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
Po dokončení spuštění rutiny znovu zkontrolujte stav šifrování:
Get-AzVmDiskEncryptionStatus -ResourceGroupName $rgName -VMName $vmName
Disk s operačním systémem by teď měl být šifrovaný. Všechny připojené datové disky, které jsou viditelné pro Windows, jsou také šifrované.
OsVolumeEncrypted : Encrypted DataVolumesEncrypted : NoDiskFound OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings ProgressMessage : Provisioning succeeded
Poznámka:
Nové disky přidané po šifrování se automaticky nešifrují . Spuštěním rutiny Set-AzVMDiskEncryptionExtension
můžete znovu zašifrovat nové disky. Pokud k virtuálnímu počítači, který už má disky šifrované, přidáte disky, nezapomeňte zadat nové číslo v posloupnosti. Kromě toho se disky, které nejsou viditelné pro operační systém, nebudou šifrovány. Aby se disk zobrazil, musí být správně rozdělený na oddíly, naformátovaný a připojený k rozšíření BitLockeru.