Scénáře použití služby Azure Disk Encryption na virtuálních počítačích se systémem Linux
Platí pro: ✔️ Flexibilní škálovací sady virtuálních počítačů s Linuxem ✔️
Služba Azure Disk Encryption pro virtuální počítače s Linuxem používá linuxovou funkci DM-Crypt, která zajišťuje šifrování celého disku s operačním systémem i datových disků. Služba dále umožňuje šifrovat dočasný disk funkcí EncryptFormatAll.
Služba Azure Disk Encryption je integrovaná se službou Azure Key Vault , která vám pomůže řídit a spravovat šifrovací klíče a tajné kódy disků. Přehled služby najdete v tématu Azure Disk Encryption pro virtuální počítače s Linuxem.
Požadavky
Šifrování disků je možné použít jen u virtuálních počítačů, které mají podporovanou velikost a operační systémy. Dále musí být splněny následující požadavky:
Před šifrováním disků byste v každém případě měli pořídit snímek a/nebo vytvořit zálohu. Pokud máte zálohu a při šifrování dojde nečekaně k chybě, bude možné virtuální počítač obnovit. Virtuální počítače se spravovanými disky vyžadují před šifrováním zálohu. Po vytvoření zálohy můžete pomocí rutiny Set-AzVMDiskEncryptionExtension zašifrovat spravované disky zadáním parametru -skipVmBackup. Další informace o zálohování a obnovení šifrovaných virtuálních počítačů najdete v tématu o Zálohování Azure.
Omezení
Pokud jste k šifrování virtuálního počítače použili službu Azure Disk Encryption s ID Microsoft Entra, musíte pokračovat v šifrování virtuálního počítače pomocí této možnosti. Podrobnější informace viz Azure Disk Encryption s Microsoft Entra ID (předchozí verze).
Při šifrování svazků s operačním systémem Linux bude potřeba virtuální počítač považovat za nedostupný. Důrazně doporučujeme vyhnout se přihlášením přes SSH, zatímco probíhá šifrování, aby nedocházelo k problémům, které blokují otevřené soubory, ke kterým je potřeba přistupovat během procesu šifrování. Pokud chcete zkontrolovat průběh, použijte rutinu PowerShellu Get-AzVMDiskEncryptionStatus nebo příkaz rozhraní příkazového řádku pro šifrování virtuálního počítače. Tento proces může trvat několik hodin na svazku s operačním systémem o 30 GB a navíc delší dobu pro šifrování datových svazků. Doba šifrování datového svazku je úměrná velikosti a množství datových svazků, pokud není použita možnost šifrovat celý formát.
Zákaz šifrování je na virtuálních počítačích s Linuxem podporovaný jen u datových svazků. Zakázání šifrování není podporováno u dat nebo svazků operačního systému, pokud je svazek operačního systému šifrovaný.
Azure Disk Encryption nefunguje v následujících linuxových scénářích, funkcích a technologiích:
- Šifrování virtuálních počíta.čů úrovně Basic a virtuálních počítačů vytvořených klasickou metodou
- Šifrování virtuálních počítačů řady v6 (Ddsv6, Dldsv6, Edsv6, Dadsv6, Daldsv6, Eadsv6, Dpdsv6, Dpldsv6 nebo Epdsv6). Další informace najdete na jednotlivých stránkách jednotlivých velikostí virtuálních počítačů uvedených na velikostech virtuálních počítačů v Azure.
- Zakázání šifrování na jednotce operačního systému nebo datové jednotce virtuálního počítače s Linuxem při šifrování jednotky operačního systému
- Šifrování jednotky operačního systému u škálovacích sad virtuálních počítačů s Linuxem.
- Šifrování vlastních imagí na virtuálních počítačích s Linuxem.
- Integrace do místního systému pro správu klíčů.
- Soubory Azure (sdílený systém souborů).
- Systém souborů NFS (Network File System).
- Dynamické svazky.
- Disky OS s kratší platností.
- Šifrování sdílených/distribuovaných systémů souborů, včetně (ale nikoli výlučně) DFS, GFS, DRDB a CephFS.
- Přesun šifrovaného virtuálního počítače do jiného předplatného nebo oblasti
- Vytvoření image nebo snímku šifrovaného virtuálního počítače a jeho použití k nasazení dalších virtuálních počítačů.
- Výpis paměti s chybami jádra (kdump)
- Oracle ACFS (systém souborů clusteru ASM).
- Disky NVMe, jako jsou disky NVMe, například velikosti virtuálních počítačů s vysokým výkonem nebo velikosti optimalizovaných pro úložiště.
- Virtuální počítač s vnořenými přípojnými body; to znamená, že více přípojných bodů v jedné cestě (například /1stmountpoint/data/2ndmountpoint).
- Virtuální počítač s datovou jednotkou připojenou nad složkou operačního systému.
- Virtuální počítač, na kterém je kořenový (OS disk) logický svazek rozšířen pomocí datového disku.
- Změna velikosti disku s operačním systémem
- Virtuální počítače řady M s disky akcelerátoru zápisu
- Použití ADE na virtuální počítač, který má disky šifrované pomocí šifrování na straně hostitele nebo na straně serveru s využitím klíčů spravovaných zákazníkem (SSE + CMK). Použití SSE + CMK na datový disk nebo přidání datového disku s nakonfigurovaným SSE + CMK do virtuálního počítače šifrovaného pomocí ADE je rovněž nepodporovaný scénář.
- Migrace virtuálního počítače, který je šifrovaný pomocí ADE nebo byl někdy šifrovaný pomocí ADE, na šifrování na straně hostitele nebo na straně serveru pomocí klíčů spravovaných zákazníkem.
- Šifrování virtuálních počítačů v clusterech s podporou převzetí služeb při selhání.
- Šifrování disků Azure Úrovně Ultra
- Šifrování disků SSD úrovně Premium v2
- Šifrování virtuálních počítačů v předplatných s tajnými kódy by mělo mít povolenou zadanou zásadu maximální doby platnosti s účinkem ODEPŘÍT.
Instalace nástrojů a připojení k Azure
Službu Azure Disk Encryption je možné povolit a spravovat prostřednictvím Azure CLI a Azure PowerShellu. K tomu je potřeba nainstalovat nástroje místně a připojit se k předplatnému Azure.
Azure CLI 2.0 je nástroj příkazového řádku pro správu prostředků Azure. Rozhraní příkazového řádku je navržené tak, aby pružně dotazovala data, podporovala dlouhotrvající operace jako neblokující procesy a usnadnila skriptování. Můžete ho nainstalovat místně podle kroků v části Instalace Azure CLI.
Pokud se chcete přihlásit ke svému účtu Azure pomocí Azure CLI, použijte příkaz az login .
az login
Pokud chcete vybrat tenanta, pod který se chcete přihlásit, použijte:
az login --tenant <tenant>
Pokud máte více předplatných a chcete zadat konkrétní předplatné, získejte seznam předplatných pomocí příkazu az account list a zadejte příkazem az account set.
az account list
az account set --subscription "<subscription name or ID>"
Další informace najdete v tématu Začínáme s Azure CLI 2.0.
Povolení šifrování na existujícím nebo spuštěném virtuálním počítači s Linuxem
V tomto scénáři můžete povolit šifrování pomocí šablony Resource Manageru, rutin PowerShellu nebo příkazů rozhraní příkazového řádku. Pokud potřebujete informace o schématu pro rozšíření virtuálního počítače, přečtěte si článek o rozšíření Azure Disk Encryption pro Linux.
Důležité
Je povinné vytvořit snímek nebo zálohování instance virtuálního počítače založené na spravovaných discích mimo ni a před povolením služby Azure Disk Encryption. Snímek spravovaného disku můžete pořídit z portálu nebo prostřednictvím služby Azure Backup. Zálohy zajišťují, že možnost obnovení je možná v případě neočekávaného selhání během šifrování. Po vytvoření zálohy lze rutinu Set-AzVMDiskEncryptionExtension použít k šifrování spravovaných disků zadáním parametru -skipVmBackup. Příkaz Set-AzVMDiskEncryptionExtension selže s virtuálními počítači založenými na spravovaných discích, dokud se neprovede záloha a tento parametr se nezadá.
Šifrování nebo zakázání šifrování může způsobit restartování virtuálního počítače.
Pokud chcete šifrování zakázat, přečtěte si téma Zakázání šifrování a odebrání rozšíření šifrování.
Šifrování disků na šifrovaný virtuální pevný disk můžete povolit tak, že nainstalujete a použijete nástroj příkazového řádku Azure CLI . Můžete ho používat v prohlížeči pomocí služby Azure Cloud Shell nebo nainstalovat na místním počítači a používat ho v jakékoli relaci PowerShellu. Pokud chcete povolit šifrování u existujících nebo spuštěných virtuálních počítačů s Linuxem v Azure, použijte následující příkazy rozhraní příkazového řádku:
Pomocí příkazu az vm encryption povolte šifrování na spuštěném virtuálním počítači v Azure.
Šifrování spuštěného virtuálního počítače:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
Šifrování spuštěného virtuálního počítače pomocí KEK:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
Poznámka:
Syntaxe pro hodnotu parametru disk-encryption-keyvault je řetězec úplného identifikátoru: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name.]
Syntaxe pro hodnotu parametru key-encryption-key je úplný identifikátor URI klíče KEK jako v: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]Ověřte, že jsou disky šifrované: Pokud chcete zkontrolovat stav šifrování virtuálního počítače, použijte příkaz az vm encryption show .
az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
Pokud chcete šifrování zakázat, přečtěte si téma Zakázání šifrování a odebrání rozšíření šifrování.
Použití funkce EncryptFormatAll pro datové disky na virtuálních počítačích s Linuxem
Parametr EncryptFormatAll zkracuje dobu šifrování datových disků Linuxu. Oddíly, které splňují určitá kritéria, budou formátovány spolu s jejich aktuálními systémy souborů a pak se znovu připojí k umístění, kde byly před spuštěním příkazu. Pokud chcete vyloučit datový disk, který splňuje kritéria, můžete ho před spuštěním příkazu odpojit.
Po spuštění tohoto příkazu se všechny připojené jednotky naformátují a vrstva šifrování se spustí nad nyní prázdnou jednotkou. Pokud vyberete tuto možnost, zašifruje se také dočasný disk připojený k virtuálnímu počítači. Pokud se dočasný disk resetuje, přeformátuje se a znovu zašifruje pro virtuální počítač řešením Azure Disk Encryption při další příležitosti. Jakmile se disk prostředku zašifruje, agent Microsoft Azure Linux nebude moct spravovat disk prostředku a povolit prohození souboru, ale můžete ho nakonfigurovat ručně.
Upozorňující
EncryptFormatAll by se nemělo používat, pokud jsou potřebná data na datových svazcích virtuálního počítače. Disky můžete z šifrování vyloučit tak, že je odpojíte. Nejprve byste měli vyzkoušet EncryptFormatAll na testovacím virtuálním počítači, porozumět parametru funkce a jeho implikaci předtím, než ho zkusíte na produkčním virtuálním počítači. Možnost EncryptFormatAll formátuje datový disk a všechna data na něm budou ztracena. Než budete pokračovat, ověřte, že disky, které chcete vyloučit, jsou správně odpojené.
Pokud tento parametr nastavujete při aktualizaci nastavení šifrování, může to před skutečným šifrováním vést k restartování. V takovém případě budete chtít odebrat disk, který nechcete formátovat ze souboru fstab. Podobně byste měli před zahájením operace šifrování přidat oddíl, který chcete zašifrovat do souboru fstab.
Kritéria EncryptFormatAll
Parametr prochází všemi oddíly a šifruje je, pokud splňují všechna níže uvedená kritéria:
- Není kořenový oddíl, operační systém nebo spouštěcí oddíl.
- Není zašifrovaný.
- Není svazek BEK.
- Není svazek RAID.
- Není svazek LVM.
- Je připojeno.
Zašifrujte disky, které tvoří svazek RAID nebo LVM místo svazku RAID nebo LVM.
- Použití parametru EncryptFormatAll s Azure CLI
- Použití parametru EncryptFormatAll s rutinou PowerShellu
Pomocí příkazu az vm encryption povolte šifrování na spuštěném virtuálním počítači v Azure.
Šifrování spuštěného virtuálního počítače pomocí EncryptFormatAll:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
Použití parametru EncryptFormatAll se správcem logických svazků (LVM)
Doporučujeme nastavit lvm-on-crypt. Podrobné pokyny k LVM v konfiguraci šifrování najdete v tématu Konfigurace LVM a RAID na šifrovaných zařízeních ADE.
Nové virtuální počítače vytvořené z virtuálních pevných disků šifrovaných zákazníkem a šifrovacích klíčů
V tomto scénáři můžete šifrování povolit pomocí rutin PowerShellu nebo příkazů rozhraní příkazového řádku.
Postupujte podle pokynů ve stejných skriptech Azure Disk Encryption pro přípravu předšifrovaných imagí, které je možné použít v Azure. Po vytvoření image můžete pomocí kroků v další části vytvořit šifrovaný virtuální počítač Azure.
Důležité
Je povinné vytvořit snímek nebo zálohování instance virtuálního počítače založené na spravovaných discích mimo ni a před povolením služby Azure Disk Encryption. Snímek spravovaného disku můžete pořídit z portálu nebo můžete použít Azure Backup . Zálohy zajišťují, že možnost obnovení je možná v případě neočekávaného selhání během šifrování. Po vytvoření zálohy lze rutinu Set-AzVMDiskEncryptionExtension použít k šifrování spravovaných disků zadáním parametru -skipVmBackup. Příkaz Set-AzVMDiskEncryptionExtension selže s virtuálními počítači založenými na spravovaných discích, dokud se neprovede záloha a tento parametr se nezadá.
Šifrování nebo zakázání šifrování může způsobit restartování virtuálního počítače.
Použití Azure PowerShellu k šifrování virtuálních počítačů s předšifrovanými virtuálními pevnými disky
Šifrování disků na šifrovaný virtuální pevný disk můžete povolit pomocí rutiny PowerShellu Set-AzVMOSDisk. V tomto příkladu jsou uvedeny některé běžné parametry.
$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Linux -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"
Povolení šifrování na nově přidaném datovém disku
Nový datový disk můžete přidat pomocí příkazu az vm disk attach nebo prostřednictvím webu Azure Portal. Před šifrováním je potřeba nejprve připojit nově připojený datový disk. Šifrování datové jednotky je nutné vyžádat, protože jednotka bude v průběhu šifrování nepoužitelná.
Pokud byl virtuální počítač dříve zašifrován pomocí "All", měl by parametr --volume-type zůstat "All". Všechny zahrnují disky s operačním systémem i datovými disky. Pokud byl virtuální počítač dříve šifrovaný pomocí typu operačního systému, měl by být parametr --volume-type změněn na All, aby byl zahrnutý operační systém i nový datový disk. Pokud byl virtuální počítač zašifrovaný pouze s typem svazku "Data", může zůstat "Data", jak je znázorněno níže. Přidání a připojení nového datového disku k virtuálnímu počítači není dostatečná příprava na šifrování. Nově připojený disk musí být také naformátovaný a správně připojený v rámci virtuálního počítače před povolením šifrování. Na Linuxu musí být disk připojený v /etc/fstab s trvalým názvem blokového zařízení.
Na rozdíl od syntaxe PowerShellu rozhraní příkazového řádku nevyžaduje, aby uživatel při povolování šifrování poskytoval jedinečnou sekvenci. Rozhraní příkazového řádku automaticky vygeneruje a používá vlastní jedinečnou hodnotu verze sekvence.
Šifrování datových svazků spuštěného virtuálního počítače:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
Šifrování datových svazků spuštěného virtuálního počítače pomocí KEK:
az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
Zakázání šifrování a odebrání rozšíření šifrování
Rozšíření Azure Disk Encryption můžete zakázat a můžete odebrat rozšíření Azure Disk Encryption. Jedná se o dvě odlišné operace.
Pokud chcete ADE odebrat, doporučujeme nejprve zakázat šifrování a pak rozšíření odebrat. Pokud odeberete šifrovací rozšíření bez jeho zakázání, disky se budou dál šifrovat. Pokud šifrování zakážete po odebrání rozšíření, rozšíření se přeinstaluje (k provedení dešifrovací operace) a bude potřeba ho znovu odebrat.
Upozorňující
Šifrování nelze zakázat, pokud je disk s operačním systémem zašifrovaný. (Disky s operačním systémem se šifrují, když původní operace šifrování určuje volumeType=ALL nebo volumeType=OS.)
Zakázání šifrování funguje jenom v případech, kdy jsou datové disky šifrované, ale disk s operačním systémem není.
Zakázání šifrování
Šifrování můžete zakázat pomocí Azure PowerShellu, Azure CLI nebo šablony Resource Manageru. Zakázání šifrování neodebere rozšíření (viz Odebrání rozšíření šifrování).
Zakázání šifrování disků pomocí Azure PowerShellu: Pokud chcete šifrování zakázat, použijte rutinu Disable-AzVMDiskEncryption .
Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
Zákaz šifrování pomocí Azure CLI: Pokud chcete zakázat šifrování, použijte příkaz az vm encryption disable .
az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
Zakázání šifrování pomocí šablony Resource Manageru:
- V šabloně virtuálního počítače s Linuxem klikněte na Nasadit do Azure ze šablony Zakázat šifrování disků.
- Vyberte předplatné, skupinu prostředků, umístění, virtuální počítač, typ svazku, právní podmínky a smlouvu.
- Kliknutím na tlačítko Koupit zakážete šifrování disků na spuštěném virtuálním počítači s Linuxem.
Upozorňující
Po zahájení dešifrování je vhodné nerušit proces.
Odebrání rozšíření šifrování
Pokud chcete dešifrovat disky a odebrat rozšíření šifrování, musíte šifrování před odebráním rozšíření zakázat. Viz zakázání šifrování.
Rozšíření šifrování můžete odebrat pomocí Azure PowerShellu nebo Azure CLI.
Zakažte šifrování disků pomocí Azure PowerShellu: Pokud chcete šifrování odebrat, použijte rutinu Remove-AzVMDiskEncryptionExtension .
Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
Zakažte šifrování pomocí Azure CLI: Pokud chcete odebrat šifrování, použijte příkaz az vm extension delete .
az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"