Sdílet prostřednictvím


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.

Předpoklady

Š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:

Ve všech případech byste měli pořídit snímek nebo vytvořit zálohu před zašifrovanými disky. Zálohy zajišťují, že možnost obnovení je možná, pokud během šifrování dojde k neočekávané chybě. 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 článku Azure Backup .

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. Podrobnosti najdete v tématu Azure Disk Encryption s ID Microsoft Entra (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ý. Během šifrování důrazně doporučujeme nepoužívat přihlášení SSH. Vyhnete se tak problémům se zablokováním otevřených souborů, ke kterým probíhající šifrování vyžaduje přístup. 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. U svazku s operačním systémem o velikosti 30 GB půjde o několikahodinový proces. A další čas bude vyžadovat šifrování datových svazků. Doba potřebná k šifrování datových svazků je úměrná velikosti a počtu datových svazků, pokud se nepoužívá možnost „encrypt format all“.

Zákaz šifrování je na virtuálních počítačích s Linuxem podporovaný jen u datových svazků. Zákaz není podporovaný u datových svazků ani u svazků s OS, pokud je zašifrovaný svazek operačního systému.

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 nebo virtuálních počítačů vytvořených prostřednictvím metody vytvoření klasického virtuálního počítače
  • 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 pro škálovací sady virtuálních počítačů s Linuxem
  • Šifrování vlastních imagí na virtuálních počítačích s Linuxem
  • Integrace s místním systémem pro správu klíčů
  • Soubory Azure (sdílený systém souborů).
  • Systém souborů NFS (Network File System).
  • Dynamické svazky.
  • Dočasné disky s operačním systémem
  • Šifrování sdílených nebo distribuovaných systémů souborů, jako jsou (ale ne omezené na): 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 stavu systému 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/2stmountpoint).
  • Virtuální počítač s datovou jednotkou připojenou ke složce operačního systému
  • Virtuální počítač, na kterém byl logický svazek kořenového (disku s operačním systémem) rozšířen pomocí datového disku.
  • 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 SSE + CMK nakonfigurovaným na virtuální počítač šifrovaný pomocí ADE je také 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 na virtuálních počítačích založených 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.

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 na virtuálních počítačích založených 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. Následující příklad obsahuje 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:

    1. V šabloně virtuálního počítače s Linuxem klikněte na Nasadit do Azure ze šablony Zakázat šifrování disků.
    2. Vyberte předplatné, skupinu prostředků, umístění, virtuální počítač, typ svazku, právní podmínky a smlouvu.
    3. Kliknutím na tlačítko Koupit zakážete šifrování disků na spuštěném virtuálním počítači s Linuxem.

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"
    

Další kroky