從 Azure 磁碟加密移轉到主機加密

這很重要

Azure 磁碟加密預定於 2028 年 9 月 15 日退休。 在此之前,您可以繼續使用 Azure 磁碟加密,不會中斷。 2028 年 9 月 15 日,啟用 ADE 的工作負載仍可繼續運行,但加密磁碟在虛擬機重啟後將無法解鎖,導致服務中斷。

對於新虛擬機,可以在主機上使用 加密 ,或考慮 機密虛擬機大小搭配作業系統磁碟加密 來處理機密運算工作負載。 所有啟用 ADE 的虛擬機(包括備份)必須在退休日前遷移至主機加密,以避免服務中斷。 詳情請參見「 從 Azure 磁碟加密遷移到主機加密 」。

本文提供將虛擬機器從 Azure 磁碟加密 (ADE) 移轉到主機加密的逐步指導。 遷移過程需要建立新的磁碟和虛擬機,因為不支援原地轉換。

移轉概觀

Azure 磁碟加密(ADE)透過 BitLocker(Windows)或 dm-crypt(Linux)加密虛擬機內的資料,而主機加密則在虛擬機主機層級加密資料,且不消耗虛擬機 CPU 資源。 主機加密會透過為所有 VM 資料 (包括暫存磁碟、快取,以及計算與儲存體之間的資料流程) 提供端對端加密,以增強 Azure 的預設伺服器端加密 (SSE)。

如需詳細資訊,請參閱受控磁碟加密選項概觀使用主機加密啟用端對端加密

移轉限制和考量

在開始遷移流程前,請檢視以下影響您遷移策略的重要限制與考量:

  • 無法原地遷移:你無法直接將 DEDE 加密的磁碟轉成主機加密。 移轉需要建立新的磁碟和 VM。

  • Linux 作業系統磁碟限制:Azure 不支援在 Linux 作業系統磁碟上停用 ADE。 對於使用 ADE 加密作業系統磁碟的 Linux 虛擬機,請建立一台新的虛擬機並使用新的作業系統磁碟。

  • Windows ADE 加密模式:在 Windows 虛擬機上,Azure 磁碟加密 只能加密作業系統磁碟,或是所有磁碟(OS + 資料磁碟)。 你不能只加密 Windows 虛擬機的資料磁碟。

  • UDE 旗標持續性:使用 Azure 磁碟加密加密的磁碟具有統一資料加密 (UDE) 旗標,即使解密後仍會持續保留。 無論是快照還是使用複製選項的磁碟複製,都會保留這個 UDE 標誌。 遷移過程需要透過上傳方法建立新的受管理磁碟,並複製 VHD 的 blob 資料,這樣會建立一個新的磁碟物件,且不會從來源磁碟中移除任何元資料。

  • 需要停機:移轉流程需要 VM 停機,才能進行磁碟作業和 VM 重新建立。

  • 已加入網域的 VM:如果您的 VM 是 Active Directory 網域的一部分,則需要執行更多步驟:

    • 刪除前先把原本的虛擬機從網域中移除。
    • 建立新虛擬機後,重新加入網域。
    • 對於 Linux 虛擬機,請手動將虛擬機加入受管理網域。

    如需詳細資訊,請參閱什麼是 Microsoft Entra Domain Services? (部分機器翻譯)

先決條件

開始移轉之前:

  1. 備份資料:在開始遷移流程前,先備份所有關鍵資料。

  2. 測試流程:可能的話,請先在非生產 VM 上測試移轉流程。

  3. 準備加密資源:確保您的虛擬機大小能支援主機加密。 大多數目前的 VM 大小都支援此功能。 如需 VM 大小需求的詳細資訊,請參閱使用主機加密啟用端對端加密

  4. 文件組態:記錄您目前的 VM 組態,包括網路設定、延伸模組和已連結的資源。

移轉步驟

下列移轉步驟適用於大部分案例,但需注意每個作業系統的具體差異。

這很重要

Linux 虛擬機無法在安裝加密作業系統磁碟的情況下解密。 對於這些虛擬機,請建立一台新的虛擬機並安裝新的作業系統磁碟,然後遷移你的資料。 在檢閱以下一般流程之後,請參閱使用移轉具有加密作業系統磁碟的 Linux VM 一節。

停用 Azure 磁碟加密

首先,盡可能關閉現有的 Azure 磁碟加密:

執行 ADE 停用命令之後,Azure 入口網站中的 VM 加密狀態會立即變更為「SSE + PMK」。 然而,作業系統層級的實際解密過程需要時間,並且取決於加密的資料量。 您必須先確認作業系統層級解密已完成,才能繼續進行下一個步驟。

對於 Windows VM:

  • 以管理員身份開啟命令提示字元並執行: manage-bde -status
  • 確認所有磁碟區都顯示「完全解密」狀態。
  • 確認所有加密卷的解密百分比顯示 100%。

對於 Linux VM (僅限資料磁碟):

  • 執行:sudo cryptsetup status /dev/mapper/<device-name>
  • 確認加密裝置是否已不再啟用。
  • 執行 lsblk 以確認沒有任何加密對應仍然存在。

等待完全解密後再繼續磁碟遷移,以確保資料完整性。

建立新的受控磁碟

建立不繼承 ADE 加密中繼資料的新磁碟。 此流程適用於 Windows 與 Linux 虛擬機,但對 Linux 作業系統磁碟有特別考量。

這很重要

從 Azure 複製受控磁碟時,會增加 512 位元組的偏移量。 Azure 在回報磁碟大小時會省略頁尾。 如果你不加這個偏移量,複製就會失敗。 以下腳本會為你加上這個偏移量。

如果你建立作業系統磁碟,請加上 --hyper-v-generation <yourGeneration>az disk create

# Set variables
sourceDiskName="MySourceDisk"
sourceRG="MyResourceGroup"
targetDiskName="MyTargetDisk"
targetRG="MyResourceGroup"
targetLocation="eastus"
# For OS disks, specify either "Windows" or "Linux"
# For data disks, omit the targetOS variable and --os-type parameter
targetOS="Windows"

# Get source disk size in bytes
sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)

# Create a new empty target disk with upload capability
az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs

# Generate SAS URIs for both disks
targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)

sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --access-level Read --duration-in-seconds 86400 --query [accessSas] -o tsv)

# Copy the disk data by using AzCopy
azcopy copy $sourceSASURI $targetSASURI --blob-type PageBlob

# Revoke SAS access when complete
az disk revoke-access -n $sourceDiskName -g $sourceRG

az disk revoke-access -n $targetDiskName -g $targetRG

此方法可建立不含 Azure 磁碟加密中繼資料 (UDE 旗標) 的新磁碟,這對於乾淨的移轉至關重要。

使用加密建立新的 VM

用你選擇的加密方法,使用新建立的磁碟建立新的虛擬機。

您可以根據您的安全性需求從多種加密選項中進行選擇。 本文提供了使用主機加密方法建立新 VM 的步驟,這是最常見的移轉路徑。 關於其他加密選項,請參見 「管理磁碟加密選項概述」。

使用主機加密方法建立新的 VM

主機加密提供了最接近 Azure 磁碟加密 覆蓋範圍的服務。 本節介紹主機加密。

對於作業系統磁碟:

# For Windows OS disks
az vm create
  --resource-group "MyResourceGroup"
  --name "MyVM-New"
  --os-type "Windows"
  --attach-os-disk "MyTargetDisk"
  --encryption-at-host true

# For Linux OS disks
# az vm create
#   --resource-group "MyResourceGroup"
#   --name "MyVM-New"
#   --os-type "Linux"
#   --attach-os-disk "MyTargetDisk"
#   --encryption-at-host true

對於資料磁碟:

# Enable encryption at host on the VM
az vm update
  --resource-group "MyResourceGroup"
  --name "MyVM-New"
  --encryption-at-host true

# Attach the newly created data disk
az vm disk attach
  --resource-group "MyResourceGroup"
  --vm-name "MyVM-New"
  --name "MyTargetDisk"

驗證並設定新磁碟

建立已啟用主機端加密的新虛擬機器後,請確認並正確設定磁碟,以供您的作業系統使用。

對於 Windows VM:

  • 確認磁碟字母是否正確分配。
  • 檢查應用程式是否能正確存取這些磁碟。
  • 更新任何引用特定磁碟 ID 的應用程式或腳本。

對於 Linux VM:

  • 使用新的磁碟 UUID 更新 /etc/fstab
  • 將資料磁碟掛載到正確的掛載點。
# Get UUIDs of all disks
sudo blkid

# Mount all disks defined in fstab
sudo mount -a

Windows 和 Linux 可能都需要針對你的應用程式或工作負載進行更多特定的設定步驟。

驗證加密和清理

驗證主機加密是否已在 Windows 和 Linux VM 上正確設定。

# Check encryption at host status
az vm show --resource-group "MyResourceGroup" --name "MyVM-New" --query "securityProfile.encryptionAtHost"

在確認主機加密正常運作之後:

  1. 測試虛擬機功能以確保應用程式正常運作。
  2. 確認資料是否可存取且完整。
  3. 當您對移轉感到滿意時,請刪除原始資源:
# Delete the original VM
az vm delete --resource-group "MyResourceGroup" --name "MyVM-Original" --yes

# Delete the original disk
az disk delete --resource-group "MyResourceGroup" --name "MySourceDisk" --yes

移轉具有加密作業系統磁碟的 Linux VM

因為 Linux 作業系統的磁碟無法關閉加密,這個過程和 Windows 不同。

  1. 建立一台啟用主機加密的新虛擬機。

    az vm create \
      --resource-group "MyResourceGroup" \
      --name "MyVM-New" \
      --image "Ubuntu2204" \
      --encryption-at-host true \
      --admin-username "azureuser" \
      --generate-ssh-keys
    
  2. 對於資料移轉選項:

    • 應用程式資料:使用 SCP、rsync 或其他檔案傳輸方式來複製資料。
    • 設定:複製重要的設定檔與設定。
    • 複雜應用程式:使用適合您應用程式的備份與還原程序。
    # Example of using SCP to copy files from source to new VM
    az vm run-command invoke -g MyResourceGroup -n MyVM-Original --command-id RunShellScript \
      --scripts "scp -r /path/to/data azureuser@new-vm-ip:/path/to/destination"
    

在建立新的 VM 之後:

  1. 將新的虛擬機設定成與原始環境相符。

    • 設定相同的網路配置。
    • 安裝相同的應用程式和服務。
    • 套用相同的安全設定。
  2. 在停用原始虛擬機前,請徹底測試。

這種方法適用於 Windows 和 Linux 虛擬機,但對於無法原地解密的加密作業系統磁碟的 Linux 虛擬機尤其重要。

關於資料遷移的指引,請參考使用 SCP 將 VHD 上傳到 Azure複製檔案到 Linux 虛擬機

對於Azure 虛擬桌面(AVD)環境,建議的做法是重新部署會話主機,而非嘗試磁碟層級遷移。

對於集區式與個人主機集區,支援的方法是將啟用 Azure 磁碟加密 (ADE) 的工作階段主機替換成啟用主機型加密的新虛擬機器。

Steps

  1. 創造一個新的金色形象

    • 請確保沒有啟用 Azure 磁碟加密。
    • 驗證應用程式與配置。
  2. 部署新的會話主機

  3. 新增新工作階段主機到主機集區

    • 確保工作階段主機良好且願意接受連線。
  4. 驗證工作負載

    • 確認使用者設定檔存取權限,例如 FSLogix。
    • 驗證應用程式與政策。
  5. 清空現有已啟用 ADE 的工作階段主機

    • 啟用清空模式以封鎖新的工作階段。
    • 等現有會話結束,或手動登出使用者。
  6. 移除並停用舊的會話主機

    • 從主機集區中移除工作階段主機。
    • 刪除相關的虛擬機器和磁碟。

已加入網域的 VM 考量

如果您的虛擬機屬於 Active Directory 網域,遷移過程中還需要更多步驟:

移轉前網域步驟

  1. 文件網域成員資格:記錄目前的網域、組織單位(OU)及任何特殊群組成員資格。
  2. 註記電腦帳號:在 Active Directory 中管理電腦帳號。
  3. 備份網域專屬設定:儲存任何域專屬設定、群組政策或憑證。

網域移除流程

  1. 從網域移除:在刪除原始虛擬機之前,先用以下方法將其從網域移除。

    • 在 Windows 上使用 Remove-Computer PowerShell 指令程式。
    • 請使用系統屬性對話框切換為工作群組。
    • 手動從Active Directory 使用者和電腦刪除電腦帳號。
  2. 清理 Active Directory:移除所有孤立的電腦帳號或 DNS 條目。

移轉後重新加入網域

  1. 加入新虛擬機到網域:在主機建立加密後,再將其加入網域。

    • Windows:使用Add-ComputerPowerShell cmdlet 或系統屬性。
    • Linux:使用手動設定主機網域服務。
  2. 還原網域設定:重新套用任何域特定的設定、群組政策或憑證。

  3. 驗證網域功能:測試網域認證、群組政策應用及網路資源存取。

Linux 網域加入

對於使用 Microsoft Entra Domain Services 的 Linux 虛擬機,請透過手動 Linux 網域連接步驟將虛擬機加入受管理的網域。 欲了解更多資訊,請參閱「將 Ubuntu Linux 虛擬機加入 Microsoft Entra Domain Services 管理網域」。

重要的網域考量

  • 新虛擬機的電腦 SID 不同,可能會影響某些應用程式。
  • 重新整理 Kerberos 票證和快取憑證。
  • 部分領域整合應用程式可能需要重新設定。
  • 在遷移過程中,請做好可能暫時失去網域服務的準備。

移轉後驗證

在完成移轉之後,驗證主機加密是否正常運作:

  1. 檢查主機狀態下的加密:確認主機加密是否啟用。

    az vm show --resource-group "MyResourceGroup" --name "MyVM-New" --query "securityProfile.encryptionAtHost"
    
  2. 測試 VM 功能:確保您的應用程式和服務正常運作。

  3. 驗證磁碟加密:確認磁碟已正確加密:

    Get-AzDisk -ResourceGroupName "MyResourceGroup" -DiskName "MyVM-OS-New" | Select-Object Name, DiskState
    
  4. 監視效能:比較移轉前後的效能以確認預期的改進。

如需加密驗證的詳細資訊,請參閱使用主機加密啟用端對端加密

Cleanup

在成功移轉和驗證之後:

  1. 刪除舊的虛擬機:移除原本經過 DEE 加密的虛擬機。

  2. 刪除舊磁碟:移除原本加密的磁碟。

  3. 更新金鑰保存庫存取原則:其他磁碟加密解決方案會使用標準金鑰保存庫授權機制。 如果您不再需要 Azure 磁碟加密的金鑰保存庫,請更新其存取原則以停用特殊磁碟加密設定:

    az keyvault update --name "YourKeyVaultName" --resource-group "YourResourceGroup" --enabled-for-disk-encryption false
    

  1. 清理資源:移除遷移過程中產生的臨時資源。
  2. 更新文件:更新你的基礎設施文件,反映主機端遷移到加密的過程。

常見問題與解決方案

VM 大小不支援主機加密

解決方案:查看 支援的虛擬機大小清單 ,必要時調整虛擬機大小。

移轉後 VM 無法啟動

解決方法是:檢查所有磁碟是否正確連接,且作業系統磁碟是否設定為開機磁碟。

未啟用主機加密

解決方案:確認虛擬機是用該 --encryption-at-host true 參數建立的,且你的訂閱是否支援此功能。

效能問題持續存在

解決方案:驗證主機加密是否已正確啟用,以及 VM 大小是否支援預期的效能。

後續步驟