你当前正在访问 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
属性设置为要使用的架构版本。
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 磁盘加密故障排除指南。
支持
如果对本文中的任何内容需要更多帮助,可以联系 MSDN Azure 和 Stack Overflow 论坛上的 Azure 专家。
或者,你也可以提出 Azure 支持事件。 转到 Azure 支持,然后选择“获取支持”。 有关使用 Azure 支持的信息,请阅读 Microsoft Azure 支持常见问题。
后续步骤
- 有关 VM 扩展的详细信息,请参阅适用于 Linux 的虚拟机扩展和功能。
- 有关适用于 Linux 的 Azure 磁盘加密的详细信息,请参阅 Linux 虚拟机。