Ćwiczenie — szyfrowanie istniejących dysków maszyny wirtualnej
Załóżmy, że tworzysz aplikację do zarządzania finansami dla nowych startupów biznesowych. Chcesz mieć pewność, że wszystkie dane klientów są zabezpieczone. Dlatego podjęto decyzję o zaimplementowaniu usługi Azure Disk Encryption (ADE) na wszystkich dyskach systemu operacyjnego i danych na serwerach hostujących tę aplikację. Aby spełnić wymagania dotyczące zgodności, musisz również wziąć odpowiedzialność za zarządzanie własnym kluczem szyfrowania.
W tej lekcji szyfrujesz dyski na istniejącej maszynie wirtualnej i zarządzasz kluczami szyfrowania przy użyciu własnej usługi Azure Key Vault.
Przygotowywanie środowiska
Zacznij od wdrożenia nowej maszyny wirtualnej z systemem Windows na maszynie wirtualnej platformy Azure.
Wdrażanie maszyn wirtualnych z systemem Windows
Aby utworzyć i wdrożyć nową maszynę wirtualną z systemem Windows, użyj okna programu Azure PowerShell po prawej stronie.
Utwórz zmienną środowiska PowerShell do przechowywania wybranej lokalizacji. Użyj tego samego regionu co grupa zasobów.
$location = (Get-AzResourceGroup -name <rgn>[sandbox Resource Group]</rgn>).location
Napiwek
Do kopiowania poleceń do schowka możesz używać przycisku Kopiuj. Aby wkleić, kliknij prawym przyciskiem myszy nowy wiersz w terminalu usługi Cloud Shell i wybierz polecenie Wklej lub użyj skrótu klawiaturowego Shift+Insert (⌘+V w systemie macOS).
Następnie zdefiniuj kilka zmiennych bardziej wygodnych do przechwytywania nazwy maszyny wirtualnej i grupy zasobów. W tym miejscu używasz wstępnie utworzonej grupy zasobów. Zwykle należy utworzyć nową grupę zasobów w ramach subskrypcji przy użyciu polecenia
New-AzResourceGroup
.$vmName = "fmdata-vm01" $rgName = "<rgn>[sandbox Resource Group]</rgn>"
Aby utworzyć nową maszynę wirtualną, użyj polecenia
New-AzVm
:New-AzVm ` -ResourceGroupName $rgName ` -Name $vmName ` -Location $location ` -OpenPorts 3389
Gdy usługa Cloud Shell wyświetli monit, wprowadź nazwę użytkownika i hasło dla maszyny wirtualnej. Te informacje są używane jako początkowe konto utworzone dla maszyny wirtualnej.
Uwaga
To polecenie będzie używać niektórych wartości domyślnych, ponieważ nie dostarczaliśmy wielu opcji. W szczególności tworzy obraz systemu Windows 2016 Server o rozmiarze ustawionym na Standard_DS1_v2. Pamiętaj, że maszyny wirtualne w warstwie Podstawowa nie obsługują usługi ADE, jeśli zdecydujesz się określić rozmiar maszyny wirtualnej.
Po zakończeniu wdrażania maszyny wirtualnej należy przechwytywać do zmiennej szczegóły maszyny wirtualnej. Możesz użyć tej zmiennej do zapoznania się z utworzonymi funkcjami:
$vm = Get-AzVM -Name $vmName -ResourceGroupName $rgName
Możesz użyć następującego kodu, aby potwierdzić dysk systemu operacyjnego dołączony do maszyny wirtualnej:
$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
Sprawdź bieżący stan szyfrowania dysku systemu operacyjnego (i dowolnych dysków z danymi).
Get-AzVmDiskEncryptionStatus ` -ResourceGroupName $rgName ` -VMName $vmName
Zwróć uwagę, że dyski są obecnie niezaszyfrowane.
OsVolumeEncrypted : NotEncrypted DataVolumesEncrypted : NotEncrypted OsVolumeEncryptionSettings : ProgressMessage : No Encryption extension or metadata found on the VM
Zmieńmy to.
Szyfrowanie dysków maszyn wirtualnych za pomocą usługi Azure Disk Encryption
Musimy chronić te dane, więc zaszyfrujmy te dyski. Pamiętaj, że należy wykonać kilka kroków:
Tworzenie magazynu kluczy.
Skonfiguruj magazyn kluczy do obsługi szyfrowania dysków.
Poinformuj platformę Azure o zaszyfrowaniu dysków maszyn wirtualnych przy użyciu klucza przechowywanego w magazynie kluczy.
Napiwek
Omówimy kroki indywidualnie, ale podczas wykonywania tego zadania we własnej subskrypcji możesz użyć przydatnego skryptu programu PowerShell, który został połączony w sekcji Podsumowanie tego modułu.
Tworzenie magazynu kluczy
Aby utworzyć wystąpienie usługi Azure Key Vault, musimy włączyć usługę w subskrypcji. Musisz włączyć usługę tylko raz.
Napiwek
W zależności od Twojej subskrypcji być może należy włączyć dostawcę Microsoft.KeyVault za pomocą polecenia cmdlet Register-AzResourceProvider
. Nie jest to konieczne w subskrypcji piaskownicy platformy Azure.
Wybierz nazwę nowego magazynu kluczy. Musi być unikatowy i może zawierać od 3 do 24 znaków, składający się z cyfr, liter i kreski. Spróbuj dodać kilka losowych liczb na końcu, zastępując następujące 1234:
$keyVaultName = "mvmdsk-kv-1234"
Utwórz usługę Azure Key Vault za pomocą polecenia
New-AzKeyVault
:- Upewnij się, że umieścisz ją w tej samej grupie zasobów i lokalizacji co maszyna wirtualna.
- Włącz magazyn kluczy do użycia z szyfrowaniem dysków.
- Określ unikatową nazwę magazynu kluczy.
New-AzKeyVault -VaultName $keyVaultName ` -Location $location ` -ResourceGroupName $rgName ` -EnabledForDiskEncryption
Zostanie wyświetlone ostrzeżenie z tego polecenia o braku dostępu użytkowników.
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.
Ostrzeżenie jest poprawne, ponieważ po prostu używasz magazynu do przechowywania kluczy szyfrowania dla maszyny wirtualnej, a użytkownicy nie muszą uzyskiwać dostępu do tych danych.
Szyfrowanie dysku
Prawie wszystko jest gotowe do zaszyfrowania dysków. Przed wykonaniem tej czynności zostanie wyświetlone ostrzeżenie dotyczące tworzenia kopii zapasowych.
Ważne
Jeśli był to system produkcyjny, należy wykonać kopię zapasową dysków zarządzanych przy użyciu usługi Azure Backup lub przez utworzenie migawki. Migawki można tworzyć w witrynie Azure Portal lub za pomocą wiersza polecenia. W programie PowerShell użyjesz New-AzSnapshot
polecenia cmdlet . Ponieważ jest to proste ćwiczenie i po zakończeniu tych danych zostanie pominięte.
Aby przechowywać informacje o magazynie kluczy, zdefiniuj zmienną:
$keyVault = Get-AzKeyVault ` -VaultName $keyVaultName ` -ResourceGroupName $rgName
Następnie, aby zaszyfrować dyski maszyny wirtualnej, uruchom
Set-AzVmDiskEncryptionExtension
polecenie cmdlet "- Parametr
VolumeType
umożliwia określenie dysków do zaszyfrowania: [Wszystkie | System operacyjny | Dane]. Domyślnie ma wartość Wszystkie. Dyski danych można zaszyfrować tylko w niektórych dystrybucjach systemu Linux. - Jeśli nie ma migawki, możesz podać flagę
SkipVmBackup
dla dysków zarządzanych.
Set-AzVmDiskEncryptionExtension ` -ResourceGroupName $rgName ` -VMName $vmName ` -VolumeType All ` -DiskEncryptionKeyVaultId $keyVault.ResourceId ` -DiskEncryptionKeyVaultUrl $keyVault.VaultUri ` -SkipVmBackup
- Parametr
Polecenie cmdlet ostrzega, że maszyna wirtualna musi zostać przełączony w tryb offline i że wykonanie zadania może potrwać kilka minut. Przejdź dalej i pozwól, aby kontynuować:
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 zakończeniu działania polecenia cmdlet sprawdź ponownie stan szyfrowania:
Get-AzVmDiskEncryptionStatus -ResourceGroupName $rgName -VMName $vmName
Dysk systemu operacyjnego powinien być teraz zaszyfrowany. Wszystkie dołączone dyski danych widoczne dla systemu Windows również są szyfrowane.
OsVolumeEncrypted : Encrypted DataVolumesEncrypted : NoDiskFound OsVolumeEncryptionSettings : Microsoft.Azure.Management.Compute.Models.DiskEncryptionSettings ProgressMessage : Provisioning succeeded
Uwaga
Nowe dyski dodane po zaszyfrowaniu nie będą automatycznie szyfrowane. Możesz ponownie uruchomić polecenie cmdlet, Set-AzVMDiskEncryptionExtension
aby zaszyfrować nowe dyski. Jeśli dodasz dyski do maszyny wirtualnej, która ma już zaszyfrowane dyski, pamiętaj o podaniu nowego numeru w sekwencji. Ponadto dyski, które nie są widoczne dla systemu operacyjnego, nie będą szyfrowane. Aby można było go zobaczyć, dysk musi być poprawnie podzielony na partycje, sformatowany i zainstalowany dla rozszerzenia funkcji BitLocker.