适用于 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
属性设置为要使用的架构版本。
Schema v1.1:没有 Microsoft Entra ID(推荐)
推荐使用 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 版架构需要 AADClientID
和 AADClientSecret
或 AADClientCertificate
。
使用 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 支持常见问题解答。
后续步骤
- 有关 VM 扩展的详细信息,请参阅适用于 Linux 的虚拟机扩展和功能。
- 有关适用于 Linux 的 Azure 磁盘加密的详细信息,请参阅 Linux 虚拟机。