备份和还原加密的 Azure 虚拟机

本文介绍如何使用 Azure 备份服务来备份和还原包含已加密磁盘的 Windows 或 Linux Azure 虚拟机 (VM)。 有关详细信息,请参阅 Azure VM 备份的加密

使用平台管理的密钥进行加密

默认情况下,VM 中的所有磁盘都会通过使用存储服务加密的平台管理的密钥 (PMK) 自动进行静态加密。 你可以使用 Azure 备份来备份这些 VM,而无需采取任何支持在你方加密所需的特定措施。 有关使用平台管理的密钥进行加密的详细信息,请参阅本文

Encrypted disks

使用客户管理的密钥进行加密

使用客户管理的密钥 (CMK) 对磁盘进行加密时,用于对磁盘进行加密的密钥存储在 Azure Key Vault 中,由你进行管理。 使用 CMK 的存储服务加密 (SSE) 不同于 Azure 磁盘加密 (ADE) 加密。 ADE 使用操作系统的加密工具。 SSE 对存储服务中的数据进行加密,使你可以将任何 OS 或映像用于 VM。

对于使用客户管理的密钥加密磁盘的虚拟机的备份或还原,无需执行任何显式操作。 存储在保管库中的这些 VM 的备份数据将使用保管库上使用的加密方法进行加密。

有关使用客户管理的密钥对托管磁盘进行加密的详细信息,请参阅本文

使用 ADE 的加密支持

Azure 备份支持备份已使用 Azure 磁盘加密 (ADE) 功能加密了其 OS/数据磁盘的 Azure VM。 ADE 使用 BitLocker 加密 Windows VM,使用 dm-crypt 功能加密 Linux VM。 ADE 与 Azure Key Vault 集成,可以管理磁盘加密密钥和机密。 使用 Key Vault Key 加密密钥 (KEk) 可以额外增加一个安全层,这样可以在将加密机密写入 Key Vault 之前对其进行加密。

无论是否使用 Microsoft Entra 应用,Azure 备份都可通过 ADE 备份和还原 Azure VM。有关摘要,请查看下表。

VM 磁盘类型 ADE (BEK/dm-crypt) ADE 和 KEK
非托管
托管

限制

  • 可以备份和还原同一订阅中的 ADE 加密的 VM。
  • Azure 备份支持使用独立密钥加密的 VM。 目前不支持属于用于加密 VM 的证书的任何密钥。
  • Azure 备份支持将加密的 Azure VM 跨区域还原到 Azure 配对区域。 有关详细信息,请参阅支持矩阵
  • 无法在文件/文件夹级别恢复 ADE 加密的 VM。 需要恢复整个 VM 才能还原文件和文件夹。
  • 还原 VM 时,无法对 ADE 加密的 VM 使用替换现有 VM 选项。 只有未加密的托管磁盘才支持此选项。

开始之前

开始之前,请执行以下操作:

  1. 确保你有一个或多个启用了 ADE 的 WindowsLinux VM。
  2. 查看 Azure VM 备份的支持矩阵
  3. 创建一个恢复服务备份保管库(如果没有)。
  4. 如果为已启用备份的 VM 启用加密,则只需为备份服务提供 Key Vault 访问权限,这样,备份就可以继续进行,而不会发生中断。 详细了解如何分配这些权限。

此外,在某些情况下,还需要完成几项操作:

  • 在 VM 上安装 VM 代理:Azure 备份通过为在计算机上运行的 Azure VM 代理安装一个扩展来备份 Azure VM。 如果 VM 是根据 Azure 市场映像创建的,则代理将安装并运行。 如果创建自定义 VM,或迁移本地计算机,则可能需要手动安装代理

配置备份策略

  1. 如果尚未创建恢复服务备份保管库,请遵照这些说明操作。

  2. 导航到备份中心,在“概述”选项卡中单击“+备份”

    Backup pane

  3. 选择“Azure 虚拟机”作为“数据源类型”,选择已创建的保管库,然后单击“继续”。

    Scenario pane

  4. 选择要与保管库关联的策略,然后选择“确认”。

    • 备份策略指定备份创建时间以及这些备份的存储时长。
    • 默认策略的详细信息会在下拉菜单下列出。

    Choose backup policy

  5. 如果不想要使用默认策略,请选择“新建”,然后创建自定义策略

  6. 在“虚拟机”下,选择“添加”。

    Add virtual machines

  7. 选择要使用所选策略备份的已加密 VM,然后选择“确定”。

    Select encrypted VMs

  8. 如果使用的是 Azure Key Vault,则保管库页上会显示一条消息,指出 Azure 备份需要对 Key Vault 中的密钥和机密拥有只读访问权限。

    • 如果收到此消息,不需要执行任何操作。

      Access OK

    • 如果收到此消息,需要按以下过程中所述设置权限。

      Access warning

  9. 选择“启用备份”以在保管库中部署该备份策略,并为选定的 VM 启用备份。

使用已启用 RBAC 的密钥保管库备份 ADE 加密 VM

若要使用已启用 Azure RBAC 的密钥保管库为 ADE 加密的 VM 启用备份,需要通过在 Key Vault 访问控制中添加角色分配,将 Key Vault 管理员角色分配给备份管理服务 Microsoft Entra 应用。

Screenshot shows the checkbox to enable ADE encrypted key vault.

了解各种可用角色。 密钥保管库管理员角色可以允许获取、列出以及备份机密和密钥的权限。

对于已启用 Azure RBAC 的密钥保管库,你可以创建具有以下权限集的自定义角色。 了解如何创建自定义角色

操作 说明
Microsoft.KeyVault/vaults/keys/backup/action 创建密钥的备份文件。
Microsoft.KeyVault/vaults/secrets/backup/action 创建机密的备份文件。
Microsoft.KeyVault/vaults/secrets/getSecret/action 获取机密的值。
Microsoft.KeyVault/vaults/keys/read 列出指定保管库中的密钥,或读取属性和公共材料。
Microsoft.KeyVault/vaults/secrets/readMetadata/action 列出或查看机密的属性,但不列出其值。
"permissions": [
            {
                "actions": [],
                "notActions": [],
                "dataActions": [
                    "Microsoft.KeyVault/vaults/keys/backup/action",
                    "Microsoft.KeyVault/vaults/secrets/backup/action",
                    "Microsoft.KeyVault/vaults/secrets/getSecret/action",
                    "Microsoft.KeyVault/vaults/keys/read",
                    "Microsoft.KeyVault/vaults/secrets/readMetadata/action"
                ],
                "notDataActions": []
            }
        ]

Screenshot shows how to add permissions to key vault.

触发备份作业

初始备份将根据计划运行,但可以按如下所示立即运行:

  1. 导航到“备份中心”,然后选择“备份实例”菜单项。
  2. 选择“Azure 虚拟机”作为“数据源类型”,然后搜索已配置用于备份的 VM。
  3. 右键单击相关行或选择“更多”图标 (...),然后单击“立即备份”。
  4. 在“立即备份”中,使用日历控件选择恢复点的最后保留日期。 然后选择“确定”。
  5. 监视门户通知。 若要监视作业进度,请转到“备份中心”>“备份作业”,通过筛选列表来查找处于“正在进行中”状态的作业。 创建初始备份可能需要一些时间,具体取决于 VM 的大小。

提供权限

Azure 备份需要拥有只读访问权限才能备份密钥和机密以及关联的 VM。

  • Key Vault 与 Azure 订阅的 Microsoft Entra 租户相关联。 如果你是成员用户,则 Azure 备份需要有权访问 Key Vault,但不需要你执行进一步的操作。
  • 如果你是来宾用户,则必须为 Azure 备份提供 Key Vault 访问权限。 你需要有权访问密钥保管库,才能为加密 VM 配置备份。

若要提供对 Key Vault 的 Azure RBAC 权限,请参阅本文

设置权限:

  1. 在 Azure 门户中,选择“所有服务”并搜索 Key Vault

  2. 选择与要备份的已加密 VM 相关联的 Key Vault。

    提示

    若要标识 VM 的关联密钥保管库,请使用以下 PowerShell 命令。 替换资源组名称和 VM 名称:

    Get-AzVm -ResourceGroupName "MyResourceGroup001" -VMName "VM001" -Status

    在此行中查找密钥保管库名称:

    SecretUrl : https://<keyVaultName>.vault.azure.cn

  3. 选择“访问策略”>“添加访问策略” 。

    Add access policy

  4. 在“添加访问策略”>“从模板配置(可选)”中,选择“Azure 备份”。

    • “密钥权限”和“机密权限”中已预先填充所需的权限。
    • 如果 VM 是仅使用 BEK 加密的,请删除“密钥权限”对应的选择内容,因为只需要机密的权限。

    Azure Backup selection

  5. 选择添加。 “备份管理服务”随即会添加到“访问策略”中。

    Access policies

  6. 选择“保存”以为 Azure 备份提供权限。

还可以使用 PowerShellCLI 来设置访问策略。

后续步骤

还原加密的 Azure 虚拟机

如果遇到任何问题,请查看以下文章: