适用于 Linux 的 Azure 磁盘加密 (Microsoft.Azure.Security.AzureDiskEncryptionForLinux)

概述

Azure 磁盘加密利用 Linux 中的 dm-crypt 子系统在选择 Azure Linux 发行版上提供完整磁盘加密。 此解决方案与 Azure Key Vault 集成,用于管理磁盘加密密钥和机密。

先决条件

有关先决条件的完整列表,请参阅适用于 Linux VM 的 Azure 磁盘加密,特别是以下部分:

扩展架构

Azure 磁盘加密 (ADE) 的扩展架构有两个版本:

  • v1.1 - 推荐的较新架构,它不使用 Microsoft Entra 属性。
  • v0.1 - 需要 Microsoft Entra 属性的较旧架构。

若要选择目标架构,需要将 typeHandlerVersion 属性设置为要使用的架构版本。

推荐使用 v1.1 架构,它不需要 Microsoft Entra 属性。

注意

DiskFormatQuery 参数已弃用。 其功能已替换为 EncryptFormatAll 选项,这是在加密时格式化数据磁盘的推荐方法。

{
  "type": "extensions",
  "name": "[name]",
  "apiVersion": "2019-07-01",
  "location": "[location]",
  "properties": {
        "publisher": "Microsoft.Azure.Security",
        "type": "AzureDiskEncryptionForLinux",
        "typeHandlerVersion": "1.1",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "DiskFormatQuery": "[diskFormatQuery]",
          "EncryptionOperation": "[encryptionOperation]",
          "KeyEncryptionAlgorithm": "[keyEncryptionAlgorithm]",
          "KeyVaultURL": "[keyVaultURL]",
          "KeyVaultResourceId": "[KeyVaultResourceId]",
          "KeyEncryptionKeyURL": "[keyEncryptionKeyURL]",
          "KekVaultResourceId": "[KekVaultResourceId",
          "SequenceVersion": "sequenceVersion]",
          "VolumeType": "[volumeType]"
        }
  }
}

Schema v0.1:使用 Microsoft Entra ID

0.1 版架构需要 AADClientIDAADClientSecretAADClientCertificate

使用 AADClientSecret

{
  "type": "extensions",
  "name": "[name]",
  "apiVersion": "2019-07-01",
  "location": "[location]",
  "properties": {
    "protectedSettings": {
      "AADClientSecret": "[aadClientSecret]",
      "Passphrase": "[passphrase]"
    },
    "publisher": "Microsoft.Azure.Security",
    "type": "AzureDiskEncryptionForLinux",
    "typeHandlerVersion": "0.1",
    "settings": {
      "AADClientID": "[aadClientID]",
      "DiskFormatQuery": "[diskFormatQuery]",
      "EncryptionOperation": "[encryptionOperation]",
      "KeyEncryptionAlgorithm": "[keyEncryptionAlgorithm]",
      "KeyEncryptionKeyURL": "[keyEncryptionKeyURL]",
      "KeyVaultURL": "[keyVaultURL]",
      "SequenceVersion": "sequenceVersion]",
      "VolumeType": "[volumeType]"
    }
  }
}

使用 AADClientCertificate

{
  "type": "extensions",
  "name": "[name]",
  "apiVersion": "2019-07-01",
  "location": "[location]",
  "properties": {
    "protectedSettings": {
      "AADClientCertificate": "[aadClientCertificate]",
      "Passphrase": "[passphrase]"
    },
    "publisher": "Microsoft.Azure.Security",
    "type": "AzureDiskEncryptionForLinux",
    "typeHandlerVersion": "0.1",
    "settings": {
      "AADClientID": "[aadClientID]",
      "DiskFormatQuery": "[diskFormatQuery]",
      "EncryptionOperation": "[encryptionOperation]",
      "KeyEncryptionAlgorithm": "[keyEncryptionAlgorithm]",
      "KeyEncryptionKeyURL": "[keyEncryptionKeyURL]",
      "KeyVaultURL": "[keyVaultURL]",
      "SequenceVersion": "sequenceVersion]",
      "VolumeType": "[volumeType]"
    }
  }
}

属性值

注意:所有属性值区分大小写。

名称 值/示例 数据类型
apiVersion 2019-07-01 date
publisher Microsoft.Azure.Security string
type AzureDiskEncryptionForLinux string
typeHandlerVersion 1.1、0.1 int
(0.1 版架构)AADClientID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx GUID
(0.1 版架构)AADClientSecret password string
(0.1 版架构)AADClientCertificate thumbprint string
(可选)(0.1 版架构)密码 password string
DiskFormatQuery {"dev_path":"","name":"","file_system":""} JSON 字典
EncryptionOperation EnableEncryption, EnableEncryptionFormatAll string
(可选 - 默认 RSA-OAEP)KeyEncryptionAlgorithm 'RSA-OAEP', 'RSA-OAEP-256', 'RSA1_5' string
KeyVaultURL url string
KeyVaultResourceId url string
(可选)KeyEncryptionKeyURL url string
(可选)KekVaultResourceId url string
(可选)SequenceVersion uniqueidentifier string
VolumeType OS, Data, All string

模板部署

有关基于架构 v1.1 的模板部署的示例,请参阅 Azure 快速入门模板 encrypt-running-linux-vm-without-aad

有关基于架构 v0.1 的模板部署的示例,请参阅 Azure 快速入门模板 encrypt-running-linux-vm

警告

  • 如果之前是结合使用 Azure 磁盘加密和 Microsoft Entra ID 来加密 VM,必须继续使用这种方式来加密 VM。
  • 加密 Linux OS 卷时,应将 VM 视为不可用。 我们强烈建议在加密过程中避免 SSH 登录,以避免阻止加密过程中需要访问的任何打开文件的问题。 若要检查进度,请使用 Get-AzVMDiskEncryptionStatus PowerShell cmdlet 或 vm encryption show CLI 命令。 对于 30GB 操作系统卷,此过程可能需要几小时才能完成,还需要额外的时间来加密数据卷。 数据卷加密时间将与数据卷的大小和数量成比例;encrypt format all 选项的速度比就地加密更快,但会导致丢失磁盘上的所有数据。
  • 在 Linux VM 上,仅支持对数据卷禁用加密。 如果 OS 卷已加密,则不支持对数据卷或 OS 卷禁用加密。

注意

此外,如果 VolumeType 参数设置为 All,则仅当数据磁盘正确装载时才会对其进行加密。

故障排除和支持

故障排除

有关故障排除,请参阅 Azure 磁盘加密故障排除指南

支持

如果对本文中的任何观点存在疑问,可以联系 Azure 支持上的 Azure 专家。

或者,也可以提出 Azure 支持事件。 请转到 Azure 支持并提交请求。 有关使用 Azure 支持的信息,请阅读世纪互联 Azure 支持常见问题解答

后续步骤