适用于:✔️ Linux VM ✔️ Windows VM ✔️ 第 2 代 VM
Azure 虚拟机支持通过升级到受信任的启动安全类型,在现有 Azure 第 2 代虚拟机(VM)上启用 Azure 受信任启动。
受信任启动是一种在 Azure 第 2 代 VM 上实现基础计算安全性的方法,可防范 Bootkit 和 Rootkit 等高级持久性攻击方法。 它通过将安全启动、虚拟受信任的平台模块 (vTPM) 和 VM 上的启动完整性监视等基础结构技术结合在一起来实现这一点。
先决条件
Azure VM 配置了:
最佳做法
- 在与生产工作负载关联的第 2 代 VM 上启用受信任启动之前,在第 2 代测试 VM 上启用受信任启动,并确定是否需要进行任何更改以满足先决条件。
- 在启用“受信任启动”安全类型之前,为与生产工作负载关联的 Azure 第 2 代 VM 创建还原点。 可以使用还原点以之前的已知状态重新创建磁盘和第 2 代 VM。
在现有 VM 上启用受信任启动
注意
- 默认情况下 vTPM 处于启用状态。
- 默认情况下未启用安全启动。 强烈建议在不使用自定义未签名内核或驱动程序的情况下启用安全启动。 安全启动可保留启动完整性,并为 VM 实现基础安全性。
使用 Azure 门户在现有 Azure 第 2 代 VM 上启用受信任启动。
登录到 Azure 门户。
确认 VM 代系为 V2,并为 VM 选择“停止”。
在 VM 属性中“概述”页上的“安全类型”下,选择“标准”。 VM 的“配置”页随即打开。
在“配置”页上的“安全类型”部分下,选择“安全类型”下拉列表。
在下拉列表中,选择“受信任启动”。 选中相应复选框以启用“安全启动”和“vTPM”。 完成更改后,选择“保存”。
更新成功完成后,关闭“配置”页。 在 VM 属性中的“概述”页上确认“安全类型”设置。
启动已升级受信任启动的 VM。 验证是否可以使用远程桌面协议 (RDP)(对于 Windows VM)或安全外壳协议 (SSH)(对于 Linux VM)登录到 VM。
按照步骤使用 Azure CLI 在现有 Azure 第 2 代 VM 上启用受信任启动。
确保安装最新的 Azure CLI 并使用 az login 登录到 Azure 帐户。
登录到 VM Azure 订阅。
az cloud set -n AzureChinaCloud
az login
az account set --subscription 00000000-0000-0000-0000-000000000000
解除分配 VM。
az vm deallocate \
--resource-group myResourceGroup --name myVm
通过将 --security-type
设置为 TrustedLaunch
启用受信任启动。
az vm update \
--resource-group myResourceGroup --name myVm \
--security-type TrustedLaunch \
--enable-secure-boot true --enable-vtpm true
验证上一个命令的输出。 确保命令输出返回 securityProfile
配置。
{
"securityProfile": {
"securityType": "TrustedLaunch",
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
}
}
}
启动 VM。
az vm start \
--resource-group myResourceGroup --name myVm
启动已升级受信任启动的 VM。 验证是否可以使用 RDP(对于 Windows VM)或 SSH(对于 Linux VM)登录到 VM。
按照步骤使用 Azure PowerShell 在现有 Azure 第 2 代 VM 上启用受信任启动。
确保安装最新的 Azure PowerShell 并使用 Connect-AzAccount 登录到 Azure 帐户。
登录到 VM Azure 订阅。
Connect-AzAccount -Environment AzureChinaCloud -SubscriptionId 00000000-0000-0000-0000-000000000000
解除分配 VM。
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVm
通过将 -SecurityType
设置为 TrustedLaunch
启用受信任启动。
Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
| Update-AzVM -SecurityType TrustedLaunch `
-EnableSecureBoot $true -EnableVtpm $true
在更新的 VM 配置中验证 securityProfile
。
# Following command output should be `TrustedLaunch`
(Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
| Select-Object -Property SecurityProfile `
-ExpandProperty SecurityProfile).SecurityProfile.SecurityType
# Following command output should return `SecureBoot` and `vTPM` settings
(Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
| Select-Object -Property SecurityProfile `
-ExpandProperty SecurityProfile).SecurityProfile.Uefisettings
启动 VM。
Start-AzVM -ResourceGroupName myResourceGroup -Name myVm
启动已升级受信任启动的 VM。 验证是否可以使用 RDP(对于 Windows VM)或 SSH(对于 Linux VM)登录到 VM。
按照步骤使用 ARM 模板在现有 Azure 第 2 代 VM 上启用受信任启动。
Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。
查看模板。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmsToUpgrade": {
"type": "object",
"metadata": {
"description": "Specifies the list of Azure virtual machines to be upgraded to Trusted launch."
}
},
"vTpmEnabled": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Specifies whether vTPM should be enabled on the virtual machine."
}
}
},
"resources": [
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2022-11-01",
"name": "[parameters('vmsToUpgrade').virtualMachines[copyIndex()].vmName]",
"location": "[parameters('vmsToUpgrade').virtualMachines[copyIndex()].location]",
"properties": {
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": "[parameters('vmsToUpgrade').virtualMachines[copyIndex()].secureBootEnabled]",
"vTpmEnabled": "[parameters('vTpmEnabled')]"
},
"securityType": "TrustedLaunch"
}
},
"copy": {
"name": "vmCopy",
"count": "[length(parameters('vmsToUpgrade').virtualMachines)]"
}
}
]
}
编辑要更新为 parameters
安全类型的 VM 的 TrustedLaunch
JSON 文件。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vmsToUpgrade": {
"value": {
"virtualMachines": [
{
"vmName": "myVm01",
"location": "chinanorth2",
"secureBootEnabled": true
},
{
"vmName": "myVm02",
"location": "chinanorth2",
"secureBootEnabled": true
}
]
}
}
}
}
参数文件定义
properties |
属性说明 |
示例模板值 |
vmName |
Azure 第 2 代 VM 的名称。 |
myVm |
位置 |
Azure 第 2 代 VM 的位置。 |
chinanorth2 |
secureBootEnabled |
使用“受信任启动”安全类型启用安全启动。 |
true |
解除分配所有要更新的 Azure 第 2 代 VM。
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVm01
运行 ARM 模板部署。
$resourceGroupName = "myResourceGroup"
$parameterFile = "folderPathToFile\parameters.json"
$templateFile = "folderPathToFile\template.json"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFile -TemplateParameterFile $parameterFile
启动已升级受信任启动的 VM。 验证是否可以使用 RDP(对于 Windows VM)或 SSH(对于 Linux VM)登录到 VM。
回滚
注意
在虚拟机订阅中将功能UseStandardSecurityType
注册到Microsoft.Compute
命名空间,以便支持回滚。 有关详细信息,请参阅 在 Azure 订阅中设置预览功能
若要将“受信任的启动”中的更改回滚到以前的 Gen2 已知的良好配置,您需要将 VM 的securityType
设置为“标准”。
当前 Azure 门户不支持将受信任启动的回滚功能应用于 Gen2(非受信任启动)配置。
若要将“受信任启动”中的更改回滚到以前的已知良好配置,请设置为securityProfile
“标准”,如用于执行受信任启动升级的示例模板所示。
"securityProfile": {
"securityType": "Standard",
"uefiSettings": "[null()]"
}
按照步骤使用 Azure CLI 在现有 Azure 第 2 代 VM 上禁用受信任的启动。
确保安装最新的 Azure CLI 并使用 az login 登录到 Azure 帐户。
登录到 VM Azure 订阅。
az cloud set -n AzureChinaCloud
az login
az account set --subscription 00000000-0000-0000-0000-000000000000
解除分配 VM。
az vm deallocate \
--resource-group myResourceGroup --name myVm
通过将 --security-type
设置为 Standard
启用受信任启动。
az vm update \
--resource-group myResourceGroup --name myVm \
--security-type Standard
验证上一个命令的输出。 确保命令输出返回 securityProfile
配置。
{
"securityProfile": {
"securityType": null,
"uefiSettings": null
}
}
启动 VM。
az vm start \
--resource-group myResourceGroup --name myVm
若要将受信任的启动更改回滚到以前的已知良好配置,请将-SecurityType
设置为Standard
,如下所示。
登录到 VM Azure 订阅。
Connect-AzAccount -Environment AzureChinaCloud -SubscriptionId 00000000-0000-0000-0000-000000000000
解除分配 VM。
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVm
通过将 -SecurityType
设置为 TrustedLaunch
启用受信任启动。
Get-AzVM -ResourceGroupName myResourceGroup -VMName myVm `
| Update-AzVM -SecurityType Standard
在更新的 VM 配置中验证 securityProfile
。
# Following command output should be `null`
(Get-AzVM -ResourceGroupName myVm -VMName myResourceGroup `
| Select-Object -Property SecurityProfile `
-ExpandProperty SecurityProfile).SecurityProfile.SecurityType
启动 VM。
Start-AzVM -ResourceGroupName myResourceGroup -Name myVm
Azure 顾问建议
Azure 顾问针对现有第2代虚拟机提出了运营卓越建议,建议您启用“受信任的启动”,这一功能为您的Azure虚拟机提供更高的安全态势,而无需额外费用。 确保第 2 代虚拟机具备迁移到受信任启动的所有先决条件,遵循所有最佳做法,包括验证 OS 映像、VM 大小和创建还原点。 为了使顾问建议被视为完整,请按照在现有 VM 上启用受信任启动中概述的步骤来升级虚拟机安全类型并启用受信任启动。
如果第 2 代 VM 不符合受信任启动的先决条件,该怎么办?
对于不符合升级到受信任启动的 先决条件 的第 2 代 VM,请查看如何满足先决条件。 例如,如果使用不支持的虚拟机大小,请查找支持可信启动的对等可信启动大小。
注意
如果 Gen2 虚拟机配置为当前不受受信任启动支持的 VM 大小系列(如 MSv2 系列),则忽略该建议。
相关内容