Azure Disk Encryption-Szenarien auf virtuellen Linux-Computern

Gilt für: ✔️ Linux-VMs ✔️ Flexible Skalierungsgruppen

Azure Disk Encryption für virtuelle Linux-Computer (VMs) bietet mithilfe des DM-Crypt-Features von Linux eine vollständige Datenträgerverschlüsselung des Betriebssystemdatenträgers und der Datenträger für Daten. Darüber hinaus wird bei Verwendung des EncryptFormatAll-Features Verschlüsselung des temporären Datenträgers bereitstellt.

Azure Disk Encryption ist mit Azure Key Vault integriert, um Ihnen die Steuerung und Verwaltung der Datenträger-Verschlüsselungsschlüssel und -geheimnisse zu erleichtern. Eine Übersicht über den Dienst finden Sie unter Azure Disk Encryption für Linux-VMs.

Sie können Datenträgerverschlüsselung nur auf virtuelle Computer mit unterstützten VM-Größen und Betriebssystemen anwenden. Außerdem müssen die folgenden Voraussetzungen erfüllt sein:

In allen Fällen sollten Sie eine Momentaufnahme und/oder eine Sicherung erstellen, bevor Datenträger verschlüsselt werden. Durch Sicherungen wird sichergestellt, dass eine Wiederherstellungsoption verfügbar ist, falls während der Verschlüsselung ein unerwarteter Fehler auftritt. Für VMs mit verwalteten Datenträgern ist eine Sicherung erforderlich, bevor die Verschlüsselung durchgeführt wird. Nach dem Erstellen einer Sicherung können Sie das Cmdlet Set-AzVMDiskEncryptionExtension verwenden, um verwaltete Datenträger durch das Angeben des Parameters „-skipVmBackup“ zu verschlüsseln. Weitere Informationen zum Sichern und Wiederherstellen von verschlüsselten VMs finden Sie im Artikel Azure Backup.

Warnung

  • Wenn Sie zuvor Azure Disk Encryption mit Azure AD zum Verschlüsseln eines virtuellen Computers verwendet haben, müssen Sie diese Option auch weiterhin zum Verschlüsseln Ihres virtuellen Computers verwenden. Weitere Informationen finden Sie unter Azure Disk Encryption mit Azure AD (vorheriges Release).

  • Beim Verschlüsseln von Linux-Betriebssystemvolumes sollte die VM als nicht verfügbar angesehen werden. Es wird dringend empfohlen, SSH-Anmeldungen zu vermeiden, während die Verschlüsselung ausgeführt wird, damit es nicht aufgrund von Problemen zur Blockierung geöffneter Dateien kommt, auf die während des Verschlüsselungsvorgangs zugegriffen werden muss. Verwenden Sie zum Überprüfen des Fortschritts das PowerShell-Cmdlet Get-AzVMDiskEncryptionStatus oder den CLI-Befehl vm encryption show. Es ist zu erwarten, dass dieser Prozess bei einem Betriebssystemvolume mit 30 GB einige Stunden in Anspruch nimmt, zuzüglich der Zeit für die Verschlüsselung von Datenvolumes. Die Verschlüsselungszeit für das Datenvolume hängt proportional von der Größe und Menge der Datenvolumes ab, es sei denn, es wird die Verschlüsselungsformatoption „all“ verwendet.

  • Das Deaktivieren der Verschlüsselung auf virtuellen Linux-Computern wird nur für Datenvolumes unterstützt. Dies wird nicht auf Daten- oder Betriebssystemvolumes unterstützt, wenn das Betriebssystemvolume verschlüsselt wurde.

Installieren von Tools und Herstellen einer Verbindung mit Azure

Azure Disk Encryption kann über die Azure CLI und Azure PowerShell aktiviert und verwaltet werden. Zu diesem Zweck müssen Sie die Tools lokal installieren und eine Verbindung mit Ihrem Azure-Abonnement herstellen.

Azure CLI

Die Azure CLI 2.0 ist ein Befehlszeilentool zum Verwalten von Azure-Ressourcen. Sie wurde entwickelt, um Daten flexible abzufragen, Vorgänge mit langer Ausführungsdauer als nicht blockierende Prozesse zu unterstützen und das Erstellen von Skripts zu vereinfachen. Sie können sie lokal installieren, indem Sie die Schritte unter Installieren der Azure CLI ausführen.

Um sich bei Ihrem Azure-Konto mit der Azure CLI anzumelden, verwenden Sie den Befehl az login.

az login

Verwenden Sie Folgendes, falls Sie für die Anmeldung einen Mandanten auswählen möchten:

az login --tenant <tenant>

Wenn Sie über mehrere Abonnements verfügen und ein bestimmtes Abonnement angeben möchten, können Sie Ihre Abonnementliste mit az account list abrufen und den Befehl az account set zum Angeben verwenden.

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

Weitere Informationen finden Sie unter Erste Schritte mit Azure CLI 2.0.

Azure PowerShell

Das az-Modul von Azure PowerShell bietet eine Reihe von Cmdlets, die das Azure Resource Manager-Modell für die Verwaltung von Azure-Ressourcen verwenden. Azure PowerShell kann mit Azure Cloud Shell im Browser verwendet oder auf dem lokalen Computer mithilfe der Anleitungen unter Installieren des Azure PowerShell-Moduls installiert werden.

Falls Sie die lokale Installation bereits durchgeführt haben, verwenden Sie die neueste Version des Azure PowerShell SDKs, um Azure Disk Encryption zu konfigurieren. Laden Sie die neueste Version von Azure PowerShell herunter.

Um sich mit Azure PowerShell bei Ihrem Azure-Konto anzumelden, verwenden Sie das Cmdlet Connect-AzAccount.

Connect-AzAccount

Wenn Sie über mehrere Abonnements verfügen und eines davon angeben möchten, verwenden Sie das Cmdlet Get-AzSubscription, um die Abonnements aufzulisten, gefolgt vom Cmdlet Set-AzContext:

Set-AzContext -Subscription <SubscriptionId>

Wenn Sie das Cmdlet Get-AzContext ausführen, wird überprüft, ob das richtige Abonnement ausgewählt wurde.

Um zu bestätigen, dass die Azure Disk Encryption-Cmdlets installiert sind, verwenden Sie das Cmdlet Get-Command:

Get-command *diskencryption*

Weitere Informationen finden Sie unter Erste Schritte mit Azure PowerShell.

Aktivieren der Verschlüsselung auf einem vorhandenen oder aktuell ausgeführten virtuellen Linux-Computer

In diesem Szenario können Sie die Verschlüsselung aktivieren, indem Sie die Resource Manager-Vorlage, PowerShell-Cmdlets oder CLI-Befehle verwenden. Wenn Sie Schemainformationen für die Erweiterung des virtuellen Computers benötigen, finden Sie diese im Artikel Azure Disk Encryption für Linux.

Wichtig

Es ist obligatorisch, außerhalb von Azure Disk Encryption und vor der Aktivierung von Azure Disk Encryption eine Momentaufnahme bzw. Sicherung einer VM zu erstellen, die auf einem verwalteten Datenträger basiert. Sie können über das Portal eine Momentaufnahme des verwalteten Datenträgers erstellen oder Azure Backup verwenden. Mit Sicherungen ist dafür gesorgt, dass eine Wiederherstellungsoption verfügbar ist, falls während der Verschlüsselung ein unerwarteter Fehler auftritt. Nach dem Erstellen einer Sicherung kann das Cmdlet „Set-AzVMDiskEncryptionExtension“ verwendet werden, um verwaltete Datenträger durch das Angeben des Parameters „-skipVmBackup“ zu verschlüsseln. Der Befehl „Set-AzVMDiskEncryptionExtension“ führt für VMs, die auf verwalteten Datenträgern basieren, zu einem Fehler, bis eine Sicherung erstellt und dieser Parameter angegeben wurde.

Das Verschlüsseln bzw. Deaktivieren der Verschlüsselung kann dazu führen, dass die VM neu gestartet wird.

Informationen zum Deaktivieren der Verschlüsselung finden Sie unter Deaktivieren der Verschlüsselung und Entfernen der Verschlüsselungserweiterung.

Aktivieren der Verschlüsselung auf einem vorhandenen oder aktuell ausgeführten virtuellen Linux-Computer mit der Azure CLI

Sie können die Datenträgerverschlüsselung auf Ihrer verschlüsselten VHD aktivieren, indem Sie das Befehlszeilentool Azure CLI installieren und verwenden. Azure PowerShell kann mit Azure Cloud Shell im Browser verwendet oder auf dem lokalen Computer installiert und in einer beliebigen PowerShell-Sitzung verwendet werden. Verwenden Sie die folgenden CLI-Befehle, um die Verschlüsselung auf vorhandenen oder aktuell ausgeführten virtuellen Linux-Computern in Azure zu aktivieren:

Verwenden Sie den Befehl az vm encryption enable, um die Verschlüsselung auf einem aktuell ausgeführten virtuellen Computer in Azure zu aktivieren.

  • Verschlüsseln eines ausgeführten virtuellen Computers:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Verschlüsseln eines ausgeführten virtuellen Computers mit 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]
    

    Hinweis

    Die Syntax für den Wert des Parameters disk-encryption-keyvault ist die vollständige Bezeichnerzeichenfolge: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    . Die Syntax für den Wert des Parameters key-encryption-key ist der vollständige URI für den KEK wie in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Überprüfen der Datenträgerverschlüsselung: Verwenden Sie den Befehl az vm encryption show, um den Verschlüsselungsstatus eines virtuellen Computers zu überprüfen.

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

Informationen zum Deaktivieren der Verschlüsselung finden Sie unter Deaktivieren der Verschlüsselung und Entfernen der Verschlüsselungserweiterung.

Aktivieren der Verschlüsselung auf einem vorhandenen oder aktuell ausgeführten virtuellen Linux-Computer mit PowerShell

Verwenden Sie das Cmdlet Set-AzVMDiskEncryptionExtension, um die Verschlüsselung auf einem aktuell ausgeführten virtuellen Computer in Azure zu aktivieren. Erstellen Sie eine Momentaufnahme, und/oder sichern Sie den virtuellen Computer mit Azure Backup, bevor Datenträger verschlüsselt werden. Der Parameter „-skipVmBackup“ ist bereits in den PowerShell-Skripts zum Verschlüsseln einer ausgeführten Linux-VM angegeben.

  • Verschlüsseln eines ausgeführten virtuellen Computers: Das folgende Skript initialisiert Ihre Variablen und führt das Cmdlet „Set-AzVMDiskEncryptionExtension“ aus. Die Ressourcengruppe, der virtuelle Computer und der Schlüsseltresor wurden bereits als Voraussetzungen erstellt. Ersetzen Sie „MyVirtualMachineResourceGroup“, „MySecureVM“ und „MySecureVault“ durch Ihre eigenen Werte. Ändern Sie den Parameter „-VolumeType“, um anzugeben, welche Datenträger Sie verschlüsseln.

     $KVRGname = 'MyKeyVaultResourceGroup';
     $VMRGName = 'MyVirtualMachineResourceGroup';
     $vmName = 'MySecureVM';
     $KeyVaultName = 'MySecureVault';
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
     $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
     $KeyVaultResourceId = $KeyVault.ResourceId;
     $sequenceVersion = [Guid]::NewGuid();  
    
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    
  • Verschlüsseln eines ausgeführten virtuellen Computers mit KEK: Unter Umständen müssen Sie den Parameter „-VolumeType“ hinzufügen, wenn Sie normale Datenträger und nicht den Betriebssystemdatenträger verschlüsseln.

     $KVRGname = 'MyKeyVaultResourceGroup';
     $VMRGName = 'MyVirtualMachineResourceGroup';
     $vmName = 'MyExtraSecureVM';
     $KeyVaultName = 'MySecureVault';
     $keyEncryptionKeyName = 'MyKeyEncryptionKey';
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
     $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
     $KeyVaultResourceId = $KeyVault.ResourceId;
     $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
     $sequenceVersion = [Guid]::NewGuid();  
    
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    

    Hinweis

    Die Syntax für den Wert des Parameters disk-encryption-keyvault ist die vollständige Bezeichnerzeichenfolge: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    . Die Syntax für den Wert des Parameters key-encryption-key ist der vollständige URI für den KEK wie in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

  • Überprüfen der Datenträgerverschlüsselung: Verwenden Sie das Cmdlet Get-AzVmDiskEncryptionStatus, um den Verschlüsselungsstatus eines virtuellen Computers zu überprüfen.

    Get-AzVmDiskEncryptionStatus -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM'
    

Informationen zum Deaktivieren der Verschlüsselung finden Sie unter Deaktivieren der Verschlüsselung und Entfernen der Verschlüsselungserweiterung.

Aktivieren der Verschlüsselung auf einem vorhandenen oder aktuell ausgeführten virtuellen Linux-Computer mit einer Vorlage

Sie können die Datenträgerverschlüsselung auf einer vorhandenen oder aktuell ausgeführten virtuellen Linux-VM in Azure aktivieren, indem Sie die Resource Manager-Vorlage verwenden.

  1. Klicken Sie in der Azure-Schnellstartvorlage auf Deploy to Azure (In Azure bereitstellen).

  2. Wählen Sie das Abonnement, die Ressourcengruppe, den Ressourcengruppenstandort, die Parameter, die rechtlichen Bedingungen und die Vereinbarung aus. Klicken Sie auf Erstellen, um die Verschlüsselung auf dem vorhandenen oder aktuell ausgeführten virtuellen Computer zu aktivieren.

Die folgende Tabelle enthält Resource Manager-Vorlagenparameter für vorhandene oder ausgeführte virtuelle Computer:

Parameter BESCHREIBUNG
vmName Der Name des virtuellen Computers, der den Verschlüsselungsvorgang ausführt.
keyVaultName Der Name des Schlüsseltresors, in den der Verschlüsselungsschlüssel hochgeladen werden soll. Sie können ihn mit dem Cmdlet (Get-AzKeyVault -ResourceGroupName <MyKeyVaultResourceGroupName>). Vaultname oder dem Azure CLI-Befehl az keyvault list --resource-group "MyKeyVaultResourceGroupName" abrufen.
keyVaultResourceGroup Der Name der Ressourcengruppe, die den Schlüsseltresor enthält.
keyEncryptionKeyURL Die URL des KEK, der zum Verschlüsseln des Verschlüsselungsschlüssels verwendet wird. Dieser Parameter ist optional, wenn Sie in der Dropdownliste „UseExistingKek“ die Option nokek auswählen. Wenn Sie in der Dropdownliste „UseExistingKek“ die Option kek auswählen, müssen Sie den Wert keyEncryptionKeyURL eingeben.
volumeType Der Typ des Volumes, auf dem der Verschlüsselungsvorgang durchgeführt wird. Gültige Werte sind OS, Data und All.
forceUpdateTag Dient zum Übergeben eines eindeutigen Werts (beispielsweise einer GUID), wenn die Ausführung des Vorgangs erzwungen werden muss.
location Der Standort für alle Ressourcen.

Weitere Informationen zum Konfigurieren zur Datenträgerverschlüsselungsvorlage für Linux-VMs finden Sie unter Azure Disk Encryption für Linux-VMs.

Informationen zum Deaktivieren der Verschlüsselung finden Sie unter Deaktivieren der Verschlüsselung und Entfernen der Verschlüsselungserweiterung.

Verwenden des Features EncryptFormatAll für Datenträger auf virtuellen Linux-Computern

Mit dem Parameter EncryptFormatAll wird die Zeit reduziert, die zum Verschlüsseln von Linux-Datenträgern benötigt wird. Partitionen, die bestimmte Kriterien erfüllen, werden formatiert (zusammen mit ihrem aktuellen Dateisystem) und dann erneut an dem Speicherort eingebunden, an dem sie sich vor der Befehlsausführung befunden haben. Wenn Sie einen Datenträger ausschließen möchten, der die Kriterien erfüllt, können Sie die Bereitstellung vor dem Ausführen des Befehls aufheben.

Nach der Ausführung dieses Befehls werden alle zuvor eingebundenen Laufwerke formatiert, und die Verschlüsselungsschicht wird über dem jetzt leeren Laufwerk gestartet. Bei Auswahl dieser Option wird auch der temporäre Datenträger verschlüsselt, der an die VM angefügt ist. Nachdem der temporäre Datenträger zurückgesetzt wurde, wird er erneut formatiert und bei der nächsten Gelegenheit von der Azure Disk Encryption-Lösung für die VM erneut verschlüsselt. Nachdem der Ressourcendatenträger verschlüsselt wurde, kann der Microsoft Azure-Agent für Linux den Ressourcendatenträger nicht mehr verwalten und die Auslagerungsdatei nicht mehr aktivieren. Sie können die Auslagerungsdatei jedoch manuell konfigurieren.

Warnung

EncryptFormatAll sollte nicht verwendet werden, wenn sich auf den Datenvolumes der VM erforderliche Daten befinden. Sie können Datenträger von der Verschlüsselung ausschließen, indem Sie deren Bereitstellung aufheben. Sie sollten EncryptFormatAll zuerst auf einer Test-VM ausprobieren und sich mit dem Featureparameter und dessen Auswirkungen vertraut machen, bevor Sie das Feature auf einer VM für die Produktion einsetzen. Mit der EncryptFormatAll-Option wird der Datenträger formatiert, und alle darauf befindlichen Daten gehen verloren. Stellen Sie vor dem Fortfahren sicher, dass die Bereitstellung der auszuschließenden Datenträger ordnungsgemäß aufgehoben wird.

Wenn Sie diesen Parameter festlegen, während Sie die Verschlüsselungseinstellungen aktualisieren, wird vor der eigentlichen Verschlüsselung ggf. ein Neustart durchgeführt. In diesem Fall sollten Sie auch den Datenträger, der formatiert werden soll, aus der FSTAB-Datei entfernen. Entsprechend sollten Sie die Partition, die formatiert und verschlüsselt werden soll, der FSTAB-Datei hinzufügen, bevor Sie den Verschlüsselungsvorgang initiieren.

EncryptFormatAll-Kriterien

Der Parameter durchläuft alle Partitionen und verschlüsselt sie, solange alle hier aufgeführten Kriterien erfüllt sind:

  • Ist keine Stamm-, Betriebssystem- oder Startpartition
  • Ist nicht bereits verschlüsselt
  • Ist kein BEK-Volume
  • Ist kein RAID-Volume
  • Ist kein LVM-Volume
  • Ist bereitgestellt

Verschlüsselt die Datenträger, aus denen sich das RAID- oder LVM-Volume zusammensetzt, nicht das RAID- oder LVM-Volume selbst.

Verwenden des Parameters EncryptFormatAll mit der Azure CLI

Verwenden Sie den Befehl az vm encryption enable, um die Verschlüsselung auf einem aktuell ausgeführten virtuellen Computer in Azure zu aktivieren.

  • Verschlüsseln eines ausgeführten virtuellen Computers unter Verwendung von „EncryptFormatAll“:

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

Verwenden des Parameters EncryptFormatAll mit einem PowerShell-Cmdlet

Verwenden Sie das Cmdlet Set-AzVMDiskEncryptionExtension mit dem Parameter „EncryptFormatAll“.

Verschlüsseln eines ausgeführten virtuellen Computers unter Verwendung von „EncryptFormatAll“: Als Beispiel werden mit dem unten angegebenen Skript Ihre Variablen initialisiert und das Cmdlet „Set-AzVMDiskEncryptionExtension“ mit dem Parameter „EncryptFormatAll“ ausgeführt. Die Ressourcengruppe, der virtuelle Computer und der Schlüsseltresor wurden bereits als Voraussetzungen erstellt. Ersetzen Sie „MyVirtualMachineResourceGroup“, „MySecureVM“ und „MySecureVault“ durch Ihre eigenen Werte.

$KVRGname = 'MyKeyVaultResourceGroup';
$VMRGName = 'MyVirtualMachineResourceGroup';
$vmName = 'MySecureVM';
$KeyVaultName = 'MySecureVault';
$KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
$diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
$KeyVaultResourceId = $KeyVault.ResourceId;

Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType "data" -EncryptFormatAll

Verwenden des Parameters EncryptFormatAll mit Logical Volume Manager (LVM)

Wir empfehlen Ihnen, ein LVM-on-crypt-Setup zu verwenden. Ersetzen Sie für alle folgenden Beispiele den Gerätepfad und die Bereitstellungspunkte durch die Werte für Ihren jeweiligen Anwendungsfall. Dieses Setup kann wie folgt durchgeführt werden:

  1. Fügen Sie die Datenträger hinzu, aus denen sich die VM zusammensetzt.

  2. Formatieren Sie diese Datenträger, stellen Sie sie bereit, und fügen Sie sie der FSTAB-Datei hinzu.

  3. Wählen Sie einen Partitionsstandard aus, erstellen Sie eine Partition, die das gesamte Laufwerk umfasst, und formatieren Sie dann die Partition. Hier verwenden wir von Azure generierte symlinks. Durch die Verwendung von symlinks werden Probleme in Bezug auf sich ändernde Gerätenamen vermieden. Weitere Informationen finden Sie im Artikel zur Behandlung von Problemen mit Gerätenamen.

    parted /dev/disk/azure/scsi1/lun0 mklabel gpt
    parted -a opt /dev/disk/azure/scsi1/lun0 mkpart primary ext4 0% 100%
    
    mkfs -t ext4 /dev/disk/azure/scsi1/lun0-part1
    
  4. Stellen Sie die Datenträger bereit:

    mount /dev/disk/azure/scsi1/lun0-part1 /mnt/mountpoint
    

    Fügen Sie zur fstab-Datei hinzu:

    echo "/dev/disk/azure/scsi1/lun0-part1 /mnt/mountpoint ext4 defaults,nofail 0 2" >> /etc/fstab
    
  5. Führen Sie das Azure PowerShell-Cmdlet Set-AzVMDiskEncryptionExtension mir „-EncryptFormatAll“ aus, um diese Datenträger zu verschlüsseln.

    $KeyVault = Get-AzKeyVault -VaultName "MySecureVault" -ResourceGroupName "MySecureGroup"
    
    Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -EncryptFormatAll -SkipVmBackup -VolumeType Data
    

    Wenn Sie einen Schlüssel-Verschlüsselungsschlüssel (Key Encryption Key, KEK) verwenden möchten, übergeben Sie den URI Ihres KEK und die ResourceID Ihres Schlüsseltresors an die Parameter „-KeyEncryptionKeyUrl“ bzw. „-KeyEncryptionKeyVaultId“:

    $KeyVault = Get-AzKeyVault -VaultName "MySecureVault" -ResourceGroupName "MySecureGroup"
    $KEKKeyVault = Get-AzKeyVault -VaultName "MyKEKVault" -ResourceGroupName "MySecureGroup"
    $KEK = Get-AzKeyVaultKey -VaultName "myKEKVault" -KeyName "myKEKName"
    
    Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl $KeyVault.VaultUri -DiskEncryptionKeyVaultId $KeyVault.ResourceId -EncryptFormatAll -SkipVmBackup -VolumeType Data -KeyEncryptionKeyUrl $$KEK.id -KeyEncryptionKeyVaultId $KEKKeyVault.ResourceId
    
  6. Richten Sie LVM für diese neuen Datenträger ein. Beachten Sie, dass die verschlüsselten Laufwerke entsperrt werden, nachdem das Starten der VM abgeschlossen wurde. Die LVM-Bereitstellung muss nachfolgend also auch verzögert werden.

Neue virtuelle Computer, die aus einer vom Kunden verschlüsselten VHD und mit Verschlüsselungsschlüsseln erstellt wurden

In diesem Szenario können Sie die Verschlüsselung mithilfe von PowerShell-Cmdlets oder CLI-Befehlen aktivieren.

Verwenden Sie die Anleitungen in den Azure Disk Encryption-Skripts zum Vorbereiten von vorverschlüsselten Images, die in Azure verwendet werden können. Nach dem Erstellen des Images können Sie die Schritte im nächsten Abschnitt ausführen, um eine verschlüsselte Azure-VM zu erstellen.

Wichtig

Es ist obligatorisch, außerhalb von Azure Disk Encryption und vor der Aktivierung von Azure Disk Encryption eine Momentaufnahme bzw. Sicherung einer VM zu erstellen, die auf einem verwalteten Datenträger basiert. Sie können über das Portal eine Momentaufnahme des verwalteten Datenträgers erstellen oder Azure Backup verwenden. Mit Sicherungen ist dafür gesorgt, dass eine Wiederherstellungsoption verfügbar ist, falls während der Verschlüsselung ein unerwarteter Fehler auftritt. Nach dem Erstellen einer Sicherung kann das Cmdlet „Set-AzVMDiskEncryptionExtension“ verwendet werden, um verwaltete Datenträger durch das Angeben des Parameters „-skipVmBackup“ zu verschlüsseln. Der Befehl „Set-AzVMDiskEncryptionExtension“ führt für VMs, die auf verwalteten Datenträgern basieren, zu einem Fehler, bis eine Sicherung erstellt und dieser Parameter angegeben wurde.

Das Verschlüsseln bzw. Deaktivieren der Verschlüsselung kann dazu führen, dass die VM neu gestartet wird.

Verwenden von Azure PowerShell zum Verschlüsseln von virtuellen Computern mit vorverschlüsselten VHDs

Sie können die Datenträgerverschlüsselung auf einer verschlüsselten VHD aktivieren, indem Sie das PowerShell-Cmdlet Set-AzVMOSDisk verwenden. Im folgenden Beispiel sind einige häufig verwendete Parameter angegeben.

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

Aktivieren der Verschlüsselung auf einem neu hinzugefügten Datenträger

Sie können einen neuen Datenträger hinzufügen, indem Sie den Befehl az vm disk attach oder das Azure-Portal verwenden. Bevor Sie die Verschlüsselung durchführen können, müssen Sie den neu angefügten Datenträger bereitstellen. Sie müssen die Verschlüsselung des Datenträgers anfordern, da das Laufwerk nicht genutzt werden kann, während die Verschlüsselung durchgeführt wird.

Aktivieren der Verschlüsselung für einen neu hinzugefügten Datenträger per Azure CLI

Wenn der virtuelle Computer zuvor mit „All“ verschlüsselt war, sollte der Parameter --volume-type auf „All“ belassen werden. Bei „All“ sind sowohl Betriebssystem als auch Datenträger enthalten. Wenn der virtuelle Computer zuvor mit dem Volumetyp „OS“ verschlüsselt war, sollte der Parameter --volume-type in „All“ geändert werden, damit sowohl das Betriebssystem als auch der neue Datenträger enthalten sind. Wenn der virtuelle Computer nur mit dem Volumetyp „Data“ verschlüsselt war, kann er auf „Data“ belassen werden, wie es nachfolgend gezeigt ist. Das Hinzufügen und Anfügen eines neuen Datenträgers an einen virtuellen Computer ist keine ausreichende Vorbereitung für die Verschlüsselung. Der neu angefügte Datenträger muss außerdem formatiert und vor dem Aktivieren der Verschlüsselung ordnungsgemäß im virtuellen Computer bereitgestellt werden. Unter Linux muss der Datenträger in „/etc/fstab“ mit einem persistenten Blockgerätenamen bereitgestellt werden.

Im Gegensatz zur PowerShell-Syntax erfordert die Befehlszeilenschnittstelle vom Benutzer keine Angabe einer eindeutigen Sequenzversion beim Aktivieren der Verschlüsselung. Die Befehlszeilenschnittstelle wird automatisch generiert und verwendet einen eigenen eindeutigen Sequenzversionswert.

  • Verschlüsseln von Datenvolumes eines ausgeführten virtuellen Computers:

    az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Verschlüsseln von Datenvolumes eines ausgeführten virtuellen Computers mit 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"
    

Aktivieren der Verschlüsselung für einen neu hinzugefügten Datenträger mit Azure PowerShell

Bei Verwendung von PowerShell zum Verschlüsseln eines neuen Datenträgers für Linux muss eine neue Sequenzversion angegeben werden. Die Sequenzversion muss eindeutig sein. Mit dem unten angegebenen Skript wird eine GUID für die Sequenzversion generiert. Erstellen Sie eine Momentaufnahme, und/oder sichern Sie den virtuellen Computer mit Azure Backup, bevor Datenträger verschlüsselt werden. Der Parameter „-skipVmBackup“ ist bereits in den PowerShell-Skripts zum Verschlüsseln eines neu hinzugefügten Datenträgers angegeben.

  • Verschlüsseln von Datenvolumes eines ausgeführten virtuellen Computers: Das folgende Skript initialisiert Ihre Variablen und führt das Cmdlet „Set-AzVMDiskEncryptionExtension“ aus. Die Ressourcengruppe, der virtuelle Computer und der Schlüsseltresor wurden bereits bei der Vorbereitung erstellt. Ersetzen Sie „MyVirtualMachineResourceGroup“, „MySecureVM“ und „MySecureVault“ durch Ihre eigenen Werte. Zulässige Werte für den Parameter „-VolumeType“ sind „All“, „OS“ und „Data“. Wenn der virtuelle Computer zuvor mit dem Volumetyp „OS“ oder „All“ verschlüsselt war, sollte der Parameter --Volume-type in „All“ geändert werden, damit sowohl das Betriebssystem als auch der neue Datenträger enthalten sind.

    $KVRGname = 'MyKeyVaultResourceGroup';
    $VMRGName = 'MyVirtualMachineResourceGroup';
    $vmName = 'MySecureVM';
    $KeyVaultName = 'MySecureVault';
    $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
    $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
    $KeyVaultResourceId = $KeyVault.ResourceId;
    $sequenceVersion = [Guid]::NewGuid();
    
    Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion -skipVmBackup;
    
  • Verschlüsseln von Datenvolumes eines ausgeführten virtuellen Computers mit KEK: Zulässige Werte für den Parameter „-VolumeType“ sind „All“, „OS“ und „Data“. Wenn der virtuelle Computer zuvor mit dem Volumetyp „OS“ oder „All“ verschlüsselt war, sollte der Parameter „-VolumeType“ in „All“ geändert werden, damit sowohl das Betriebssystem als auch der neue Datenträger enthalten sind.

     $KVRGname = 'MyKeyVaultResourceGroup';
     $VMRGName = 'MyVirtualMachineResourceGroup';
     $vmName = 'MyExtraSecureVM';
     $KeyVaultName = 'MySecureVault';
     $keyEncryptionKeyName = 'MyKeyEncryptionKey';
     $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
     $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
     $KeyVaultResourceId = $KeyVault.ResourceId;
     $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
     $sequenceVersion = [Guid]::NewGuid();
    
     Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion -skipVmBackup;
    

    Hinweis

    Die Syntax für den Wert des Parameters disk-encryption-keyvault ist die vollständige Bezeichnerzeichenfolge: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
    Die Syntax für den Wert des Parameters key-encryption-key ist der vollständige URI für den KEK wie in: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id]

Deaktivieren der Verschlüsselung und Entfernen der Verschlüsselungserweiterung

Sie können die Azure Disk Encryption-Erweiterung deaktivieren und Sie können die Azure Disk Encryption-Erweiterung entfernen. Dies sind zwei unterschiedliche Vorgänge.

Um ADE zu entfernen, wird empfohlen, zuerst die Verschlüsselung zu deaktivieren und dann die Erweiterung zu entfernen. Wenn Sie die Verschlüsselungserweiterung entfernen, ohne sie zu deaktivieren, werden die Datenträger weiterhin verschlüsselt. Wenn Sie die Verschlüsselung nach dem Entfernen der Erweiterung deaktivieren, wird die Erweiterung neu installiert (um den Entschlüsselungsvorgang auszuführen) und muss ein zweites Mal entfernt werden.

Warnung

Sie können die Verschlüsselung nicht deaktivieren, wenn der Betriebssystemdatenträger verschlüsselt ist. (Betriebssystemdatenträger werden verschlüsselt, wenn der ursprüngliche Verschlüsselungsvorgang volumeType=ALL oder volumeType=OS angibt.)

Das Deaktivieren der Verschlüsselung funktioniert nur, wenn Datenträger verschlüsselt sind, der Betriebssystemdatenträger jedoch nicht.

Deaktivieren der Verschlüsselung

Sie können die Verschlüsselung mit Azure PowerShell, der Azure CLI oder einer Resource Manager-Vorlage deaktivieren. Wenn Sie die Verschlüsselung deaktivieren, wird die Erweiterung nicht entfernt (siehe Entfernen der Verschlüsselungserweiterung).

  • Deaktivieren der Datenträgerverschlüsselung mit Azure PowerShell: Verwenden Sie das Cmdlet Disable-AzVMDiskEncryption, um die Verschlüsselung zu deaktivieren.

    Disable-AzVMDiskEncryption -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM" -VolumeType "data"
    
  • Deaktivieren der Verschlüsselung mit der Azure CLI: Verwenden Sie den Befehl az vm encryption disable, um die Verschlüsselung zu deaktivieren.

    az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type "data"
    
  • Deaktivieren der Verschlüsselung mit einer Resource Manager-Vorlage:

    1. Klicken Sie in der Vorlage unter Disable disk encryption on running Linux VM (Deaktivieren der Datenträgerverschlüsselung auf einer ausgeführten Windows-VM) auf Deploy to Azure (In Azure bereitstellen).
    2. Wählen Sie das Abonnement, die Ressourcengruppe, den Standort, die VM, den Volumetyp, die rechtlichen Bedingungen und die Vereinbarung aus.
    3. Klicken Sie auf Purchase (Kaufen), um die Datenträgerverschlüsselung auf einer ausgeführten Linux-VM zu deaktivieren.

Entfernen Sie die Verschlüsselungserweiterung.

Wenn Sie Ihre Datenträger entschlüsseln und die Verschlüsselungserweiterung entfernen möchten, müssen Sie die Verschlüsselung deaktivieren, bevor Sie die Erweiterung entfernen; siehe Verschlüsselung deaktivieren.

Sie können die Verschlüsselungserweiterung mit Azure PowerShell oder der Azure CLI entfernen.

  • Deaktivieren der Datenträgerverschlüsselung mit Azure PowerShell: Verwenden Sie das Cmdlet Remove-AzVMDiskEncryptionExtension, um die Verschlüsselung zu entfernen.

    Remove-AzVMDiskEncryptionExtension -ResourceGroupName "MyVirtualMachineResourceGroup" -VMName "MySecureVM"
    
  • Deaktivieren der Verschlüsselung mit der Azure CLI: Verwenden Sie den Befehl az vm extension delete, um die Verschlüsselung zu entfernen.

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

Nicht unterstützte Szenarien

Die folgenden Linux-Szenarien,- Features und -Technologien werden von Azure Disk Encryption nicht unterstützt:

  • Verschlüsseln von virtuellen Computern der Ebene „Standard“ und von virtuellen Computern, die mithilfe der klassischen Erstellungsmethode für virtuelle Computer erstellt wurden
  • Deaktivieren der Verschlüsselung für ein Betriebssystemlaufwerk oder Datenlaufwerk auf einem virtuellen Linux-Computer, wenn das Betriebssystemlaufwerk verschlüsselt ist
  • Verschlüsseln des Betriebssystemlaufwerks für Linux-VM-Skalierungsgruppen
  • Verschlüsseln benutzerdefinierter Images auf virtuellen Linux-Computern
  • Integration mit einem lokalen Schlüsselverwaltungssystem
  • Azure Files (freigegebenes Dateisystem)
  • Network File System (NFS)
  • Dynamische Volumes
  • Kurzlebige Betriebssystemdatenträger
  • Verschlüsselung freigegebener/verteilter Dateisysteme, einschließlich der folgenden, aber nicht auf diese begrenzt: DFS, GFS, DRDB und CephFS.
  • Verschieben eines verschlüsselten virtuellen Computers in ein anderes Abonnement oder in eine andere Region
  • Erstellen eines Images oder einer Momentaufnahme einer verschlüsselten VM und dessen oder deren Verwendung zum Bereitstellen weiterer VMs
  • Kernel-Absturzabbild (kdump).
  • Oracle-ACFS (ASM-Clusterdateisystem).
  • NVMe-Datenträger, so wie auf die auf High Performance Computing VM-Größen oder Speicheroptimierte VM-Größen.
  • Eine VM mit „geschachtelten Bereitstellungspunkten“, also mehrere Bereitstellungspunkte in einem einzelnen Pfad (z. B. „/1stmountpoint/data/2stmountpoint“).
  • Eine VM mit einem Datenlaufwerk, das über einem Betriebssystemordner eingebunden ist
  • Eine VM, auf der ein logisches Rootvolume (Betriebssystemdatenträger) mithilfe eines Datenträgers für Daten erweitert wurde.
  • VMs der M-Serie mit Datenträgern mit Schreibbeschleunigung
  • Anwenden von ADE auf eine VM, die mit serverseitiger Verschlüsselung mit kundenseitig verwalteten Schlüsseln (SSE + CMK) verschlüsselte Datenträger aufweist. Das Anwenden von SSE + CMK auf einen Datenträger auf einer mit ADE verschlüsselten VM ist ebenfalls ein nicht unterstütztes Szenario.
  • Migrieren einer VM, die mit ADE verschlüsselt ist oder jemals mit ADE verschlüsselt war, zur serverseitigen Verschlüsselung mit kundenseitig verwalteten Schlüsseln.
  • Verschlüsseln von VMs in Failoverclustern.
  • Verschlüsselung von Azure Ultra-Datenträgern

Nächste Schritte