Azure Disk Encryption-scenario's voor virtuele Linux-machines

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Azure Disk Encryption voor virtuele Linux-machines (VM's) gebruikt de DM-Crypt functie van Linux om volledige schijfversleuteling van de besturingssysteemschijf en gegevensschijven te bieden. Daarnaast biedt het versleuteling van de tijdelijke schijf bij het gebruik van de functie EncryptFormatAll.

Azure Disk Encryption is geïntegreerd met Azure Key Vault om u te helpen de schijfversleutelingssleutels en -geheimen te beheren. Zie Azure Disk Encryption voor Linux-VM's voor een overzicht van de service.

Vereisten

U kunt schijfversleuteling alleen toepassen op virtuele machines met ondersteunde VM-grootten en besturingssystemen. U moet ook voldoen aan de volgende vereisten:

In alle gevallen moet u een momentopname maken en/of een back-up maken voordat schijven worden versleuteld. Back-ups zorgen ervoor dat een hersteloptie mogelijk is als er een onverwachte fout optreedt tijdens de versleuteling. Voor VM's met beheerde schijven is een back-up vereist voordat versleuteling plaatsvindt. Zodra een back-up is gemaakt, kunt u de cmdlet Set-AzVMDiskEncryptionExtension gebruiken om beheerde schijven te versleutelen door de parameter -skipVmBackup op te geven. Zie het Artikel over Azure Backup voor meer informatie over het maken van back-ups en het herstellen van versleutelde VM's.

Beperkingen

Als u Azure Disk Encryption eerder hebt gebruikt met Microsoft Entra ID om een virtuele machine te versleutelen, moet u deze optie blijven gebruiken om uw virtuele machine te versleutelen. Zie Azure Disk Encryption met Microsoft Entra ID (vorige release) voor meer informatie.

Bij het versleutelen van Linux-besturingssysteemvolumes moet de VM worden beschouwd als niet beschikbaar. We raden u ten zeerste aan om SSH-aanmeldingen te voorkomen terwijl de versleuteling wordt uitgevoerd om problemen met het blokkeren van geopende bestanden te voorkomen die tijdens het versleutelingsproces moeten worden geopend. Als u de voortgang wilt controleren, gebruikt u de PowerShell-cmdlet Get-AzVMDiskEncryptionStatus of de vm-versleuteling om de CLI-opdracht weer te geven . Dit proces kan naar verwachting enkele uren duren voor een besturingssysteemvolume van 30 GB, plus extra tijd voor het versleutelen van gegevensvolumes. De versleutelingstijd voor gegevensvolumes is evenredig met de grootte en hoeveelheid van de gegevensvolumes, tenzij de versleutelingsindeling wordt gebruikt.

Het uitschakelen van versleuteling op Linux-VM's wordt alleen ondersteund voor gegevensvolumes. Het wordt niet ondersteund op gegevens- of besturingssysteemvolumes als het besturingssysteemvolume is versleuteld.

Azure Disk Encryption werkt niet voor de volgende Linux-scenario's, -functies en -technologie:

  • Het versleutelen van vm's in de basic-laag die zijn gemaakt via de klassieke methode voor het maken van vm's.
  • Versleuteling uitschakelen op een besturingssysteemstation of gegevensstation van een Linux-VM wanneer het besturingssysteemstation is versleuteld.
  • Het besturingssysteemstation versleutelen voor virtuele-machineschaalsets van Linux.
  • Aangepaste installatiekopieën versleutelen op Linux-VM's.
  • Integratie met een on-premises sleutelbeheersysteem.
  • Azure Files (gedeeld bestandssysteem).
  • Network File System (NFS).
  • Dynamische volumes.
  • Tijdelijke besturingssysteemschijven.
  • Versleuteling van gedeelde/gedistribueerde bestandssystemen, zoals (maar niet beperkt tot): DFS, GFS, DRDB en CephFS.
  • Een versleutelde VM verplaatsen naar een ander abonnement of een andere regio.
  • Een installatiekopie of momentopname van een versleutelde VIRTUELE machine maken en deze gebruiken om extra VM's te implementeren.
  • Kernel Crash Dump (kdump).
  • Oracle ACFS (ASM Cluster File System).
  • NVMe-schijven, zoals die op VM-grootten met hoge prestaties of geoptimaliseerde VM-grootten voor Opslag.
  • Een VM met 'geneste koppelpunten'; dat wil gezegd, meerdere koppelpunten in één pad (zoals "/1stmountpoint/data/2stmountpoint").
  • Een VM met een gegevensstation dat is gekoppeld aan een map met het besturingssysteem.
  • Een VM waarop een logisch volume van een hoofdmap (besturingssysteemschijf) is uitgebreid met behulp van een gegevensschijf.
  • Vm's uit de M-serie met Write Accelerator-schijven.
  • ADE toepassen op een virtuele machine met schijven die zijn versleuteld met versleuteling op de host of op de server met door de klant beheerde sleutels (SSE + CMK). Het toepassen van SSE + CMK op een gegevensschijf of het toevoegen van een gegevensschijf met SSE + CMK die is geconfigureerd voor een virtuele machine die is versleuteld met ADE, is ook een niet-ondersteund scenario.
  • Migreren van een VIRTUELE machine die is versleuteld met ADE of ooit is versleuteld met ADE, naar versleuteling op host of serverzijde met door de klant beheerde sleutels.
  • Vm's in failoverclusters versleutelen.
  • Versleuteling van Azure Ultra Disks.
  • Versleuteling van Premium SSD v2-schijven.
  • Versleuteling van VM's in abonnementen waarvoor de geheimen het opgegeven beleid voor maximale geldigheidsperiode moeten hebben ingeschakeld met het effect DENY.

Hulpprogramma's installeren en verbinding maken met Azure

Azure Disk Encryption kan worden ingeschakeld en beheerd via de Azure CLI en Azure PowerShell. Hiervoor moet u de hulpprogramma's lokaal installeren en verbinding maken met uw Azure-abonnement.

Azure CLI 2.0 is een opdrachtregelprogramma voor het beheren van Azure-resources. De CLI is ontworpen om flexibel querygegevens uit te voeren, langdurige bewerkingen te ondersteunen als niet-blokkerende processen en scripting eenvoudig te maken. U kunt deze lokaal installeren door de stappen in Azure CLI installeren uit te voeren.

Als u zich wilt aanmelden bij uw Azure-account met de Azure CLI, gebruikt u de opdracht az login.

az login

Als u een tenant wilt selecteren om u aan te melden, gebruikt u:

az login --tenant <tenant>

Als u meerdere abonnementen hebt en een specifieke abonnementen wilt opgeven, haalt u uw abonnementslijst op met az account list en geeft u op met az account set.

az account list
az account set --subscription "<subscription name or ID>"

Zie Aan de slag met Azure CLI 2.0 voor meer informatie.

Versleuteling inschakelen op een bestaande of actieve Linux-VM

In dit scenario kunt u versleuteling inschakelen met behulp van de Resource Manager-sjabloon, PowerShell-cmdlets of CLI-opdrachten. Als u schemagegevens nodig hebt voor de extensie van de virtuele machine, raadpleegt u het artikel Over Azure Disk Encryption voor Linux-extensies .

Belangrijk

Het is verplicht om een momentopname en/of back-up te maken van een vm-exemplaar op basis van een beheerde schijf buiten en voordat u Azure Disk Encryption inschakelt. Een momentopname van de beheerde schijf kan worden gemaakt vanuit de portal of via Azure Backup. Back-ups zorgen ervoor dat een hersteloptie mogelijk is in het geval van een onverwachte fout tijdens de versleuteling. Zodra een back-up is gemaakt, kan de cmdlet Set-AzVMDiskEncryptionExtension worden gebruikt om beheerde schijven te versleutelen door de parameter -skipVmBackup op te geven. De opdracht Set-AzVMDiskEncryptionExtension mislukt voor vm's op basis van beheerde schijven totdat er een back-up is gemaakt en deze parameter is opgegeven.

Het versleutelen of uitschakelen van versleuteling kan ertoe leiden dat de virtuele machine opnieuw wordt opgestart.

Zie Versleuteling uitschakelen en de versleutelingsextensie verwijderen om de versleuteling uit te schakelen.

U kunt schijfversleuteling op uw versleutelde VHD inschakelen door het azure CLI-opdrachtregelprogramma te installeren en te gebruiken. U kunt PowerShell in uw browser gebruiken met Azure Cloud Shell, of installeren op uw lokale computer en dan gebruiken in een PowerShell-sessie. Gebruik de volgende CLI-opdrachten om versleuteling in te schakelen op bestaande of actieve Linux-VM's in Azure:

Gebruik de opdracht az vm encryption enable om versleuteling in te schakelen op een actieve virtuele machine in Azure.

  • Een actieve VM versleutelen:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Een actieve VM versleutelen met 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]
    

    Notitie

    De syntaxis voor de waarde van de parameter 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 key-encryption-key is de volledige URI voor de KEK, zoals in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Controleer of de schijven zijn versleuteld: gebruik de opdracht az vm encryption show om de versleutelingsstatus van een virtuele machine te controleren.

    az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    

Zie Versleuteling uitschakelen en de versleutelingsextensie verwijderen om de versleuteling uit te schakelen.

De functie EncryptFormatAll gebruiken voor gegevensschijven op Linux-VM's

De parameter EncryptFormatAll vermindert de tijd dat Linux-gegevensschijven moeten worden versleuteld. Partities die aan bepaalde criteria voldoen, worden opgemaakt, samen met hun huidige bestandssystemen, en vervolgens opnieuw gekoppeld aan de locatie waar ze waren vóór de uitvoering van de opdracht. Als u een gegevensschijf wilt uitsluiten die voldoet aan de criteria, kunt u deze ontkoppelen voordat u de opdracht uitvoert.

Nadat u deze opdracht hebt uitgevoerd, worden alle stations die eerder zijn gekoppeld geformatteerd en wordt de versleutelingslaag gestart boven op het nu lege station. Wanneer deze optie is geselecteerd, wordt de tijdelijke schijf die is gekoppeld aan de virtuele machine ook versleuteld. Als de tijdelijke schijf opnieuw wordt ingesteld, wordt deze opnieuw geformatteerd en opnieuw versleuteld voor de VIRTUELE machine door de Azure Disk Encryption-oplossing bij de volgende kans. Zodra de resourceschijf is versleuteld, kan de Microsoft Azure Linux-agent de resourceschijf niet beheren en het wisselbestand inschakelen, maar u kunt het wisselbestand handmatig configureren.

Waarschuwing

EncryptFormatAll mag niet worden gebruikt wanneer er gegevens nodig zijn op de gegevensvolumes van een virtuele machine. U kunt schijven uitsluiten van versleuteling door ze los te koppelen. Probeer eerst de EncryptFormatAll eerst uit op een test-VM, begrijp de functieparameter en de implicatie ervan voordat u deze op de productie-VM probeert. De optie EncryptFormatAll formatteert de gegevensschijf en alle gegevens erin gaan verloren. Controleer voordat u doorgaat of schijven die u wilt uitsluiten, correct zijn ontkoppeld.

Als u deze parameter instelt tijdens het bijwerken van de versleutelingsinstellingen, kan dit leiden tot opnieuw opstarten vóór de daadwerkelijke versleuteling. In dit geval wilt u ook de schijf verwijderen die u niet wilt formatteren uit het fstab-bestand. Op dezelfde manier moet u de partitie toevoegen die u wilt versleutelen naar het fstab-bestand voordat u de versleutelingsbewerking start.

Criteria EncryptFormatAll

De parameter doorloopt alle partities en versleutelt ze zolang ze voldoen aan alle onderstaande criteria:

  • Is geen hoofd-/besturingssysteem-/opstartpartitie
  • Is nog niet versleuteld
  • Is geen BEK-volume
  • Is geen RAID-volume
  • Is geen LVM-volume
  • Is gekoppeld

Versleutel de schijven die het RAID- of LVM-volume vormen in plaats van het RAID- of LVM-volume.

Gebruik de opdracht az vm encryption enable om versleuteling in te schakelen op een actieve virtuele machine in Azure.

  • Een actieve VM versleutelen met EncryptFormatAll:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "data" --encrypt-format-all
    

De parameter EncryptFormatAll gebruiken met Logical Volume Manager (LVM)

We raden een LVM-on-crypt-installatie aan. Zie LVM en RAID configureren op met ADE versleutelde apparaten voor gedetailleerde instructies over de LVM voor de configuratie van crypten.

Nieuwe VM's die zijn gemaakt op basis van door de klant versleutelde VHD en versleutelingssleutels

In dit scenario kunt u versleuteling inschakelen met behulp van PowerShell-cmdlets of CLI-opdrachten.

Gebruik de instructies in de Azure Disk Encryption-scripts voor het voorbereiden van vooraf versleutelde installatiekopieën die kunnen worden gebruikt in Azure. Nadat de installatiekopieën zijn gemaakt, kunt u de stappen in de volgende sectie gebruiken om een versleutelde Azure-VM te maken.

Belangrijk

Het is verplicht om een momentopname en/of back-up te maken van een vm-exemplaar op basis van een beheerde schijf buiten en voordat u Azure Disk Encryption inschakelt. Een momentopname van de beheerde schijf kan worden gemaakt vanuit de portal of Azure Backup kan worden gebruikt. Back-ups zorgen ervoor dat een hersteloptie mogelijk is in het geval van een onverwachte fout tijdens de versleuteling. Zodra een back-up is gemaakt, kan de cmdlet Set-AzVMDiskEncryptionExtension worden gebruikt om beheerde schijven te versleutelen door de parameter -skipVmBackup op te geven. De opdracht Set-AzVMDiskEncryptionExtension mislukt voor vm's op basis van beheerde schijven totdat er een back-up is gemaakt en deze parameter is opgegeven.

Het versleutelen of uitschakelen van versleuteling kan ertoe leiden dat de virtuele machine opnieuw wordt opgestart.

Azure PowerShell gebruiken om VM's te versleutelen met vooraf versleutelde VHD's

U kunt schijfversleuteling op uw versleutelde VHD inschakelen met behulp van de PowerShell-cmdlet Set-AzVMOSDisk. In het onderstaande voorbeeld ziet u enkele algemene parameters.

$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"

Versleuteling inschakelen op een nieuw toegevoegde gegevensschijf

U kunt een nieuwe gegevensschijf toevoegen met az vm disk attach of via Azure Portal. Voordat u de gegevensschijf kunt versleutelen, moet u eerst de zojuist gekoppelde gegevensschijf koppelen. U moet versleuteling van het gegevensstation aanvragen omdat het station onbruikbaar is terwijl versleuteling wordt uitgevoerd.

Als de virtuele machine eerder is versleuteld met 'Alle', moet de parameter --volume-type 'All' blijven. Alle omvat zowel besturingssysteem- als gegevensschijven. Als de virtuele machine eerder is versleuteld met een volumetype 'OS', moet de parameter --volume-type worden gewijzigd in 'Alle', zodat zowel het besturingssysteem als de nieuwe gegevensschijf worden opgenomen. Als de virtuele machine is versleuteld met alleen het volumetype 'Gegevens', kan deze 'Gegevens' blijven, zoals hieronder wordt weergegeven. Het toevoegen en koppelen van een nieuwe gegevensschijf aan een VIRTUELE machine is onvoldoende voorbereiding voor versleuteling. De zojuist gekoppelde schijf moet ook worden geformatteerd en correct worden gekoppeld binnen de VIRTUELE machine voordat versleuteling wordt ingeschakeld. Op Linux moet de schijf worden gekoppeld in /etc/fstab met een permanente blokapparaatnaam.

In tegenstelling tot de PowerShell-syntaxis vereist de CLI niet dat de gebruiker een unieke reeksversie opgeeft bij het inschakelen van versleuteling. De CLI genereert en gebruikt automatisch een eigen unieke reeksversiewaarde.

  • Gegevensvolumes van een actieve VM versleutelen:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Gegevensvolumes van een actieve VM versleutelen met behulp van 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"
    

Versleuteling uitschakelen en de versleutelingsextensie verwijderen

U kunt de Extensie voor Azure-schijfversleuteling uitschakelen en u kunt de Extensie voor Azure-schijfversleuteling verwijderen. Dit zijn twee afzonderlijke bewerkingen.

Als u ADE wilt verwijderen, wordt u aangeraden eerst versleuteling uit te schakelen en vervolgens de extensie te verwijderen. Als u de versleutelingsextensie verwijdert zonder deze uit te schakelen, worden de schijven nog steeds versleuteld. Als u versleuteling uitschakelt nadat u de extensie hebt verwijderd, wordt de extensie opnieuw geïnstalleerd (om de ontsleutelingsbewerking uit te voeren) en moet deze een tweede keer worden verwijderd.

Waarschuwing

U kunt versleuteling niet uitschakelen als de besturingssysteemschijf is versleuteld. (Besturingssysteemschijven worden versleuteld wanneer de oorspronkelijke versleutelingsbewerking volumeType=ALL of volumeType=OS opgeeft.)

Het uitschakelen van versleuteling werkt alleen wanneer gegevensschijven zijn versleuteld, maar de besturingssysteemschijf niet.

Versleuteling uitschakelen

U kunt versleuteling uitschakelen met behulp van Azure PowerShell, de Azure CLI of met een Resource Manager-sjabloon. Als u versleuteling uitschakelt, wordt de extensie niet verwijderd (zie De versleutelingsextensie verwijderen).

  • Schijfversleuteling uitschakelen met Azure PowerShell: gebruik de cmdlet Disable-AzVMDiskEncryption om de versleuteling uit te schakelen.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Versleuteling uitschakelen met de Azure CLI: Als u versleuteling wilt uitschakelen, gebruikt u de opdracht az vm encryption disable .

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
    
  • Versleuteling uitschakelen met een Resource Manager-sjabloon:

    1. Klik op Implementeren naar Azure vanuit schijfversleuteling uitschakelen voor het uitvoeren van een Linux-VM-sjabloon .
    2. Selecteer het abonnement, de resourcegroep, de locatie, de VM, het volumetype, de juridische voorwaarden en de overeenkomst.
    3. Klik op Aanschaffen om schijfversleuteling op een actieve Linux-VM uit te schakelen.

De versleutelingsextensie verwijderen

Als u uw schijven wilt ontsleutelen en de versleutelingsextensie wilt verwijderen, moet u versleuteling uitschakelen voordat u de extensie verwijdert. Zie Versleuteling uitschakelen.

U kunt de versleutelingsextensie verwijderen met behulp van Azure PowerShell of de Azure CLI.

  • Schijfversleuteling uitschakelen met Azure PowerShell: gebruik de cmdlet Remove-AzVMDiskEncryptionExtension om de versleuteling te verwijderen.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Versleuteling uitschakelen met de Azure CLI: Als u versleuteling wilt verwijderen, gebruikt u de opdracht az vm extension delete .

    az vm extension delete -g "MyVirtualMachineResourceGroup" --vm-name "MySecureVM" -n "AzureDiskEncryptionForLinux"
    

Volgende stappen