Azure 磁盘加密故障排除指南

适用于:✔️ Windows VM ✔️ 灵活规模集

本指南面向使用 Azure 磁盘加密的 IT 专业人员、信息安全分析师和云管理员。 本文可帮助排查磁盘加密问题。

在执行这些步骤之前,请确保要加密的 VM 属于 受支持的 VM 大小和作系统 ,并且满足所有先决条件:

排查“无法发送 DiskEncryptionData”错误

如果加密 VM 时失败并出现错误消息“无法发送 DiskEncryptionData...”,这通常是由以下情况之一导致的:

  • Key Vault 存在于与虚拟机不同的区域或订阅中
  • Key Vault 中的高级访问策略未设置为允许 Azure 磁盘加密
  • 密钥加密密钥在密钥保管库中已被禁用或删除
  • 密钥保管库或密钥加密密钥 (KEK) 的资源 ID 或 URL 存在拼写错误
  • 在虚拟机、数据磁盘或密钥的名称中使用特殊字符。 例如,“_VMName”或“élite”。
  • 不支持该加密方案
  • 网络问题阻止 VM 或主机访问所需的资源

解决问题的建议

  • 确保密钥保管库与虚拟机位于同一区域和订阅中
  • 确保正确设置密钥保管库高级访问策略
  • 如果你使用 KEK,请确保密钥存在于密钥保管库中并已启用
  • 检查 VM 名称、数据磁盘和密钥是否遵循 密钥保管库资源命名限制
  • 在 PowerShell 或 CLI 命令中检查 Key Vault 名称或 KEK 名称中的拼写错误

注意

参数值的 disk-encryption-keyvault 语法是完整的标识符字符串: /subscriptions/[subscription-id-guid]/resourceGroups/[resource-group-name]/providers/Microsoft.KeyVault/vaults/[keyvault-name]
参数值的 key-encryption-key 语法是 KEK 的完整 URI,例如: https://[keyvault-name].vault.azure.cn/keys/[kekname]/[kek-unique-id]

防火墙保护下的 Azure 磁盘加密故障排除

如果防火墙、代理要求或网络安全组(NSG)设置限制连接,扩展可能无法执行所需的任务。 此中断可能会导致状态消息,例如“VM 上不可用的扩展状态”。在典型方案中,加密不会完成。 以下部分描述了可能需要调查的一些常见防火墙问题。

网络安全组

应用的任何网络安全组设置仍必须允许终结点满足所述的与磁盘加密相关的网络配置先决条件

防火墙保护下的 Azure Key Vault

使用 Microsoft Entra 凭据启用加密时,目标 VM 必须允许连接到 Microsoft Entra 终结点和 Key Vault 终结点。 当前 Microsoft Entra 身份验证终结点在 Microsoft 365 URL 和 IP 地址范围文档中的第 56 和 59 节中进行维护。 在有关如何访问防火墙保护下的 Azure 密钥保管库的文档中提供了密钥保管库说明。

Azure 实例元数据服务

VM 必须能够访问 Azure 实例元数据服务终结点 (169.254.169.254) 和用于与 Azure 平台资源通信的虚拟公共 IP 地址 (168.63.129.16)。 不支持将本地 HTTP 流量更改为这些地址的代理配置(例如,添加 X-Forwarded-For 标头)。

Windows Server 2016 Server Core 疑难解答

在 Windows Server 2016 Server Core 上, bdehdcfg 组件默认不可用。 Azure 磁盘加密需要此组件。 它用于将系统卷与操作系统卷分离,而这一操作在虚拟机的整个生命周期中只进行一次。 在后续加密操作中,不需要这些二进制文件。

要暂时避开此问题,请将下面 Windows Server 2016 Data Center VM 中的 4 个文件复制到 Server Core 上的同一位置中:

\windows\system32\bdehdcfg.exe
\windows\system32\bdehdcfglib.dll
\windows\system32\en-US\bdehdcfglib.dll.mui
\windows\system32\en-US\bdehdcfg.exe.mui
  1. 运行下面的命令:

    bdehdcfg.exe -target default
    
  2. 此命令创建 550 MB 的系统分区。 重新启动系统。

  3. 使用 DiskPart 检查卷。 然后继续。

例如:

DISKPART> list vol

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    126 GB  Healthy    Boot
  Volume 1                      NTFS   Partition    550 MB  Healthy    System
  Volume 2     D   Temporary S  NTFS   Partition     13 GB  Healthy    Pagefile

加密状态故障排除

即使磁盘在 VM 中未加密,门户也可能将磁盘显示为加密。 当使用低级别命令直接从 VM 内部取消加密磁盘,而不是使用更高级别的 Azure 磁盘加密管理命令时,可能会出现这种情况。 高级命令不仅从 VM 内部取消加密磁盘,而且还更新与 VM 关联的重要平台级加密设置和扩展设置。 如果这些未保持一致,则平台无法报告加密状态或正确预配 VM。

若要使用 PowerShell 禁用 Azure 磁盘加密,请使用 Disable-AzVMDiskEncryption,然后使用 Remove-AzVMDiskEncryptionExtension。 禁用加密之前运行 Remove-AzVMDiskEncryptionExtension 失败。

若要使用 CLI 禁用 Azure 磁盘加密,请使用 az vm encryption disable

后续步骤

本文档已详细描述有关 Azure 磁盘加密的一些常见问题和解决这些问题的方法。 有关此服务及其功能的详细信息,请参阅以下文章: