這很重要
Azure 備份 for Confidential 虛擬機(VM)目前處於預覽階段。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。
本文說明如何利用 Azure 備份 恢復作業系統磁碟加密的機密虛擬機(CVM),使用平台管理金鑰(PMK)或客戶管理金鑰(CMK)。 它會說明在金鑰和磁碟加密集 (DES) 的各種狀態下的還原行為,並提供金鑰遺失情境的復原程序。
了解 機密虛擬機備份所支援的情境。
支援的還原情境
Azure 備份 支援以下作業系統磁碟加密機密虛擬機的還原情境:
| Category | 支援詳細資料 |
|---|---|
| 還原類型 | 還原虛擬機(替代位置還原)、還原虛擬機(原始位置還原)及還原磁碟 |
| 加密配置 | 還原可根據還原層支援,使用原始加密設定或客戶提供的替換磁碟加密組來進行 OS 磁碟加密 |
關於支援邊界與區域可用性,請參閱 機密虛擬機備份的支援矩陣。
從快照層還原
以下情境支援快照層還原點:
| Scenario | 支援詳細資料 | 恢復步驟 |
|---|---|---|
| 備份時使用的原始金鑰可在與同一 DES 相關的金鑰庫中找到 | 支援 | 還原時使用原始 DES |
| 自執行備份後,金鑰已輪替 | 支援 | 金鑰輪替也會傳播到相應的快照。 還原時使用原始 DES |
| 備份時使用的原始金鑰會被刪除 | 不支援 | 不支援快照層還原點 |
| 用新金鑰封裝還原後的 CVM 作業系統磁碟 | 不支援 | 不支援快照層還原點 |
如果您為同時具有快照和保存庫層的還原點提供新的 DES,還原流程會嘗試從保存庫層進行還原。
從保存庫層還原
保存庫層還原點支援以下情境:
| Scenario | 支援詳細資料 | 恢復步驟 |
|---|---|---|
| 備份時使用的原始金鑰可在與同一 DES 相關的金鑰庫中找到 | 支援 | 還原時使用原始 DES |
| 自執行備份後,金鑰已輪替 | 支援 |
請遵循兩步驟的恢復流程。 DES 關聯:新鍵的輪換 |
| 備份時使用的原始金鑰會從金鑰庫中刪除 | 支援 | 請遵循兩步驟的恢復流程 |
| 用新金鑰封裝還原後的 CVM 作業系統磁碟 | 支援 |
請遵循兩步驟的恢復流程。 DES 關聯:新金鑰 |
對於使用新裝合金鑰進行的保存庫層還原:
- 提供與您要用於已還原作業系統磁碟之新金鑰相關聯的 DES。
- 如果新的(包裹)金鑰與原本的(解包)金鑰不同,請確保兩個金鑰都存在於同一個金鑰庫中。
- Azure 備份 在還原時使用原始金鑰來展開備份資料,並用新金鑰包裝還原後的作業系統磁碟。
成功還原的必要條件
當 Azure 備份 能驗證所需的加密關係時,還原才會成功。
| 還原點層 | Criteria |
|---|---|
| Snapshot | 所提供的磁碟加密組與原始版本相同。 |
| 保存庫 | - 所提供的 DES 與原始金鑰庫相同,且原始金鑰存在。 - 所提供的 DES 與另一個金鑰庫相關聯,該金庫中原始金鑰已從備份中恢復。 |
恢復流量
利用原始加密資產還原
以下情況下可使用此選項:
- 原始的 DES 資源仍然存在。
- 原始的 金鑰保存庫 資源仍然存在。
- 所需鑰匙仍可取得。
在此情節中:
- 不需要額外的加密設定。
- Azure 備份 會自動重建虛擬機加密設定。
若要使用原始加密資產還原,請繼續從備份中選擇預設的加密選項。
如果你沒有提供輸入,這個選項預設會被選中。 如果未達成成功還原條件,還原就會失敗。
使用替代加密資產還原
以下情況下可使用此選項:
- 原有的金鑰保存庫已刪除。
- 原始金鑰被刪除。
- 原始 DES 資源無法取得。
- 你需要用不同的金鑰來包裝還原的作業系統磁碟。
成功標準
- 從快照層還原不支援此模式。
- 與新 DES 相關的金鑰庫應該包含備份時使用的原始金鑰。 如有需要,請 恢復遺失的鑰匙。
- 如果你在包裹和展開操作中使用不同的金鑰,兩個金鑰必須同時存在於同一個金鑰庫中。 新金鑰必須是與所提供 DES 相關聯的金鑰。
作業系統磁碟加密設定
若要復原 OS 磁碟,請選取 「提供磁碟加密設定集以進行還原」,並選擇有效的 DES。
備註
對於任何你為還原作業提供的新 DES,備份服務都需要存取其所參照的金鑰保存庫。 所需權限:取得並列出金鑰。 了解更多 關於權限分配的資訊。
當原始加密資產無法取得時,如何恢復
若原始金鑰被刪除、停用或無法存取:
- 觸發還原嘗試。
- Azure 備份 會將所需的金鑰資料匯出到已設定的暫存位置。
- 將還原所需金鑰到客戶自控 金鑰保存庫。
- 建立所需的磁碟加密集資源。
- 請使用新建立的 DES 資源重新嘗試還原。
還原機密虛擬機遺失的密鑰
如果還原操作失敗,你需要還原 Azure 備份 備份的金鑰。
要使用 PowerShell 還原金鑰,請依照以下步驟操作:
要選擇包含受保護 CVM 和 CMK 的保險庫,請在 cmdlet 中輸入資源群組及保險庫名稱,然後執行該 cmdlet。
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "<vault-rg>" -Name "<vault-name>"若要列出過去七天內所有失敗的還原任務,請執行以下指令。 如果你想取得較舊的工作,可以在指令清單中更新日期範圍。
$Jobs = Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -Status Failed -Operation Restore -VaultId $vault.ID要從結果中選擇失敗的還原工作並取得工作細節,請執行以下 cmdlet:
範例
$JobDetails = Get-AzRecoveryServicesBackupJobDetail -Job $Jobs[0] -VaultId $vault.ID要從工作細節取得所有金鑰還原所需的參數,請執行以下 cmdlet:
$properties = $JobDetails.properties $storageAccountName = $properties["Target Storage Account Name"] $containerName = $properties["Config Blob Container Name"] $securedEncryptionInfoBlobName = $properties["Secured Encryption Info Blob Name"]要選擇用於還原的目標儲存帳號,請在以下 cmdlet 中輸入其資源群組,然後執行該 cmdlet:
Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName '<storage-account-rg >'要還原包含 CVM 與 CMK 關鍵細節的 JSON 設定檔,請執行以下 cmdlet:
$destination_path = 'C:\cvmcmkencryption_config.json' Get-AzStorageBlobContent -Blob $securedEncryptionInfoBlobName -Container $containerName -Destination $destination_path $encryptionObject = Get-Content -Path $destination_path | ConvertFrom-Json在先前提到的目標路徑產生 JSON 檔案後,執行以下 cmdlet 從 JSON 資料產生金鑰 blob 檔案:
$keyDestination = 'C:\keyDetails.blob' [io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskEncryptionDetails.KeyBackupData))要將金鑰還原回鑰匙庫或受管硬體安全模組(HSM),請執行以下 cmdlet:
Restore-AzKeyVaultKey -VaultName '<target_key_vault_name> ' -InputFile $keyDestination For MHSM Use, Restore-AzKeyVaultKey -HsmName '<target_mhsm_name>' -InputFile $keyDestination
現在,建立新的 DES,加密類型為 使用 CMK 的機密磁碟加密,並將其指向已還原的金鑰。 在嘗試還原前,請確保 DES 有所需的金鑰存取權限。 如果你使用新的 金鑰保存庫 或 Managed HSM 來還原金鑰,Backup Management Service 預設就擁有足夠的權限。 了解如何授予金鑰庫或受管 HSM 存取權限。
將權限指派給 DES 和機密客體 VM 代理程式以進行還原
磁碟加密設定與機密訪客虛擬代理程式需要對金鑰庫或受管理 HSM 擁有權限。 若要提供權限,請遵循這些步驟:
關於金鑰保險庫:要授予金鑰金庫權限,你可以依照 文件中的以下步驟 操作,或依照以下步驟操作:
- 瀏覽至磁碟加密集執行個體。
- 選擇訊息: 要將磁碟、映像檔或快照與此磁碟加密組關聯,您必須授權金鑰庫 並授權權限。
對於受管HSM:要授予受管HSM權限,請依照以下步驟操作:
將新建立的 DES 指派為受管理 HSM 加密使用者角色:
- 在 Azure 入口網站,前往「管理型 HSM>設定」,然後選擇「本地 RBAC」。
- 要新增角色指派,請選擇 新增。
- 在 角色中,選擇 受管理的 HSM 加密用戶角色。
- 在 Scope 中,選擇還原的金鑰。 你也可以選擇 「所有鍵」。
- 在 安全主體中,選擇 新建立的 DES。
對機密訪客虛擬機代理(Confidential Guest VM Agent)分配必要的權限以啟動 CVM:
- 在 Azure 入口網站,前往「管理型 HSM>設定」,然後選擇「本地 RBAC」。
- 要新增角色指派,請選擇 新增。
- 在 角色 中,選擇 受管理的 HSM 加密服務加密使用者。
- 在 Scope 中,選擇還原的金鑰。 你也可以選擇 「所有鍵」。
- 在 安全主體中,選擇 機密訪客虛擬代理。
權限變更後,允許 RBAC 傳播後再嘗試還原。
針對還原失敗進行疑難排解
若還原操作失敗,請使用以下檢查:
- 驗證 DES 是否存在,且是否參考預期的金鑰及金鑰版本。
- 確認原始金鑰沒有被刪除或停用。
- 驗證 DES 與 Confidential Guest VM Agent 是否擁有所需權限。
- 在金鑰恢復和權限傳播後,請重試還原操作。