這很重要
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? (部分機器翻譯)
先決條件
開始移轉之前:
備份資料:在開始遷移流程前,先備份所有關鍵資料。
測試流程:可能的話,請先在非生產 VM 上測試移轉流程。
準備加密資源:確保您的虛擬機大小能支援主機加密。 大多數目前的 VM 大小都支援此功能。 如需 VM 大小需求的詳細資訊,請參閱使用主機加密啟用端對端加密。
文件組態:記錄您目前的 VM 組態,包括網路設定、延伸模組和已連結的資源。
移轉步驟
下列移轉步驟適用於大部分案例,但需注意每個作業系統的具體差異。
這很重要
Linux 虛擬機無法在安裝加密作業系統磁碟的情況下解密。 對於這些虛擬機,請建立一台新的虛擬機並安裝新的作業系統磁碟,然後遷移你的資料。 在檢閱以下一般流程之後,請參閱使用移轉具有加密作業系統磁碟的 Linux VM 一節。
停用 Azure 磁碟加密
首先,盡可能關閉現有的 Azure 磁碟加密:
- Windows:按照「停用加密」中的指示,並在 Windows 上移除加密擴充功能。
- Linux:如果僅資料磁碟已加密,請遵循在 Linux 上停用加密並移除加密延伸模組。 如果作業系統磁碟已加密,請參閱移轉具有加密作業系統磁碟的 Linux VM。
執行 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"
在確認主機加密正常運作之後:
- 測試虛擬機功能以確保應用程式正常運作。
- 確認資料是否可存取且完整。
- 當您對移轉感到滿意時,請刪除原始資源:
# 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 不同。
建立一台啟用主機加密的新虛擬機。
az vm create \ --resource-group "MyResourceGroup" \ --name "MyVM-New" \ --image "Ubuntu2204" \ --encryption-at-host true \ --admin-username "azureuser" \ --generate-ssh-keys對於資料移轉選項:
- 應用程式資料:使用 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 之後:
將新的虛擬機設定成與原始環境相符。
- 設定相同的網路配置。
- 安裝相同的應用程式和服務。
- 套用相同的安全設定。
在停用原始虛擬機前,請徹底測試。
這種方法適用於 Windows 和 Linux 虛擬機,但對於無法原地解密的加密作業系統磁碟的 Linux 虛擬機尤其重要。
關於資料遷移的指引,請參考使用 SCP 將 VHD 上傳到 Azure 並複製檔案到 Linux 虛擬機。
AVD 主機集區的建議做法
對於Azure 虛擬桌面(AVD)環境,建議的做法是重新部署會話主機,而非嘗試磁碟層級遷移。
對於集區式與個人主機集區,支援的方法是將啟用 Azure 磁碟加密 (ADE) 的工作階段主機替換成啟用主機型加密的新虛擬機器。
Steps
創造一個新的金色形象。
- 請確保沒有啟用 Azure 磁碟加密。
- 驗證應用程式與配置。
部署新的會話主機。
- 使用 Azure Compute Gallery 或自訂映像檔。
- 在虛擬機建立時啟用主機加密。 欲了解更多資訊,請參閱 啟用使用主機加密的端對端加密。
新增新工作階段主機到主機集區。
- 確保工作階段主機良好且願意接受連線。
驗證工作負載。
- 確認使用者設定檔存取權限,例如 FSLogix。
- 驗證應用程式與政策。
清空現有已啟用 ADE 的工作階段主機。
- 啟用清空模式以封鎖新的工作階段。
- 等現有會話結束,或手動登出使用者。
移除並停用舊的會話主機。
- 從主機集區中移除工作階段主機。
- 刪除相關的虛擬機器和磁碟。
已加入網域的 VM 考量
如果您的虛擬機屬於 Active Directory 網域,遷移過程中還需要更多步驟:
移轉前網域步驟
- 文件網域成員資格:記錄目前的網域、組織單位(OU)及任何特殊群組成員資格。
- 註記電腦帳號:在 Active Directory 中管理電腦帳號。
- 備份網域專屬設定:儲存任何域專屬設定、群組政策或憑證。
網域移除流程
從網域移除:在刪除原始虛擬機之前,先用以下方法將其從網域移除。
- 在 Windows 上使用
Remove-ComputerPowerShell 指令程式。 - 請使用系統屬性對話框切換為工作群組。
- 手動從Active Directory 使用者和電腦刪除電腦帳號。
- 在 Windows 上使用
清理 Active Directory:移除所有孤立的電腦帳號或 DNS 條目。
移轉後重新加入網域
加入新虛擬機到網域:在主機建立加密後,再將其加入網域。
-
Windows:使用
Add-ComputerPowerShell cmdlet 或系統屬性。 - Linux:使用手動設定主機網域服務。
-
Windows:使用
還原網域設定:重新套用任何域特定的設定、群組政策或憑證。
驗證網域功能:測試網域認證、群組政策應用及網路資源存取。
Linux 網域加入
對於使用 Microsoft Entra Domain Services 的 Linux 虛擬機,請透過手動 Linux 網域連接步驟將虛擬機加入受管理的網域。 欲了解更多資訊,請參閱「將 Ubuntu Linux 虛擬機加入 Microsoft Entra Domain Services 管理網域」。
重要的網域考量
- 新虛擬機的電腦 SID 不同,可能會影響某些應用程式。
- 重新整理 Kerberos 票證和快取憑證。
- 部分領域整合應用程式可能需要重新設定。
- 在遷移過程中,請做好可能暫時失去網域服務的準備。
移轉後驗證
在完成移轉之後,驗證主機加密是否正常運作:
檢查主機狀態下的加密:確認主機加密是否啟用。
az vm show --resource-group "MyResourceGroup" --name "MyVM-New" --query "securityProfile.encryptionAtHost"測試 VM 功能:確保您的應用程式和服務正常運作。
驗證磁碟加密:確認磁碟已正確加密:
Get-AzDisk -ResourceGroupName "MyResourceGroup" -DiskName "MyVM-OS-New" | Select-Object Name, DiskState監視效能:比較移轉前後的效能以確認預期的改進。
如需加密驗證的詳細資訊,請參閱使用主機加密啟用端對端加密。
Cleanup
在成功移轉和驗證之後:
刪除舊的虛擬機:移除原本經過 DEE 加密的虛擬機。
刪除舊磁碟:移除原本加密的磁碟。
更新金鑰保存庫存取原則:其他磁碟加密解決方案會使用標準金鑰保存庫授權機制。 如果您不再需要 Azure 磁碟加密的金鑰保存庫,請更新其存取原則以停用特殊磁碟加密設定:
az keyvault update --name "YourKeyVaultName" --resource-group "YourResourceGroup" --enabled-for-disk-encryption false
- 清理資源:移除遷移過程中產生的臨時資源。
- 更新文件:更新你的基礎設施文件,反映主機端遷移到加密的過程。
常見問題與解決方案
VM 大小不支援主機加密
解決方案:查看 支援的虛擬機大小清單 ,必要時調整虛擬機大小。
移轉後 VM 無法啟動
解決方法是:檢查所有磁碟是否正確連接,且作業系統磁碟是否設定為開機磁碟。
未啟用主機加密
解決方案:確認虛擬機是用該 --encryption-at-host true 參數建立的,且你的訂閱是否支援此功能。
效能問題持續存在
解決方案:驗證主機加密是否已正確啟用,以及 VM 大小是否支援預期的效能。