(Förhandsversion) Aktivera betrodd start på befintlig VM-skalningsuppsättning
Gäller för: Windows VM Vm Scale Sets Uniform (Enhetliga vm-skalningsuppsättningar för virtuell Linux-dator ✔️ ✔️) ✔️
Skalningsuppsättningar för virtuella Azure-datorer stöder aktivering av betrodd start på befintliga virtuella datorer med enhetliga skalningsuppsättningar genom att uppgradera till säkerhetstyp för betrodd start .
Betrodd start möjliggör grundläggande beräkningssäkerhet på virtuella Azure Generation 2-datorer och skalningsuppsättningar och skyddar dem mot avancerade och beständiga attacktekniker som startpaket och rootkits. Det gör det genom att kombinera infrastrukturtekniker som Säker start, vTPM och Övervakning av startintegritet på din skalningsuppsättning.
Begränsningar
Det går för närvarande inte att aktivera betrodd start på befintliga vm-skalningsuppsättningar med anslutna datadiskar.
- Om du vill kontrollera om skalningsuppsättningen har konfigurerats med datadisken går du till skalningsuppsättningen ->Diskar under menyn Inställningar –> kontrollera under rubriken Datadiskar
Det går för närvarande inte att aktivera betrodd start på befintliga skalningsuppsättningar för virtuella datorer.
Det går för närvarande inte att aktivera betrodd start på befintliga Service Fabric-kluster och Service Fabric-hanterade kluster .
Förutsättningar
- Registrera förhandsversionsfunktionen
ImageSkuGenUpdateWithVMSS
underMicrosoft.Compute
namnrymden för en skalningsuppsättningsprenumeration. Mer information finns i Konfigurera förhandsversionsfunktioner i Azure-prenumeration - Skalningsuppsättningen är inte beroende av funktioner som för närvarande inte stöds med betrodd start.
- Skalningsuppsättningen ska konfigureras med storleksfamiljen Betrodd start som stöds
Kommentar
- Storleken på den virtuella datorn kan ändras tillsammans med en betrodd startuppgradering. Se till att kvoten för den nya VM-storleken är på plats för att undvika uppgraderingsfel. Se Kontrollera vCPU-kvoter.
- Ändringar i storlek på virtuella datorer skapar en virtuell datorinstans med ny storlek och kräver driftstopp för enskilda virtuella datorinstanser. Det kan göras på ett rullande uppgraderingssätt för att undvika nedtid för skalningsuppsättningar.
- Skalningsuppsättningen ska konfigureras med Betrodd start av os-avbildning som stöds. För Azure Compute Gallery OS-avbildning kontrollerar du att avbildningsdefinitionen är markerad som TrustedLaunchSupported
Aktivera betrodd start på befintlig skalningsuppsättning uniform
I det här avsnittet beskrivs steg för att använda en ARM-mall för att aktivera betrodd start på befintlig enhetlig vm-skalningsuppsättning.
Gör följande ändringar i din befintliga ARM-malldistributionskod. Fullständig mall finns i ARM-mallen För betrodd start av snabbstart.
Viktigt!
Säkerhetstypen Betrodd start är tillgänglig med Skalningsuppsättning apiVersion
2020-12-01
eller högre. Kontrollera att API-versionen har angetts korrekt före uppgraderingen.
OS-avbildning: Uppdatera OS-avbildningsreferensen till Gen2-Trusted launch supported OS image (Os-avbildning som stöds). Kontrollera att Gen2-källavbildningen har
TrustedLaunchSupported
säkerhetstyp om du använder Azure Compute Gallery OS-avbildning."storageProfile": { "osDisk": { "createOption": "FromImage", "caching": "ReadWrite" }, "imageReference": { "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", "sku": "2022-datacenter-azure-edition", "version": "latest" } }
(Valfritt) Storlek för skalningsuppsättning: Ändra skalningsuppsättningens storlek om den aktuella storleksfamiljen inte stöds med säkerhetskonfiguration för betrodd start .
"sku": { "name": "Standard_D2s_v3", "tier": "Standard", "capacity": "[parameters('instanceCount')]" }
Säkerhetsprofil: Lägg till
securityProfile
block undervirtualMachineProfile
för att aktivera säkerhetskonfiguration för betrodd start.Kommentar
Rekommenderade inställningar:
vTPM
:true
ochsecureBoot
:true
secureBoot
bör anges tillfalse
om du använder någon osignerad anpassad drivrutin eller kernel i operativsystemet."securityProfile": { "securityType": "TrustedLaunch", "uefiSettings": { "secureBootEnabled": true, "vTpmEnabled": true } }
(Rekommenderas) Tillägg för gästattestering: Lägg till ga-tillägg (Gästattestering) för skalningsuppsättningsresurs, vilket möjliggör övervakning av startintegritet för skalningsuppsättning.
Viktigt!
Gästattesteringstillägget kräver
secureBoot
ochvTPM
är inställt påtrue
.{ "condition": "[and(parameters('vTPM'), parameters('secureBoot'))]", "type": "Microsoft.Compute/virtualMachineScaleSets/extensions", "apiVersion": "2022-03-01", "name": "[format('{0}/{1}', parameters('vmssName'), GuestAttestation)]", "location": "[parameters('location')]", "properties": { "publisher": "Microsoft.Azure.Security.WindowsAttestation", "type": "GuestAttestation", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true, "settings": { "AttestationConfig": { "MaaSettings": { "maaEndpoint": "[substring('emptystring', 0, 0)]", "maaTenantName": "GuestAttestation" } } } }, "dependsOn": [ "[resourceId('Microsoft.Compute/virtualMachineScaleSets', parameters('vmssName'))]" ] }
Namn på tilläggsutgivare:
Typ av operativsystem Utgivarnamn för tillägg Windows Microsoft.Azure.Security.WindowsAttestation Linux Microsoft.Azure.Security.LinuxAttestation Granska ändringarna i mallen.
Expandera för att visa den fullständiga ARM-exempelmallen, som stöder uppgradering av befintlig skalningsuppsättning till Betrodd start och återställning (om det behövs).
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vmSku": { "type": "string", "defaultValue": "Standard_D2s_v3", "metadata": { "description": "Size of VMs in the VM Scale Set." } }, "sku": { "type": "string", "defaultValue": "2022-datacenter-azure-edition", "allowedValues": [ "2022-datacenter-azure-edition" ], "metadata": { "description": "The Windows version for the VM. This will pick a fully patched image of this given Windows version." } }, "vmssName": { "type": "string", "maxLength": 61, "metadata": { "description": "String used as a base for naming resources. Must be 3-61 characters in length and globally unique across Azure. A hash is prepended to this string for some resources, and resource-specific information is appended." } }, "instanceCount": { "type": "int", "defaultValue": 2, "maxValue": 100, "minValue": 1, "metadata": { "description": "Number of VM instances (100 or less)." } }, "adminUsername": { "type": "string", "metadata": { "description": "Admin username on all VMs." } }, "adminPassword": { "type": "securestring", "metadata": { "description": "Admin password on all VMs." } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Location for all resources." } }, "publicIpName": { "type": "string", "defaultValue": "myPublicIP", "metadata": { "description": "Name for the Public IP used to access the virtual machine Scale set." } }, "publicIPAllocationMethod": { "type": "string", "defaultValue": "Static", "allowedValues": [ "Dynamic", "Static" ], "metadata": { "description": "Allocation method for the Public IP used to access the virtual machine set." } }, "publicIpSku": { "type": "string", "defaultValue": "Standard", "allowedValues": [ "Basic", "Standard" ], "metadata": { "description": "SKU for the Public IP used to access the virtual machine Scale set." } }, "dnsLabelPrefix": { "type": "string", "defaultValue": "[toLower(format('{0}-{1}', parameters('vmssName'), uniqueString(resourceGroup().id)))]", "metadata": { "description": "Unique DNS Name for the Public IP used to access the virtual machine Scale set." } }, "healthExtensionProtocol": { "type": "string", "defaultValue": "TCP", "allowedValues": [ "TCP", "HTTP", "HTTPS" ] }, "healthExtensionPort": { "type": "int", "defaultValue": 3389 }, "healthExtensionRequestPath": { "type": "string", "defaultValue": "/" }, "overprovision": { "type": "bool", "defaultValue": false }, "upgradePolicy": { "type": "string", "defaultValue": "Manual", "allowedValues": [ "Manual", "Rolling", "Automatic" ] }, "maxBatchInstancePercent": { "type": "int", "defaultValue": 20 }, "maxUnhealthyInstancePercent": { "type": "int", "defaultValue": 20 }, "maxUnhealthyUpgradedInstancePercent": { "type": "int", "defaultValue": 20 }, "pauseTimeBetweenBatches": { "type": "string", "defaultValue": "PT5S" }, "securityType": { "type": "string", "defaultValue": "TrustedLaunch", "allowedValues": [ "Standard", "TrustedLaunch" ], "metadata": { "description": "Security Type of the Virtual Machine." } }, "encryptionAtHost": { "type": "bool", "defaultValue": false, "metadata": { "description": "This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine Scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource." } } }, "variables": { "namingInfix": "[toLower(substring(format('{0}{1}', parameters('vmssName'), uniqueString(resourceGroup().id)), 0, 9))]", "addressPrefix": "10.0.0.0/16", "subnetPrefix": "10.0.0.0/24", "virtualNetworkName": "[format('{0}vnet', variables('namingInfix'))]", "subnetName": "[format('{0}subnet', variables('namingInfix'))]", "loadBalancerName": "[format('{0}lb', variables('namingInfix'))]", "natPoolName": "[format('{0}natpool', variables('namingInfix'))]", "bePoolName": "[format('{0}bepool', variables('namingInfix'))]", "natStartPort": 50000, "natEndPort": 50119, "natBackendPort": 3389, "nicName": "[format('{0}nic', variables('namingInfix'))]", "ipConfigName": "[format('{0}ipconfig', variables('namingInfix'))]", "imageReference": { "2022-datacenter-azure-edition": { "publisher": "MicrosoftWindowsServer", "offer": "WindowsServer", "sku": "[parameters('sku')]", "version": "latest" } }, "extensionName": "GuestAttestation", "extensionPublisher": "Microsoft.Azure.Security.WindowsAttestation", "extensionVersion": "1.0", "maaTenantName": "GuestAttestation", "maaEndpoint": "[substring('emptyString', 0, 0)]", "uefiSettingsJson": { "secureBootEnabled": true, "vTpmEnabled": true }, "rollingUpgradeJson": { "maxBatchInstancePercent": "[parameters('maxBatchInstancePercent')]", "maxUnhealthyInstancePercent": "[parameters('maxUnhealthyInstancePercent')]", "maxUnhealthyUpgradedInstancePercent": "[parameters('maxUnhealthyUpgradedInstancePercent')]", "pauseTimeBetweenBatches": "[parameters('pauseTimeBetweenBatches')]" } }, "resources": [ { "type": "Microsoft.Network/virtualNetworks", "apiVersion": "2022-05-01", "name": "[variables('virtualNetworkName')]", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnetName')]", "properties": { "addressPrefix": "[variables('subnetPrefix')]" } } ] } }, { "type": "Microsoft.Network/publicIPAddresses", "apiVersion": "2022-05-01", "name": "[parameters('publicIpName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('publicIpSku')]" }, "properties": { "publicIPAllocationMethod": "[parameters('publicIPAllocationMethod')]", "dnsSettings": { "domainNameLabel": "[parameters('dnsLabelPrefix')]" } } }, { "type": "Microsoft.Network/loadBalancers", "apiVersion": "2022-05-01", "name": "[variables('loadBalancerName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('publicIpSku')]", "tier": "Regional" }, "properties": { "frontendIPConfigurations": [ { "name": "LoadBalancerFrontEnd", "properties": { "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]" } } } ], "backendAddressPools": [ { "name": "[variables('bePoolName')]" } ], "inboundNatPools": [ { "name": "[variables('natPoolName')]", "properties": { "frontendIPConfiguration": { "id": "[resourceId('Microsoft.Network/loadBalancers/frontendIPConfigurations', variables('loadBalancerName'), 'loadBalancerFrontEnd')]" }, "protocol": "Tcp", "frontendPortRangeStart": "[variables('natStartPort')]", "frontendPortRangeEnd": "[variables('natEndPort')]", "backendPort": "[variables('natBackendPort')]" } } ] }, "dependsOn": [ "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]" ] }, { "type": "Microsoft.Compute/virtualMachineScaleSets", "apiVersion": "2022-03-01", "name": "[parameters('vmssName')]", "location": "[parameters('location')]", "sku": { "name": "[parameters('vmSku')]", "tier": "Standard", "capacity": "[parameters('instanceCount')]" }, "properties": { "virtualMachineProfile": { "storageProfile": { "osDisk": { "createOption": "FromImage", "caching": "ReadWrite" }, "imageReference": "[variables('imageReference')[parameters('sku')]]" }, "osProfile": { "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]" }, "securityProfile": { "encryptionAtHost": "[parameters('encryptionAtHost')]", "securityType": "[parameters('securityType')]", "uefiSettings": "[if(equals(parameters('securityType'), 'TrustedLaunch'), variables('uefiSettingsJson'), null())]" }, "networkProfile": { "networkInterfaceConfigurations": [ { "name": "[variables('nicName')]", "properties": { "primary": true, "ipConfigurations": [ { "name": "[variables('ipConfigName')]", "properties": { "subnet": { "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('virtualNetworkName'), variables('subnetName'))]" }, "loadBalancerBackendAddressPools": [ { "id": "[resourceId('Microsoft.Network/loadBalancers/backendAddressPools', variables('loadBalancerName'), variables('bePoolName'))]" } ], "loadBalancerInboundNatPools": [ { "id": "[resourceId('Microsoft.Network/loadBalancers/inboundNatPools', variables('loadBalancerName'), variables('natPoolName'))]" } ] } } ] } } ] }, "extensionProfile": { "extensions": [ { "name": "HealthExtension", "properties": { "publisher": "Microsoft.ManagedServices", "type": "ApplicationHealthWindows", "typeHandlerVersion": "1.0", "autoUpgradeMinorVersion": false, "settings": { "protocol": "[parameters('healthExtensionProtocol')]", "port": "[parameters('healthExtensionPort')]", "requestPath": "[if(equals(parameters('healthExtensionProtocol'), 'TCP'), null(), parameters('healthExtensionRequestPath'))]" } } } ] }, "diagnosticsProfile": { "bootDiagnostics": { "enabled": true } } }, "orchestrationMode": "Uniform", "overprovision": "[parameters('overprovision')]", "upgradePolicy": { "mode": "[parameters('upgradePolicy')]", "rollingUpgradePolicy": "[if(equals(parameters('upgradePolicy'), 'Rolling'), variables('rollingUpgradeJson'), null())]", "automaticOSUpgradePolicy": { "enableAutomaticOSUpgrade": true } } }, "dependsOn": [ "[resourceId('Microsoft.Network/loadBalancers', variables('loadBalancerName'))]", "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]" ] }, { "condition": "[and(equals(parameters('securityType'), 'TrustedLaunch'), and(equals(variables('uefiSettingsJson').secureBootEnabled, true()), equals(variables('uefiSettingsJson').vTpmEnabled, true())))]", "type": "Microsoft.Compute/virtualMachineScaleSets/extensions", "apiVersion": "2022-03-01", "name": "[format('{0}/{1}', parameters('vmssName'), variables('extensionName'))]", "location": "[parameters('location')]", "properties": { "publisher": "[variables('extensionPublisher')]", "type": "[variables('extensionName')]", "typeHandlerVersion": "[variables('extensionVersion')]", "autoUpgradeMinorVersion": true, "enableAutomaticUpgrade": true, "settings": { "AttestationConfig": { "MaaSettings": { "maaEndpoint": "[variables('maaEndpoint')]", "maaTenantName": "[variables('maaTenantName')]" } } } }, "dependsOn": [ "[resourceId('Microsoft.Compute/virtualMachineScaleSets', parameters('vmssName'))]" ] } ] }
Kör ARM-malldistributionen.
$resourceGroupName = "myResourceGroup" $parameterFile = "folderPathToFile\parameters.json" $templateFile = "folderPathToFile\template.json" New-AzResourceGroupDeployment ` -ResourceGroupName $resourceGroupName ` -TemplateFile $templateFile -TemplateParameterFile $parameterFile
Kontrollera att distributionen har slutförts. Kontrollera säkerhetstypen och UEFI-inställningarna för skalningsuppsättningsuniformen med Hjälp av Azure-portalen. Kontrollera avsnittet Säkerhetstyp på sidan Översikt.
Uppdatera de virtuella datorinstanserna manuellt om skalningsuppsättningens enhetliga uppgraderingsläge är inställt på
Manual
.$resourceGroupName = "myResourceGroup" $vmssName = "VMScaleSet001" Update-AzVmssInstance -ResourceGroupName $resourceGroupName -VMScaleSetName $vmssName -InstanceId "0"
Återställ
Om du vill återställa ändringar från betrodd start till tidigare fungerande konfiguration måste du ange Skalningsuppsättningen securityType
till Standard.
Om du vill återställa ändringar från betrodd start till tidigare fungerande konfiguration ställer du in securityProfile
på Standard som visas. Du kan också återställa andra parameterändringar – OS-avbildning, VM-storlek och upprepa steg 5–8 som beskrivs med Aktivera betrodd start på befintlig skalningsuppsättning
"securityProfile": {
"securityType": "Standard",
"uefiSettings": "[null()]"
}
Nästa steg
(Rekommenderas) Efter uppgraderingar aktiveras övervakning av startintegritet för att övervaka hälsotillståndet för den virtuella datorn med hjälp av Microsoft Defender för molnet.
Läs mer om betrodd start och granska vanliga frågor och svar.