你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
适用于机密虚拟机的 Azure 备份(VM)目前为预览版。 有关适用于 Beta 版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 适用于 Microsoft azure 预览版的补充使用条款 。
本文介绍了如何通过使用 Azure 备份 恢复操作系统磁盘加密的机密虚拟机(CVM),使用平台托管密钥(PMK)或客户托管密钥(CMK)。 该文档说明了在不同密钥和磁盘加密集(DES)状态下的恢复行为,并提供了密钥丢失情况下的恢复流程。
了解 机密 VM 备份支持的场景。
支持的还原场景
Azure 备份 支持以下操作系统磁盘加密机密虚拟机的恢复场景:
| 类别 | 支持详细信息 |
|---|---|
| 还原类型 | 恢复虚拟机(备用位置恢复)、恢复虚拟机(原始位置恢复)和恢复磁盘 |
| 加密配置 | 根据恢复层级支持情况,使用原始加密配置或客户提供的替代磁盘加密集进行 OS 磁盘加密还原 |
有关支持边界和区域可用性,请参见 机密虚拟机备份的支持矩阵。
从快照层恢复
快照层恢复点支持以下场景:
| 情景 | 支持详细信息 | 还原步骤 |
|---|---|---|
| 备份时使用的原始密钥可在与同一DES关联的密钥存储中获得 | 支持 | 恢复时使用原始 DES |
| 自备份执行后,密钥会被轮换 | 支持 | 密钥旋转也会传播到对应的快照。 恢复时使用原始 DES |
| 备份时使用的原始密钥会被删除 | 不支持 | 不支持快照级恢复点 |
| 用新密钥封装恢复后的 CVM 操作系统磁盘 | 不支持 | 不支持快照级恢复点 |
如果你为一个同时具有快照层级和保管库层级的恢复点提供新的 DES,还原过程会尝试从保管库层级进行还原。
从保管库层级还原
Vault级恢复点支持以下场景:
| 情景 | 支持详细信息 | 还原步骤 |
|---|---|---|
| 备份时使用的原始密钥可在与同一DES关联的密钥存储中获得 | 支持 | 恢复时使用原始 DES |
| 自备份执行后,密钥会被轮换 | 支持 |
遵循两步恢复流程。 DES 关联:已轮换的新密钥 |
| 备份时使用的原始密钥会从密钥存储中删除 | 支持 | 遵循两步恢复流程 |
| 用新密钥封装恢复后的 CVM 操作系统磁盘 | 支持 |
遵循两步恢复流程。 DES关联:新密钥 |
对于使用新密钥包装密钥进行保险库层级恢复:
- 提供与你要用于已还原 OS 磁盘的新密钥关联的 DES。
- 如果新的(包裹)密钥与原密钥(解包)不同,确保两个密钥都存在于同一个密钥库中。
- Azure 备份 在恢复时使用原始密钥展开备份数据,并用新密钥包裹恢复后的操作系统磁盘。
成功还原要求
当 Azure 备份 能够验证所需的加密关系时,恢复才会成功。
| 恢复点级别 | Criteria |
|---|---|
| Snapshot | 提供的磁盘加密集与原始版本相同。 |
| 拱顶 | - 提供的 DES 与原始密钥库关联,且原始密钥存在。 - 提供的 DES 关联到另一个密钥库,该密钥库中从备份中恢复了原始密钥。 |
恢复流量
通过使用原始加密资产恢复
在以下情况下使用此选项:
- 原始的DES资源是存在的。
- 原始的 密钥保管库 资源仍然存在。
- 必需的密钥仍然可用。
在此场景中:
- 无需额外的加密配置。
- Azure 备份 会自动重建虚拟机加密配置。
要使用原始加密资源恢复,请继续使用备份中的默认加密选项。
如果你没有输入,默认会选择这个选项。 如果未满足成功恢复条件,恢复失败。
使用替代加密资产恢复
在以下情况下使用此选项:
- 原始的密钥库被删除了。
- 原始密钥被删除了。
- 原始的DES资源无法获得。
- 你需要用不同的密钥来封装恢复后的操作系统磁盘。
成功标准
- 快照层的恢复不支持这种模式。
- 与新DES关联的密钥库应包含备份时使用的原始密钥。 如有需要,恢复 丢失的钥匙。
- 如果你在密钥包装和解包操作中使用不同的密钥,这两个密钥都必须位于同一密钥保管库中。 新密钥必须与所提供的DES关联。
操作系统磁盘加密配置
对于操作系统磁盘恢复,选择 “提供磁盘加密集”进行恢复 ,并选择有效的 DES。
注释
对于您为恢复操作提供的任何新 DES,备份服务都需要访问其所引用的密钥保管库。 所需权限:获取并列出密钥。 了解更多 关于权限分配的信息。
原始加密材料不可用时如何恢复
如果原始密钥被删除、禁用或无法访问:
- 触发恢复尝试。
- Azure 备份 将所需的密钥材料导出到配置好的预留位置。
- 将所需的密钥还原到由客户控制的 密钥保管库 中。
- 创建所需的磁盘加密集资源。
- 通过使用新创建的 DES 资源重新尝试恢复。
还原机密虚拟机的缺失密钥
如果还原操作失败,则需要还原 Azure 备份的密钥。
要通过PowerShell恢复密钥,请按照以下步骤操作:
要选择包含受保护CVM和CMK的保险库,请在命令中输入资源组和保险库名称,然后运行该命令。
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "<vault-rg>" -Name "<vault-name>"若要列出过去七天内所有失败的还原作业,请运行以下 cmdlet。 如果要提取较旧的作业,请更新 cmdlet 中的日期范围。
$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 >'若要使用 CMK 还原包含 CVM 密钥详细信息的 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 恢复密钥,备份管理服务默认就拥有足够的权限。 了解如何授予 密钥保管库 或托管 HSM 的访问权限。
为 DES 和机密来宾 VM 代理分配还原权限
磁盘加密集和机密来宾 VM 代理需要对密钥保管库或托管 HSM 的权限。 要提供权限,请执行以下步骤:
对于 Key Vault:若要授予对 Key Vault 的权限,可以按照 文档中的 以下步骤或执行以下步骤:
- 导航到磁盘加密集实例。
- 选择消息“要将磁盘、映像或快照与此磁盘加密集关联,你必须向密钥保管库授予权限”并授予权限。
对于托管 HSM:若要向托管 HSM 授予权限,请执行以下步骤:
为新创建的 DES 分配托管 HSM 加密用户角色:
- 在 Azure 门户中,转到 “托管 HSM>设置”,然后选择“ 本地 RBAC”。
- 若要添加新的角色分配,请选择“ 添加”。
- 在 “角色”下,选择 “托管 HSM 加密用户角色”。
- 在 “作用域”下,选择还原的密钥。 还可以选择 “所有密钥”。
- 在 安全主体上,选择 新建的 DES。
为机密访客 VM 代理分配启动 CVM 所需的权限:
- 在 Azure 门户中,转到 “托管 HSM>设置”,然后选择“ 本地 RBAC”。
- 若要添加新的角色分配,请选择“ 添加”。
- 在 “角色”下,选择 “托管 HSM 加密服务加密用户”。
- 在 “作用域”下,选择还原的密钥。 还可以选择 “所有密钥”。
- 在 安全主体上,选择 机密客体 VM 代理。
权限更改后,允许 RBAC 传播,再尝试恢复。
还原失败故障排查
如果恢复操作失败,请使用以下检查:
- 验证 DES 是否存在,并且引用了预期的密钥和密钥版本。
- 验证源密钥没有被删除或禁用。
- 验证DES和Confidential Guest VM Agent是否拥有所需的权限。
- 在密钥恢复和权限传播后,重新尝试恢复操作。