使用 Azure 備份 還原機密虛擬機(預覽)

這很重要

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 關聯:新金鑰

對於使用新裝合金鑰進行的保存庫層還原:

  1. 提供與您要用於已還原作業系統磁碟之新金鑰相關聯的 DES。
  2. 如果新的(包裹)金鑰與原本的(解包)金鑰不同,請確保兩個金鑰都存在於同一個金鑰庫中。
  3. Azure 備份 在還原時使用原始金鑰來展開備份資料,並用新金鑰包裝還原後的作業系統磁碟。

成功還原的必要條件

當 Azure 備份 能驗證所需的加密關係時,還原才會成功。

還原點層 Criteria
Snapshot 所提供的磁碟加密組與原始版本相同。
保存庫 - 所提供的 DES 與原始金鑰庫相同,且原始金鑰存在。
- 所提供的 DES 與另一個金鑰庫相關聯,該金庫中原始金鑰已從備份中恢復。

恢復流量

利用原始加密資產還原

以下情況下可使用此選項:

  • 原始的 DES 資源仍然存在。
  • 原始的 金鑰保存庫 資源仍然存在。
  • 所需鑰匙仍可取得。

在此情節中:

  • 不需要額外的加密設定。
  • Azure 備份 會自動重建虛擬機加密設定。

若要使用原始加密資產還原,請繼續從備份中選擇預設的加密選項。

顯示在機密 VM 還原時選取磁碟加密集的螢幕截圖。

如果你沒有提供輸入,這個選項預設會被選中。 如果未達成成功還原條件,還原就會失敗。

使用替代加密資產還原

以下情況下可使用此選項:

  • 原有的金鑰保存庫已刪除。
  • 原始金鑰被刪除。
  • 原始 DES 資源無法取得。
  • 你需要用不同的金鑰來包裝還原的作業系統磁碟。
成功標準
  • 從快照層還原不支援此模式。
  • 與新 DES 相關的金鑰庫應該包含備份時使用的原始金鑰。 如有需要,請 恢復遺失的鑰匙
  • 如果你在包裹和展開操作中使用不同的金鑰,兩個金鑰必須同時存在於同一個金鑰庫中。 新金鑰必須是與所提供 DES 相關聯的金鑰。
作業系統磁碟加密設定

若要復原 OS 磁碟,請選取 「提供磁碟加密設定集以進行還原」,並選擇有效的 DES。

截圖顯示在機密虛擬機還原時更換磁碟加密組的選擇。

備註

對於任何你為還原作業提供的新 DES,備份服務都需要存取其所參照的金鑰保存庫。 所需權限:取得並列出金鑰。 了解更多 關於權限分配的資訊。

當原始加密資產無法取得時,如何恢復

若原始金鑰被刪除、停用或無法存取:

  1. 觸發還原嘗試。
  2. Azure 備份 會將所需的金鑰資料匯出到已設定的暫存位置。
  3. 還原所需金鑰到客戶自控 金鑰保存庫。
  4. 建立所需的磁碟加密集資源。
  5. 請使用新建立的 DES 資源重新嘗試還原。

還原機密虛擬機遺失的密鑰

如果還原操作失敗,你需要還原 Azure 備份 備份的金鑰。

要使用 PowerShell 還原金鑰,請依照以下步驟操作:

  1. 要選擇包含受保護 CVM 和 CMK 的保險庫,請在 cmdlet 中輸入資源群組及保險庫名稱,然後執行該 cmdlet。

    $vault = Get-AzRecoveryServicesVault -ResourceGroupName "<vault-rg>" -Name "<vault-name>"
    
  2. 若要列出過去七天內所有失敗的還原任務,請執行以下指令。 如果你想取得較舊的工作,可以在指令清單中更新日期範圍。

    $Jobs = Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -Status Failed -Operation Restore -VaultId $vault.ID
    
  3. 要從結果中選擇失敗的還原工作並取得工作細節,請執行以下 cmdlet:

    範例

    $JobDetails = Get-AzRecoveryServicesBackupJobDetail -Job $Jobs[0] -VaultId $vault.ID
    
  4. 要從工作細節取得所有金鑰還原所需的參數,請執行以下 cmdlet:

    $properties = $JobDetails.properties
    $storageAccountName = $properties["Target Storage Account Name"]
    $containerName = $properties["Config Blob Container Name"]
    $securedEncryptionInfoBlobName = $properties["Secured Encryption Info Blob Name"]
    
  5. 要選擇用於還原的目標儲存帳號,請在以下 cmdlet 中輸入其資源群組,然後執行該 cmdlet:

    Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName '<storage-account-rg >'
    
  6. 要還原包含 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 
    
  7. 在先前提到的目標路徑產生 JSON 檔案後,執行以下 cmdlet 從 JSON 資料產生金鑰 blob 檔案:

    $keyDestination = 'C:\keyDetails.blob'
    [io.file]::WriteAllBytes($keyDestination, [System.Convert]::FromBase64String($encryptionObject.OsDiskEncryptionDetails.KeyBackupData)) 
    
  8. 要將金鑰還原回鑰匙庫或受管硬體安全模組(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 擁有權限。 若要提供權限,請遵循這些步驟:

關於金鑰保險庫:要授予金鑰金庫權限,你可以依照 文件中的以下步驟 操作,或依照以下步驟操作:

  1. 瀏覽至磁碟加密集執行個體。
  2. 選擇訊息: 要將磁碟、映像檔或快照與此磁碟加密組關聯,您必須授權金鑰庫 並授權權限。

對於受管HSM:要授予受管HSM權限,請依照以下步驟操作:

  1. 將新建立的 DES 指派為受管理 HSM 加密使用者角色:

    1. Azure 入口網站,前往「管理型 HSM>設定」,然後選擇「本地 RBAC」。
    2. 要新增角色指派,請選擇 新增
    3. 角色中,選擇 受管理的 HSM 加密用戶角色
    4. Scope 中,選擇還原的金鑰。 你也可以選擇 「所有鍵」。
    5. 安全主體中,選擇 新建立的 DES
  2. 對機密訪客虛擬機代理(Confidential Guest VM Agent)分配必要的權限以啟動 CVM:

    1. Azure 入口網站,前往「管理型 HSM>設定」,然後選擇「本地 RBAC」。
    2. 要新增角色指派,請選擇 新增
    3. 角色 中,選擇 受管理的 HSM 加密服務加密使用者
    4. Scope 中,選擇還原的金鑰。 你也可以選擇 「所有鍵」。
    5. 安全主體中,選擇 機密訪客虛擬代理

權限變更後,允許 RBAC 傳播後再嘗試還原。

針對還原失敗進行疑難排解

若還原操作失敗,請使用以下檢查:

  1. 驗證 DES 是否存在,且是否參考預期的金鑰及金鑰版本。
  2. 確認原始金鑰沒有被刪除或停用。
  3. 驗證 DES 與 Confidential Guest VM Agent 是否擁有所需權限。
  4. 在金鑰恢復和權限傳播後,請重試還原操作。