VMware-VM's migreren naar Azure-VM's die zijn ingeschakeld met versleuteling aan de serverzijde en door de klant beheerde sleutels

In dit artikel wordt beschreven hoe u virtuele VMware-machines migreert naar virtuele Azure-machines met schijven die zijn versleuteld met versleuteling aan de serverzijde met door de klant beheerde sleutels (CMK), met behulp van migratie en modernisering (replicatie zonder agent).

Met de migratie- en moderniseringsportal-ervaring kunt u VMware-VM's migreren naar Azure met replicatie zonder agent. De portal-ervaring ondersteunt DES/CMK. DES moet worden gemaakt voordat de replicatie wordt gestart en moet worden opgegeven tijdens het starten van de replicatie. Deze kan niet worden opgegeven op het moment van de migratie. In dit artikel ziet u hoe u een Azure Resource Manager-sjabloon maakt en implementeert om een virtuele VMware-machine te repliceren en de gerepliceerde schijven in Azure te configureren voor gebruik van SSE met CMK.

In de voorbeelden in dit artikel wordt Azure PowerShell gebruikt om de taken uit te voeren die nodig zijn voor het maken en implementeren van de Resource Manager-sjabloon.

Meer informatie over versleuteling aan de serverzijde (SSE) met door de klant beheerde sleutels (CMK) voor beheerde schijven.

Vereisten

  • Bekijk de zelfstudie over de migratie van virtuele VMware-machines naar Azure met replicatie zonder agent om inzicht te hebben in de hulpprogrammavereisten.
  • Volg deze instructies om een Azure Migrate-project te maken en het hulpprogramma Migratie en modernisering toe te voegen aan het project.
  • Volg deze instructies voor het instellen van het Azure Migrate-apparaat voor VMware in uw on-premises omgeving en voltooi de detectie.

Replicatie voorbereiden

Zodra de VM-detectie is voltooid, toont de regel Gedetecteerde servers op de tegel Migratie en modernisering het aantal VMware-VM's dat door het apparaat is gedetecteerd.

Voordat u vm's kunt repliceren, moet de replicatie-infrastructuur worden voorbereid.

  1. Maak een Service Bus-exemplaar in de doelregio. De Service Bus wordt gebruikt door het on-premises Azure Migrate-apparaat om te communiceren met de migratie- en moderniseringsservice om de replicatie en migratie te coördineren.
  2. Maak een opslagaccount voor de overdracht van bewerkingslogboeken vanuit replicatie.
  3. Maak een opslagaccount waarnaar het Azure Migrate-apparaat replicatiegegevens uploadt.
  4. Maak een Key Vault en configureer de Sleutelkluis voor het beheren van shared access Signature-tokens voor blobtoegang op de opslagaccounts die u in stap 3 en 4 hebt gemaakt.
  5. Genereer een shared access Signature-token voor de servicebus die in stap 1 is gemaakt en maak een geheim voor het token in de sleutelkluis die u in de vorige stap hebt gemaakt.
  6. Maak een Key Vault-toegangsbeleid om het on-premises Azure Migrate-apparaat (met behulp van de AAD-app van het apparaat) en de Migratie- en moderniseringsservice toegang te geven tot de Key Vault.
  7. Maak een replicatiebeleid en configureer de migratie- en moderniseringsservice met details van de replicatie-infrastructuur die in de vorige stap is gemaakt.

De replicatie-infrastructuur moet worden gemaakt in de Azure-doelregio voor de migratie en in het Azure-doelabonnement waarnaar de VM's worden gemigreerd.

De migratie- en moderniseringsportal-ervaring vereenvoudigt de voorbereiding van de replicatie-infrastructuur door dit automatisch voor u te doen wanneer u een VIRTUELE machine voor het eerst in een project repliceert. In dit artikel wordt ervan uitgegaan dat u al een of meer VM's hebt gerepliceerd met behulp van de portalervaring en dat de replicatie-infrastructuur al is gemaakt. We bekijken hoe u details van de bestaande replicatie-infrastructuur kunt detecteren en hoe u deze details kunt gebruiken als invoer voor de Resource Manager-sjabloon die wordt gebruikt voor het instellen van replicatie met CMK.

Onderdelen van de replicatie-infrastructuur identificeren

  1. Ga in Azure Portal naar de pagina resourcegroepen en selecteer de resourcegroep waarin het Azure Migrate-project is gemaakt.
  2. Selecteer Implementaties in het linkermenu en zoek naar een implementatienaam die begint met de tekenreeks Microsoft.MigrateV2.VMwareV2EnableMigrate. U ziet een lijst met Resource Manager-sjablonen die door de portal zijn gemaakt voor het instellen van replicatie voor VM's in dit project. We downloaden een dergelijke sjabloon en gebruiken deze als basis om de sjabloon voor te bereiden op replicatie met CMK.
  3. Als u de sjabloon wilt downloaden, selecteert u een implementatie die overeenkomt met het tekenreekspatroon in de vorige stap > , selecteert u Sjabloon in het menu > links op Downloaden in het bovenste menu. Sla het bestand template.json lokaal op. In de laatste stap bewerkt u dit sjabloonbestand.

Een schijfversleutelingsset maken

Met een schijfversleutelingssetobject worden beheerde schijven toegewezen aan een sleutelkluis die de CMK bevat die moet worden gebruikt voor SSE. Als u VIRTUELE machines wilt repliceren met CMK, maakt u een schijfversleutelingsset en geeft u deze door als invoer voor de replicatiebewerking.

Volg het voorbeeld hier om een schijfversleutelingsset te maken met behulp van Azure PowerShell. Zorg ervoor dat de schijfversleutelingsset is gemaakt in het doelabonnement waarnaar VM's worden gemigreerd en in de Azure-doelregio voor de migratie.

De schijfversleutelingsset kan worden geconfigureerd voor het versleutelen van beheerde schijven met een door de klant beheerde sleutel of voor dubbele versleuteling met zowel een door de klant beheerde sleutel als een platformsleutel. Als u de optie dubbele versleuteling-at-rest wilt gebruiken, configureert u de schijfversleutelingsset zoals hier wordt beschreven.

In het voorbeeld dat hieronder wordt weergegeven, is de schijfversleutelingsset geconfigureerd voor het gebruik van een door de klant beheerde sleutel.

$Location = "southcentralus"                           #Target Azure region for migration 
$TargetResourceGroupName = "ContosoMigrationTarget"
$KeyVaultName = "ContosoCMKKV"
$KeyName = "ContosoCMKKey"
$KeyDestination = "Software"
$DiskEncryptionSetName = "ContosoCMKDES"

$KeyVault = New-AzKeyVault -Name $KeyVaultName -ResourceGroupName $TargetResourceGroupName -Location $Location -EnableSoftDelete -EnablePurgeProtection

$Key = Add-AzKeyVaultKey -VaultName $KeyVaultName -Name $KeyName -Destination $KeyDestination

$desConfig = New-AzDiskEncryptionSetConfig -Location $Location -SourceVaultId $KeyVault.ResourceId -KeyUrl $Key.Key.Kid -IdentityType SystemAssigned

$des = New-AzDiskEncryptionSet -Name $DiskEncryptionSetName -ResourceGroupName $TargetResourceGroupName -InputObject $desConfig

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

New-AzRoleAssignment -ResourceName $KeyVaultName -ResourceGroupName $TargetResourceGroupName -ResourceType "Microsoft.KeyVault/vaults" -ObjectId $des.Identity.PrincipalId -RoleDefinitionName "Reader"

Details van de VMware-VM ophalen die u wilt migreren

In deze stap gebruikt u Azure PowerShell om de details op te halen van de VM die moet worden gemigreerd. Deze details worden gebruikt om de Resource Manager-sjabloon voor replicatie samen te stellen. In het bijzonder zijn de twee eigenschappen van belang:

  • De resource-id van de computer voor de gedetecteerde VM's.
  • De lijst met schijven voor de virtuele machine en de bijbehorende schijf-id's.

$ProjectResourceGroup = "ContosoVMwareCMK"   #Resource group that the Azure Migrate Project is created in
$ProjectName = "ContosoVMwareCMK"            #Name of the Azure Migrate Project

$solution = Get-AzResource -ResourceGroupName $ProjectResourceGroup -ResourceType Microsoft.Migrate/MigrateProjects/solutions -ExpandProperties -ResourceName $ProjectName | where Name -eq "Servers-Discovery-ServerDis
covery"

# Displays one entry for each appliance in the project mapping the appliance to the VMware sites discovered through the appliance.
$solution.Properties.details.extendedDetails.applianceNameToSiteIdMapV2 | ConvertFrom-Json | select ApplianceName, SiteId
ApplianceName  SiteId
-------------  ------
VMwareApplianc /subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite

Kopieer de waarde van de SiteId-tekenreeks die overeenkomt met het Azure Migrate-apparaat waarmee de VIRTUELE machine wordt gedetecteerd. In het bovenstaande voorbeeld is de SiteId '/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be699/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite'


#Replace value with SiteId from the previous step
$SiteId = "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite"
$SiteName = Get-AzResource -ResourceId $SiteId -ExpandProperties | Select-Object -ExpandProperty Name
$DiscoveredMachines = Get-AzResource -ResourceGroupName $ProjectResourceGroup -ResourceType Microsoft.OffAzure/VMwareSites/machines  -ExpandProperties -ResourceName $SiteName

#Get machine details
PS /home/bharathram> $MachineName = "FPL-W19-09"     #Replace string with VMware VM name of the machine to migrate
PS /home/bharathram> $machine = $Discoveredmachines | where {$_.Properties.displayName -eq $MachineName}
PS /home/bharathram> $machine.count   #Validate that only 1 VM was found matching this name.

Kopieer de ResourceId-, naam- en schijf-uuid-waarden voor de machine die moet worden gemigreerd.

PS > $machine.Name
10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210
PS > $machine.ResourceId
/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210

PS > $machine.Properties.disks | select uuid, label, name, maxSizeInBytes

uuid                                 label       name    maxSizeInBytes
----                                 -----       ----    --------------
6000C291-5106-2aac-7a74-4f33c3ddb78c Hard disk 1 scsi0:0    42949672960
6000C293-39a1-bd70-7b24-735f0eeb79c4 Hard disk 2 scsi0:1    53687091200
6000C29e-cbee-4d79-39c7-d00dd0208aa9 Hard disk 3 scsi0:2    53687091200

Resource Manager-sjabloon maken voor replicatie

  • Open het Resource Manager-sjabloonbestand dat u hebt gedownload in de stap Replicatie-infrastructuuronderdelen identificeren in een editor van uw keuze.
  • Verwijder alle resourcedefinities uit de sjabloon, met uitzondering van resources van het type 'Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems'
  • Als er meerdere resourcedefinities van het bovenstaande type zijn, verwijdert u alles behalve één. Verwijder eventuele dependsOn-eigenschapsdefinities uit de resourcedefinitie.
  • Aan het einde van deze stap moet u een bestand hebben dat lijkt op het onderstaande voorbeeld en dezelfde set eigenschappen heeft.
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems",
            "apiVersion": "2018-01-10",
            "name": "ContosoMigration7371rsvault/VMware104e4replicationfabric/VMware104e4replicationcontainer/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_500937f3-805e-9414-11b1-f22923456e08",
            "properties": {
                "policyId": "/Subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.RecoveryServices/vaults/ContosoMigration7371rsvault/replicationPolicies/migrateVMware104e4sitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_500937f3-805e-9414-11b1-f22923456e08",
                    "targetResourceGroupId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/PayrollRG",
                    "targetNetworkId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/PayrollRG/providers/Microsoft.Network/virtualNetworks/PayrollNW",
                    "targetSubnetName": "PayrollSubnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C295-dafe-a0eb-906e-d47cb5b05a1d",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                            "logStorageAccountSasSecretName": "migratelsa1432469187-cacheSas",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "snapshotRunAsAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/6785ea1f-ac40-4244-a9ce-94b12fd832ca/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                    "targetVmName": "PayrollWeb04"
                }
            }
        }
    ]
}
  • Bewerk de naameigenschap in de resourcedefinitie. Vervang de tekenreeks die volgt op de laatste '/' in de naameigenschap door de waarde van $machine. Name( uit de vorige stap).
  • Wijzig de waarde van de eigenschap properties.providerSpecificDetails.vmwareMachineId met de waarde van $machine. ResourceId( uit de vorige stap).
  • Stel de waarden voor targetResourceGroupId, targetNetworkId, targetSubnetName in op respectievelijk de id van de doelresourcegroep, de resource-id van het virtuele netwerk en de naam van het doelsubnet.
  • Stel de waarde van licenseType in op 'WindowsServer' om Azure Hybrid Benefit voor deze VM toe te passen. Als deze VM niet in aanmerking komt voor Azure Hybrid Benefit, stelt u de waarde van licenseType in op NoLicenseType.
  • Wijzig de waarde van de eigenschap targetVmName in de gewenste naam van de virtuele Azure-machine voor de gemigreerde VM.
  • Voeg desgewenst een eigenschap met de naam targetVmSize toe onder de eigenschap targetVmName . Stel de waarde van de eigenschap targetVmSize in op de gewenste grootte van de virtuele Azure-machine voor de gemigreerde VM.
  • De eigenschap disksToInclude is een lijst met schijfinvoer voor replicatie met elk lijstitem dat één on-premises schijf vertegenwoordigt. Maak zo veel lijstitems als het aantal schijven op de on-premises VM. Vervang de eigenschap diskId in het lijstitem door de uuid van de schijven die in de vorige stap zijn geïdentificeerd. Stel de waarde isOSDisk in op 'true' voor de besturingssysteemschijf van de VIRTUELE machine en 'false' voor alle andere schijven. Laat de logStorageAccountId en de eigenschappen logStorageAccountSasSecretName ongewijzigd. Stel de waarde diskType in op het type Azure Managed Disk (Standard_LRS, Premium_LRS, StandardSSD_LRS) dat voor de schijf moet worden gebruikt. Voor de schijven die moeten worden versleuteld met CMK, voegt u een eigenschap met de naam diskEncryptionSetId toe en stelt u de waarde in op de resource-id van de schijfversleutelingsset die is gemaakt ($des). Id) in de stap Een schijfversleutelingsset maken
  • Sla het bewerkte sjabloonbestand op. In het bovenstaande voorbeeld ziet het bewerkte sjabloonbestand er als volgt uit:
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems",
            "apiVersion": "2018-01-10",
            "name": "ContosoVMwareCMK00ddrsvault/VMwareApplianca8bareplicationfabric/VMwareApplianca8bareplicationcontainer/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210",
            "properties": {
                "policyId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.RecoveryServices/vaults/ContosoVMwareCMK00ddrsvault/replicationPolicies/migrateVMwareApplianca8basitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210",
                    "targetResourceGroupId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoMigrationTarget",
                    "targetNetworkId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/cmkRTest/providers/Microsoft.Network/virtualNetworks/cmkvm1_vnet",
                    "targetSubnetName": "cmkvm1_subnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C291-5106-2aac-7a74-4f33c3ddb78c",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C293-39a1-bd70-7b24-735f0eeb79c4",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C29e-cbee-4d79-39c7-d00dd0208aa9",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "snapshotRunAsAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/b090bef3-b733-5e34-bc8f-eb6f2701432a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/509099b2-9d2c-4636-b43e-bd5cafb6be69/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                    "performAutoResync": "true",
                    "targetVmName": "FPL-W19-09"
                }
            }
        }
    ]
}

Replicatie instellen

U kunt nu de bewerkte Resource Manager-sjabloon implementeren in de projectresourcegroep om replicatie voor de VIRTUELE machine in te stellen. Meer informatie over het implementeren van resources met Azure Resource Manager-sjablonen en Azure PowerShell

New-AzResourceGroupDeployment -ResourceGroupName $ProjectResourceGroup -TemplateFile "C:\Users\Administrator\Downloads\template.json"
DeploymentName          : template
ResourceGroupName       : ContosoVMwareCMK
ProvisioningState       : Succeeded
Timestamp               : 3/11/2020 8:52:00 PM
Mode                    : Incremental
TemplateLink            :
Parameters              :
Outputs                 :
DeploymentDebugLogLevel :

Volgende stappen

Bewaak de replicatiestatus via de portal en voer testmigraties en -migraties uit.