你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 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 磁盘加密故障排除指南

支持

如果对本文中的任何内容需要更多帮助,可以联系 MSDN Azure 和 Stack Overflow 论坛上的 Azure 专家。

或者,你也可以提出 Azure 支持事件。 转到 Azure 支持,然后选择“获取支持”。 有关使用 Azure 支持的信息,请阅读 Microsoft Azure 支持常见问题

后续步骤