次の方法で共有


サーバー側暗号化とカスタマー マネージド キーを使用して VMware VM を Azure VM に移行する

この記事では、移行およびモダン化 (エージェントレス レプリケーション) を使用して、サーバー側暗号化 (SSE) とカスタマー マネージド キー (CMK) によって暗号化されたディスクで、VMware VM を Azure 仮想マシンに移行する方法について説明します。

移行とモダン化ポータルのエクスペリエンスを使用すると、 エージェントレス レプリケーションを使用して VMware VM を Azure に移行できます。 ポータル エクスペリエンスでは、DES/CMK がサポートされています。 DES は、レプリケーションを開始する前に作成する必要があり、レプリケーションの開始時に指定する必要があります。 移行時に指定することはできません。 この記事では、VMware VM をレプリケートする Azure Resource Manager テンプレート を作成してデプロイし、レプリケートされたディスクを Azure で CMK で SSE を使用するように構成する方法について説明します。

この記事の例では、 Azure PowerShell を使用して、Resource Manager テンプレートの作成とデプロイに必要なタスクを実行します。

マネージド ディスクのカスタマー マネージド キー (CMK) を使用したサーバー側暗号化 (SSE) の詳細について説明します。

[前提条件]

  • ツールの要件を理解するために、エージェントレス レプリケーションを使用した Azure への VMware VM の移行に関するチュートリアルを確認します。
  • 次の手順に従って Azure Migrate プロジェクトを作成し、 移行とモダン化 ツールをプロジェクトに追加します。
  • オンプレミス環境で VMware 用の Azure Migrate アプライアンスを設定し、検出を完了するには、次の手順に従います

レプリケーションの準備

VM の検出が完了すると、[移行およびモダン化] タイルの [検出済みサーバー] 行に、アプライアンスによって検出された VMware VM の数が表示されます。

VM のレプリケートを開始する前に、レプリケーション インフラストラクチャを準備する必要があります。

  1. ターゲット リージョンに Service Bus インスタンスを作成します。 Service Bus は、移行およびモダン化サービスと通信してレプリケーションと移行を調整するために、オンプレミスの Azure Migrate アプライアンスによって使用されます。
  2. レプリケーションから操作ログを転送するためのストレージ アカウントを作成します。
  3. Azure Migrate アプライアンスがレプリケーション データをアップロードする先のストレージ アカウントを作成します。
  4. Key Vault を作成し、手順 3 と 4 で作成したストレージ アカウントで BLOB アクセス用の共有アクセス署名トークンを管理するようにその Key Vault を構成します。
  5. 手順 1 で作成した Service Bus の共有アクセス署名トークンを生成し、前の手順で作成した Key Vault でそのトークンのシークレットを作成します。
  6. Key Vault アクセス ポリシーを作成して、オンプレミスの Azure Migrate アプライアンス (アプライアンスの AAD アプリを使用) と移行およびモダン化サービスに Key Vault へのアクセス権を付与します。
  7. レプリケーション ポリシーを作成し、前の手順で作成したレプリケーション インフラストラクチャの詳細を使用して移行およびモダン化サービスを構成します。

レプリケーション インフラストラクチャは、移行のターゲット Azure リージョンと、VM の移行先となるターゲット Azure サブスクリプションに作成する必要があります。

移行およびモダン化ポータルでの操作により、プロジェクトで VM を初めてレプリケートするときに、レプリケーション インフラストラクチャが自動的に準備されるため、この作業は簡単です。 この記事は、ポータルでの操作を使用して 1 つ以上の VM を既にレプリケートしていること、およびレプリケーション インフラストラクチャが既に作成されていることを前提としています。 ここでは、既存のレプリケーション インフラストラクチャの詳細を検出する方法と、CMK を使用したレプリケーションの設定に使用する Resource Manager テンプレートへの入力としてこれらの詳細を使用する方法について説明します。

レプリケーション インフラストラクチャのコンポーネントを識別する

  1. Azure portal で、リソース グループ ページにアクセスし、Azure Migrate プロジェクトを作成したリソース グループを選択します。
  2. 左側のメニューから [デプロイ] を選択し、 "Microsoft.MigrateV2.VMwareV2EnableMigrate" という文字列で始まるデプロイ名を検索します。 このプロジェクトで VM のレプリケーションを設定するために、ポータルでの操作によって作成された Resource Manager テンプレートの一覧が表示されます。 このようなテンプレートのいずれかをダウンロードし、それをベースとして使用して、CMK を使用したレプリケーション用のテンプレートを準備します。
  3. テンプレートをダウンロードするには、前の手順で文字列パターンに一致するデプロイを選択 > 左側のメニューから [テンプレート ] を選択 > 上部のメニューから [ダウンロード ] を選択します。 template.json ファイルをローカルに保存します。 最後の手順でこのテンプレート ファイルを編集します。

ディスク暗号化セットを作成する

ディスク暗号化セット オブジェクトによって、SSE に使用する CMK を含む Key Vault にマネージド ディスクがマップされます。 CMK を使用して VM をレプリケートするには、ディスク暗号化セットを作成し、それを入力としてレプリケーション操作に渡します。

Azure PowerShell を使用してディスク暗号化セットを作成するには、 の例に従います。 ディスク暗号化セットが、VM の移行先となるターゲット サブスクリプションと、移行のターゲット Azure リージョンに作成されていることを確認します。

ディスク暗号化セットは、カスタマー マネージド キーでマネージド ディスクを暗号化するように、またはカスタマー マネージド キーとプラットフォーム キーの両方で二重に暗号化するように構成できます。 保存時の二重暗号化オプションを使用するには、 ここで説明するようにディスク暗号化セットを構成します。

次に示す例では、カスタマー マネージド キーを使用するようにディスク暗号化セットを構成しています。

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

移行する VMware VM の詳細を取得する

この手順では、Azure PowerShell を使用して、移行する必要がある VM の詳細を取得します。 これらの詳細は、レプリケーション用の Resource Manager テンプレートを作成するために使用します。 具体的には、次の 2 つのプロパティが対象です。

  • 検出された VM のマシン リソース ID。
  • VM のディスクとそのディスクの識別子の一覧。

$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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite

VM が検出された Azure Migrate アプライアンスに対応する SiteId 文字列の値をコピーします。 上の例では、SiteId は "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite" です。


#Replace value with SiteId from the previous step
$SiteId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.

移行するマシンの ResourceId、name、および disk uuid の値をコピーします。

PS > $machine.Name
10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210
PS > $machine.ResourceId
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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 テンプレートを作成する

  • 任意のエディターで、 レプリケーション インフラストラクチャ コンポーネントの識別 手順でダウンロードした Resource Manager テンプレート ファイルを開きます。
  • "Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems" 型のリソースを除き、テンプレートからすべてのリソース定義を削除します。
  • 上記の種類のリソース定義が複数ある場合は、1 つを除きすべてを削除します。 リソース定義から dependsOn プロパティ定義を削除します。
  • この手順を終えると、次の例のような、同じ一連のプロパティを持つファイルになります。
{
    "$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/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.RecoveryServices/vaults/ContosoMigration7371rsvault/replicationPolicies/migrateVMware104e4sitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_500937f3-805e-9414-11b1-f22923456e08",
                    "targetResourceGroupId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/PayrollRG",
                    "targetNetworkId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/PayrollRG/providers/Microsoft.Network/virtualNetworks/PayrollNW",
                    "targetSubnetName": "PayrollSubnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C295-dafe-a0eb-906e-d47cb5b05a1d",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                            "logStorageAccountSasSecretName": "migratelsa1432469187-cacheSas",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                    "snapshotRunAsAccountId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.OffAzure/VMwareSites/VMware104e4site/runasaccounts/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/ContosoMigration/providers/Microsoft.Storage/storageAccounts/migratelsa1432469187",
                    "targetVmName": "PayrollWeb04"
                }
            }
        }
    ]
}
  • リソース定義の name プロパティを編集します。 name プロパティの最後の "/" に続く文字列を、前のステップで取得した値である $machine.Name に置き換えます。
  • properties.providerSpecificDetails.vmwareMachineId プロパティの値を、前の手順で取得した $machine.ResourceId の値に変更します。
  • targetResourceGroupIdtargetNetworkIdtargetSubnetName の値をそれぞれターゲット リソース グループ ID、ターゲット仮想ネットワーク リソース ID、ターゲット サブネット名に設定します。
  • この VM に Azure ハイブリッド特典を適用するには、 licenseType の値を "WindowsServer" に設定します。 この VM が Azure ハイブリッド特典の対象ではない場合は、 licenseType の値を NoLicenseType に設定します。
  • targetVmName プロパティの値を、移行された VM の目的の Azure 仮想マシン名に変更します。
  • 必要に応じて、 targetVmName プロパティの下に targetVmSize という名前のプロパティを追加します。 targetVmSize プロパティの値を、移行された VM の目的の Azure 仮想マシン サイズに設定します。
  • disksToInclude プロパティは、各リスト 項目が 1 つのオンプレミス ディスクを表すレプリケーション用のディスク入力の一覧です。 オンプレミス VM 上のディスクの数と同じ数のリスト項目を作成します。 リスト項目の diskId プロパティを、前の手順で識別したディスクの uuid に置き換えます。 VM の OS ディスクの 場合は isOSDisk 値を "true" に、他のすべてのディスクでは "false" に設定します。 logStorageAccountId プロパティと logStorageAccountSasSecretName プロパティは変更しません。 diskType の値を、ディスクに使用する Azure マネージド ディスクの種類 (Standard_LRS、Premium_LRS、StandardSSD_LRS) に設定します。 CMK で暗号化する必要があるディスクの場合は、diskEncryptionSetId という名前のプロパティを追加し、作成されたディスク暗号化セットのリソース ID に値を設定します ($des。[ディスク暗号化セットの作成] ステップの ID)
  • 編集したテンプレート ファイルを保存します。 上記の例で、編集したテンプレート ファイルは次のようになります。
{
    "$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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.RecoveryServices/vaults/ContosoVMwareCMK00ddrsvault/replicationPolicies/migrateVMwareApplianca8basitepolicy",
                "providerSpecificDetails": {
                    "instanceType": "VMwareCbt",
                    "vmwareMachineId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/machines/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_50098f99-f949-22ca-642b-724ec6595210",
                    "targetResourceGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoMigrationTarget",
                    "targetNetworkId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/cmkRTest/providers/Microsoft.Network/virtualNetworks/cmkvm1_vnet",
                    "targetSubnetName": "cmkvm1_subnet",
                    "licenseType": "NoLicenseType",
                    "disksToInclude": [
                        {
                            "diskId": "6000C291-5106-2aac-7a74-4f33c3ddb78c",
                            "isOSDisk": "true",
                            "logStorageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C293-39a1-bd70-7b24-735f0eeb79c4",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        },
                        {
                            "diskId": "6000C29e-cbee-4d79-39c7-d00dd0208aa9",
                            "isOSDisk": "false",
                            "logStorageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                            "logStorageAccountSasSecretName": "migratelsa1671875959-cacheSas",
                            "diskEncryptionSetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/CONTOSOMIGRATIONTARGET/providers/Microsoft.Compute/diskEncryptionSets/ContosoCMKDES",
                            "diskType": "Standard_LRS"
                        }
                    ],
                    "dataMoverRunAsAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                    "snapshotRunAsAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.OffAzure/VMwareSites/VMwareApplianca8basite/runasaccounts/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
                    "targetBootDiagnosticsStorageAccountId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoVMwareCMK/providers/Microsoft.Storage/storageAccounts/migratelsa1671875959",
                    "performAutoResync": "true",
                    "targetVmName": "FPL-W19-09"
                }
            }
        }
    ]
}

レプリケーションを設定する

これで、編集した Resource Manager テンプレートをプロジェクト リソース グループにデプロイして、VM のレプリケーションを設定できます。 Azure Resource Manager テンプレートと 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 :

次のステップ

ポータル エクスペリエンスを使用してレプリケーションの状態を監視し、テストの移行と移行を実行します。