Aktivieren der End-to-End-Verschlüsselung mithilfe der Verschlüsselung auf dem Host mit Azure PowerShell

Gilt für: ✔️ Windows-VMs

Wenn Sie die Verschlüsselung auf dem Host aktivieren, werden die auf dem VM-Host gespeicherten Daten ruhend verschlüsselt und verschlüsselt an den Speicherdienst übermittelt. Informationen zum Konzept der Verschlüsselung auf dem Host sowie zu anderen Verschlüsselungstypen für verwaltete Datenträger finden Sie unter Verschlüsselung auf dem Host: End-to-End-Verschlüsselung für Ihre VM-Daten.

Beschränkungen

  • Kann nicht auf virtuellen Computern (VMs) oder Skalierungssätzen für virtuelle Computer aktiviert werden, bei denen derzeit oder jemals Azure Disk Encryption aktiviert war.
  • Azure Disk Encryption kann nicht auf Datenträgern aktiviert werden, auf denen Verschlüsselung auf dem Host aktiviert ist.
  • Die Verschlüsselung kann für vorhandene VM-Skalierungsgruppen aktiviert werden. Es werden jedoch nur neue VMs automatisch verschlüsselt, die nach dem Aktivieren der Verschlüsselung erstellt wurden.
  • Bei vorhandenen VMs muss deren Zuordnung aufgehoben und sie müssen erneut zugeordnet werden, damit sie verschlüsselt werden können.

Die folgenden Einschränkungen gelten nur für Ultra Disks und Premium SSD v2:

  • Festplatten mit einer Sektorgröße von 512e müssen nach dem 13. Mai 2023 erstellt worden sein.

Unterstützte VM-Größen

Die vollständige Liste unterstützter VM-Größen kann programmgesteuert per Pull abgerufen werden. Informationen dazu, wie Sie sie programmgesteuert abrufen können, finden Sie im Abschnitt Ermitteln der unterstützten VM-Größen. Beim Upgrade der VM-Größe wird überprüft, ob die neue VM-Größe das EncryptionAtHost Feature unterstützt.

Voraussetzungen

Sie müssen die Funktion für Ihr Abonnement aktivieren, bevor Sie die Eigenschaft EncryptionAtHost für Ihre VM oder Skalierungsgruppe für virtuelle Maschinen verwenden. Führen Sie die folgenden Schritte aus, um das Feature für Ihr Abonnement zu aktivieren:

  1. Führen Sie den folgenden Befehl aus, um das Feature für Ihr Abonnement zu registrieren.

     Register-AzProviderFeature -FeatureName "EncryptionAtHost" -ProviderNamespace "Microsoft.Compute" 
    
  2. Überprüfen Sie mithilfe des folgenden Befehls, ob der Registrierungsstatus „Registriert“ lautet (dies dauert einige Minuten), bevor Sie das Feature ausprobieren.

     Get-AzProviderFeature -FeatureName "EncryptionAtHost" -ProviderNamespace "Microsoft.Compute"  
    

Erstellen eines Azure Key Vault- und Datenträgerverschlüsselungssatzes

Hinweis

Dieser Abschnitt gilt nur für Konfigurationen mit kundenseitig verwalteten Schlüsseln. Wenn Sie plattformverwaltete Schlüssel verwenden, können Sie zu Erstellen und Aktualisieren von VMs und VM-Skalierungsgruppen mit Verschlüsselung auf Hostebene springen.

Wenn Sie das Feature aktivieren, richten Sie eine Azure Key Vault und einen Datenträgerverschlüsselungssatz ein, falls sie noch nicht vorhanden sind.

  1. Installieren Sie die neueste Azure PowerShell-Version, und melden Sie sich mit Ihrem Azure Konto anConnect-AzAccount.

  2. Erstellen Sie eine Azure Key Vault-Instanz und den Verschlüsselungsschlüssel.

    Beim Erstellen der Key Vault-Instanz müssen Sie den Schutz vor endgültigem Löschen aktivieren. Der Schutz vor endgültigem Löschen stellt sicher, dass ein gelöschter Schlüssel erst nach Ablauf der Aufbewahrungsdauer dauerhaft gelöscht werden kann. Diese Einstellungen schützen Sie vor dem Verlust von Daten durch versehentliches Löschen. Diese Einstellungen sind obligatorisch, wenn ein Schlüsseltresor für die Verschlüsselung verwalteter Datenträger verwendet wird.

    $ResourceGroupName="yourResourceGroupName"
    $LocationName="westcentralus"
    $keyVaultName="yourKeyVaultName"
    $keyName="yourKeyName"
    $keyDestination="Software"
    $diskEncryptionSetName="yourDiskEncryptionSetName"
    
    $keyVault = New-AzKeyVault -Name $keyVaultName `
    -ResourceGroupName $ResourceGroupName `
    -Location $LocationName `
    -EnablePurgeProtection
    
    $key = Add-AzKeyVaultKey -VaultName $keyVaultName `
          -Name $keyName `
          -Destination $keyDestination
    
    Set-AzKeyVaultKeyRotationPolicy -VaultName $keyVaultName -KeyName $keyName -ExpiresIn P2Y -KeyRotationLifetimeAction @{Action="Rotate";TimeBeforeExpiry = "P18M"}
    
  3. Erstellen Sie einen Datenträgerverschlüsselungssatz. Dieses Skript legt RotationToLatestKeyVersionEnabled auf $true fest, um die automatische Drehung des Schlüssels zu ermöglichen. Wenn Sie die automatische Rotation aktivieren, aktualisiert das System automatisch alle verwalteten Datenträger, Momentaufnahmen und Images, die auf den Datenträgerverschlüsselungssatz verweisen, sodass die neue Version des Schlüssels innerhalb einer Stunde verwendet wird.

    $desConfig=New-AzDiskEncryptionSetConfig -Location $LocationName `
        -SourceVaultId $keyVault.ResourceId `
        -KeyUrl $key.Key.Kid `
        -IdentityType SystemAssigned `
        -RotationToLatestKeyVersionEnabled $true
    
    $des=New-AzDiskEncryptionSet -Name $diskEncryptionSetName `
           -ResourceGroupName $ResourceGroupName `
           -InputObject $desConfig
    
  4. Gewähren Sie dem Datenträgerverschlüsselungssatz Zugriff auf den Schlüsseltresor.

    Hinweis

    Es kann einige Minuten dauern, bis Azure die Identität Ihres Datenträgerverschlüsselungssatzes in Microsoft Entra ID erstellt. Wenn Sie bei der Ausführung des folgenden Befehls einen ähnlichen Fehler wie „Active Directory-Objekt kann nicht gefunden werden“ erhalten, warten Sie einige Minuten, und versuchen Sie es erneut.

    Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ObjectId $des.Identity.PrincipalId -PermissionsToKeys wrapkey,unwrapkey,get
    

Verwenden Sie einen Schlüsseltresor in einem anderen Abonnement

Alternativ können Sie Ihre Azure Key Vaults zentral über ein einziges Abonnement verwalten und die im Key Vault gespeicherten Schlüssel verwenden, um verwaltete Datenträger und Snapshots in anderen Abonnements in Ihrer Organisation zu verschlüsseln. Dadurch kann Ihr Sicherheitsteam eine stabile Sicherheitsrichtlinie für ein einzelnes Abonnement erzwingen und einfach verwalten.

Wichtig

Für diese Konfiguration müssen sich sowohl Ihre Key Vault-Instanz als auch Ihr Datenträger-Verschlüsselungssatz in derselben Region befinden und denselben Mandanten verwenden.

Das folgende Skript ist ein Beispiel dafür, wie Sie einen Datenträger-Verschlüsselungssatz so konfigurieren, dass er einen Schlüssel aus einer Key Vault-Instanz in einem anderen Abonnement, aber derselben Region verwendet:

$sourceSubscriptionId="<sourceSubID>"
$sourceKeyVaultName="<sourceKVName>"
$sourceKeyName="<sourceKeyName>"

$targetSubscriptionId="<targetSubID>"
$targetResourceGroupName="<targetRGName>"
$targetDiskEncryptionSetName="<targetDiskEncSetName>"
$location="<targetRegion>"

Set-AzContext -Subscription $sourceSubscriptionId

$key = Get-AzKeyVaultKey -VaultName $sourceKeyVaultName -Name $sourceKeyName

Set-AzContext -Subscription $targetSubscriptionId

$desConfig=New-AzDiskEncryptionSetConfig -Location $location `
-KeyUrl $key.Key.Kid `
-IdentityType SystemAssigned `
-RotationToLatestKeyVersionEnabled $true

$des=New-AzDiskEncryptionSet -Name $targetDiskEncryptionSetName `
-ResourceGroupName $targetResourceGroupName `
-InputObject $desConfig

Konfigurieren der Verschlüsselung auf host für VMs und VM-Skalierungssätze

Sie können die hostbasierte Verschlüsselung aktivieren, indem Sie die securityProfile-Eigenschaft unter für VMs oder Skalierungssätze für virtuelle Maschinen festlegen und dabei die API-Version EncryptionAtHost oder höher verwenden.

"securityProfile": { "encryptionAtHost": "true" }

Erstellen und Aktualisieren von VMs und VM-Skalierungssätzen mit Verschlüsselung auf Hostebene

Erstellen einer VM mit aktivierter Verschlüsselung auf dem Host mit kundenseitig verwalteten Schlüsseln

Bevor Sie das Skript ausführen, stellen Sie eine vorhandene Ressourcengruppe und einen Datenträgerverschlüsselungssatz zusammen mit Werten für die Anmeldeinformationen des VM-Administrators, der Region, der Größe des virtuellen Computers und des virtuellen Netzwerks bereit. Das Skript erstellt das virtuelle Netzwerk und die Netzwerkschnittstelle, verwendet New-AzVMConfig mit -EncryptionAtHost und stellt die Windows-VM mit New-AzVM bereit. Der Datenträgerverschlüsselungssatz verschlüsselt den Cache des Betriebssystems und der Datenträger mit vom Kunden verwalteten Schlüsseln. Der temporäre Datenträger wird mit plattformverwalteten Schlüsseln verschlüsselt.

$VMLocalAdminUser = "yourVMLocalAdminUserName"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "yourRegion"
$ResourceGroupName = "yourResourceGroupName"
$ComputerName = "yourComputerName"
$VMName = "yourVMName"
$VMSize = "yourVMSize"
$diskEncryptionSetName="yourdiskEncryptionSetName"
    
$NetworkName = "yourNetworkName"
$NICName = "yourNICName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
    
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
    
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

# Enable encryption at host by specifying EncryptionAtHost parameter

$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize -EncryptionAtHost
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest

$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName

# Enable encryption with a customer managed key for OS disk by setting DiskEncryptionSetId property 

$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $($VMName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage

# Add a data disk encrypted with a customer managed key by setting DiskEncryptionSetId property 

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name $($VMName +"DataDisk1") -DiskSizeInGB 128 -StorageAccountType Premium_LRS -CreateOption Empty -Lun 0 -DiskEncryptionSetId $diskEncryptionSet.Id 
    
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine -Verbose

Erstellen einer VM mit aktivierter Verschlüsselung auf dem Host mit plattformseitig verwalteten Schlüsseln

Stellen Sie vor dem Ausführen des Skripts eine vorhandene Ressourcengruppe und Werte für die Anmeldeinformationen des VM-Administrators, region, VM-Größe und virtuelles Netzwerk bereit. Das Skript erstellt das virtuelle Netzwerk und die Netzwerkschnittstelle, verwendet New-AzVMConfig mit -EncryptionAtHost und stellt die Windows-VM mit New-AzVM bereit. Die hostbasierte Verschlüsselung verschlüsselt den Cache der Betriebssystem- und Datenträger sowie den temporären Datenträger mit plattformverwalteten Schlüsseln.

$VMLocalAdminUser = "yourVMLocalAdminUserName"
$VMLocalAdminSecurePassword = ConvertTo-SecureString <password> -AsPlainText -Force
$LocationName = "yourRegion"
$ResourceGroupName = "yourResourceGroupName"
$ComputerName = "yourComputerName"
$VMName = "yourVMName"
$VMSize = "yourVMSize"
    
$NetworkName = "yourNetworkName"
$NICName = "yourNICName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
    
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix
$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet
$NIC = New-AzNetworkInterface -Name $NICName -ResourceGroupName $ResourceGroupName -Location $LocationName -SubnetId $Vnet.Subnets[0].Id
    
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

# Enable encryption at host by specifying EncryptionAtHost parameter

$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $VMSize -EncryptionAtHost

$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $NIC.Id
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2012-R2-Datacenter' -Version latest

$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name $($VMName +"_OSDisk") -CreateOption FromImage

$VirtualMachine = Add-AzVMDataDisk -VM $VirtualMachine -Name $($VMName +"DataDisk1") -DiskSizeInGB 128 -StorageAccountType Premium_LRS -CreateOption Empty -Lun 0
    
New-AzVM -ResourceGroupName $ResourceGroupName -Location $LocationName -VM $VirtualMachine

Aktualisieren einer VM zur Aktivierung der Verschlüsselung auf dem Host

$ResourceGroupName = "yourResourceGroupName"
$VMName = "yourVMName"

$VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName

Stop-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName -Force

Update-AzVM -VM $VM -ResourceGroupName $ResourceGroupName -EncryptionAtHost $true

Überprüfen des Status einer Verschlüsselung auf dem Host für eine VM

$ResourceGroupName = "yourResourceGroupName"
$VMName = "yourVMName"

$VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName

$VM.SecurityProfile.EncryptionAtHost

Deaktivieren der Verschlüsselung auf dem Host

Sie müssen die Zuordnung Ihrer VM aufheben, damit Sie die Verschlüsselung auf dem Host deaktivieren können.

$ResourceGroupName = "yourResourceGroupName"
$VMName = "yourVMName"

$VM = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName

Stop-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName -Force

Update-AzVM -VM $VM -ResourceGroupName $ResourceGroupName -EncryptionAtHost $false

Erstellen eines Skalierungssatzes für virtuelle Computer mit Verschlüsselung auf dem Host, der mit vom Kunden verwalteten Schlüsseln aktiviert ist

Wichtig

Ab November 2023 werden Skalierungssätze für virtuelle Computer mit PowerShell und Azure CLI standardmäßig im flexiblen Orchestrierungsmodus erstellt, wenn Sie keinen Orchestrierungsmodus angeben. Weitere Informationen zu dieser Änderung und zu den aktionen, die Sie ausführen sollten, finden Sie unter Breaking Change for VMSS PowerShell/CLI Customers – Microsoft Community Hub

Bevor Sie das Skript ausführen, stellen Sie eine vorhandene Ressourcengruppe und einen Datenträgerverschlüsselungssatz zusammen mit Werten für administratoranmeldeinformationen, Region, VM-Größe und virtuelles Netzwerk bereit. Das Skript erstellt das virtuelle Netzwerk, konfiguriert einen flexiblen Skalierungssatz für virtuelle Computer mit zwei Instanzen mit New-AzVmssConfig und -EncryptionAtHost und stellt ihn mit New-AzVmss bereit. Der Datenträgerverschlüsselungssatz verschlüsselt den Cache des Betriebssystems und der Datenträger mit vom Kunden verwalteten Schlüsseln. Die temporären Datenträger werden mit plattformverwalteten Schlüsseln verschlüsselt.

$VMLocalAdminUser = "yourLocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString Password@123 -AsPlainText -Force
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$ComputerNamePrefix = "yourComputerNamePrefix"
$VMScaleSetName = "yourVMSSName"
$VMSize = "Standard_DS3_v2"
$diskEncryptionSetName="yourDiskEncryptionSetName"
    
$NetworkName = "yourVNETName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
    
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix

$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet

$ipConfig = New-AzVmssIpConfig -Name "myIPConfig" -SubnetId $Vnet.Subnets[0].Id 

# Enable encryption at host by specifying EncryptionAtHost parameter

$VMSS = New-AzVmssConfig -Location $LocationName -SkuCapacity 2 -SkuName $VMSize -OrchestrationMode "Flexible" -EncryptionAtHost 

$VMSS = Add-AzVmssNetworkInterfaceConfiguration -Name "myVMSSNetworkConfig" -VirtualMachineScaleSet $VMSS -Primary $true -IpConfiguration $ipConfig

$diskEncryptionSet=Get-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $diskEncryptionSetName

# Enable encryption with a customer managed key for the OS disk by setting DiskEncryptionSetId property 

$VMSS = Set-AzVmssStorageProfile $VMSS -OsDiskCreateOption "FromImage" -DiskEncryptionSetId $diskEncryptionSet.Id -ImageReferenceOffer 'WindowsServer' -ImageReferenceSku '2012-R2-Datacenter' -ImageReferenceVersion latest -ImageReferencePublisher 'MicrosoftWindowsServer'

$VMSS = Set-AzVmssOsProfile $VMSS -ComputerNamePrefix $ComputerNamePrefix -AdminUsername $VMLocalAdminUser -AdminPassword $VMLocalAdminSecurePassword

# Add a data disk encrypted with a customer managed key by setting DiskEncryptionSetId property 

$VMSS = Add-AzVmssDataDisk -VirtualMachineScaleSet $VMSS -CreateOption Empty -Lun 1 -DiskSizeGB 128 -StorageAccountType Premium_LRS -DiskEncryptionSetId $diskEncryptionSet.Id

New-AzVmss -VirtualMachineScaleSet $VMSS -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMScaleSetName

Erstellen eines Skalierungssatzes für virtuelle Computer mit Verschlüsselung auf dem Host, der mit plattformverwalteten Schlüsseln aktiviert ist

Wichtig

Ab November 2023 werden Skalierungssätze für virtuelle Computer mit PowerShell und Azure CLI standardmäßig im flexiblen Orchestrierungsmodus erstellt, wenn Sie keinen Orchestrierungsmodus angeben. Weitere Informationen zu dieser Änderung und zu den aktionen, die Sie ausführen sollten, finden Sie unter Breaking Change for VMSS PowerShell/CLI Customers – Microsoft Community Hub

Stellen Sie vor dem Ausführen des Skripts eine vorhandene Ressourcengruppe und Werte für die Administratoranmeldeinformationen, die Region, die VM-Größe und das virtuelle Netzwerk bereit. Das Skript erstellt das virtuelle Netzwerk, konfiguriert einen flexiblen Skalierungssatz für virtuelle Computer mit zwei Instanzen mit New-AzVmssConfig und -EncryptionAtHost und stellt ihn mit New-AzVmss bereit. Verschlüsselung beim Host verschlüsselt den Cache des Betriebssystems und der Datenträger und die temporären Datenträger mit plattformverwalteten Schlüsseln.

$VMLocalAdminUser = "yourLocalAdminUser"
$VMLocalAdminSecurePassword = ConvertTo-SecureString Password@123 -AsPlainText -Force
$LocationName = "westcentralus"
$ResourceGroupName = "yourResourceGroupName"
$ComputerNamePrefix = "yourComputerNamePrefix"
$VMScaleSetName = "yourVMSSName"
$VMSize = "Standard_DS3_v2"
    
$NetworkName = "yourVNETName"
$SubnetName = "yourSubnetName"
$SubnetAddressPrefix = "10.0.0.0/24"
$VnetAddressPrefix = "10.0.0.0/16"
    
$SingleSubnet = New-AzVirtualNetworkSubnetConfig -Name $SubnetName -AddressPrefix $SubnetAddressPrefix

$Vnet = New-AzVirtualNetwork -Name $NetworkName -ResourceGroupName $ResourceGroupName -Location $LocationName -AddressPrefix $VnetAddressPrefix -Subnet $SingleSubnet

$ipConfig = New-AzVmssIpConfig -Name "myIPConfig" -SubnetId $Vnet.Subnets[0].Id 

# Enable encryption at host by specifying EncryptionAtHost parameter

$VMSS = New-AzVmssConfig -Location $LocationName -SkuCapacity 2 -SkuName $VMSize -OrchestrationMode "Flexible" -EncryptionAtHost

$VMSS = Add-AzVmssNetworkInterfaceConfiguration -Name "myVMSSNetworkConfig" -VirtualMachineScaleSet $VMSS -Primary $true -IpConfiguration $ipConfig
 
$VMSS = Set-AzVmssStorageProfile $VMSS -OsDiskCreateOption "FromImage" -ImageReferenceOffer 'WindowsServer' -ImageReferenceSku '2012-R2-Datacenter' -ImageReferenceVersion latest -ImageReferencePublisher 'MicrosoftWindowsServer'

$VMSS = Set-AzVmssOsProfile $VMSS -ComputerNamePrefix $ComputerNamePrefix -AdminUsername $VMLocalAdminUser -AdminPassword $VMLocalAdminSecurePassword

$VMSS = Add-AzVmssDataDisk -VirtualMachineScaleSet $VMSS -CreateOption Empty -Lun 1 -DiskSizeGB 128 -StorageAccountType Premium_LRS 

$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword);

New-AzVmss -VirtualMachineScaleSet $VMSS -ResourceGroupName $ResourceGroupName -VMScaleSetName $VMScaleSetName

Aktualisieren eines Skalierungssatzes für virtuelle Computer zum Aktivieren der Verschlüsselung auf dem Host

$ResourceGroupName = "yourResourceGroupName"
$VMScaleSetName = "yourVMSSName"

$VMSS = Get-AzVmss -ResourceGroupName $ResourceGroupName -Name $VMScaleSetName

Update-AzVmss -VirtualMachineScaleSet $VMSS -Name $VMScaleSetName -ResourceGroupName $ResourceGroupName -EncryptionAtHost $true

Status der hostbasierten Verschlüsselung für eine VM-Skalierungsgruppe überprüfen

$ResourceGroupName = "yourResourceGroupName"
$VMScaleSetName = "yourVMSSName"

$VMSS = Get-AzVmss -ResourceGroupName $ResourceGroupName -Name $VMScaleSetName

$VMSS.VirtualMachineProfile.SecurityProfile.EncryptionAtHost

Aktualisieren eines Skalierungssatzes für virtuelle Computer zum Deaktivieren der Verschlüsselung auf dem Host

Sie können die Verschlüsselung auf dem Host auf ihrem VM-Skalierungssatz deaktivieren, diese Änderung wirkt sich jedoch nur auf virtuelle Computer aus, die nach der Deaktivierung der Verschlüsselung auf dem Host erstellt wurden. Bei vorhandenen VMs müssen Sie die Zuordnung der VM aufheben, die Verschlüsselung auf dem Host für diese jeweilige VM deaktivieren und dann die VM neu zuweisen.

$ResourceGroupName = "yourResourceGroupName"
$VMScaleSetName = "yourVMSSName"

$VMSS = Get-AzVmss -ResourceGroupName $ResourceGroupName -Name $VMScaleSetName

Update-AzVmss -VirtualMachineScaleSet $VMSS -Name $VMScaleSetName -ResourceGroupName $ResourceGroupName -EncryptionAtHost $false

Ermitteln der unterstützten VM-Größen

Einige ältere VM-Größen werden nicht unterstützt. Die Liste der unterstützten VM-Größen finden Sie folgendermaßen:

Rufen Sie die Resource Skus-API auf, und stellen Sie sicher, dass die EncryptionAtHostSupported-Funktion auf True festgelegt ist.

    {
        "resourceType": "virtualMachines",
        "name": "Standard_DS1_v2",
        "tier": "Standard",
        "size": "DS1_v2",
        "family": "standardDSv2Family",
        "locations": [
        "CentralUS"
        ],
        "capabilities": [
        {
            "name": "EncryptionAtHostSupported",
            "value": "True"
        }
        ]
    }

Alternativ können Sie auch das PowerShell-Cmdlet Get-AzComputeResourceSku aufrufen.

Get-AzComputeResourceSku -Location "centralus" |
    Where-Object { $_.ResourceType -eq 'virtualMachines' -and $_.capabilities.where({ $_.Name -eq 'EncryptionAtHostSupported' }, 'First').Value -eq 'True' } |
    Select-Object -ExpandProperty Name

Nächste Schritte

Nachdem Sie diese Ressourcen erstellt und konfiguriert haben, können Sie diese zum Sichern Ihrer verwalteten Datenträger verwenden. Der folgende Link enthält Beispielskripts mit jeweils einem entsprechenden Szenario, die Sie zum Sichern Ihrer verwalteten Datenträger verwenden können.

Beispiele für Azure Resource Manager-Vorlagen