Estensione della configurazione macchina di Azure
L'estensione Configurazione macchina esegue operazioni di controllo e configurazione all'interno di VM.
Per controllare i criteri all'interno delle VM, ad esempio le definizioni delle baseline di sicurezza di calcolo di Azure per Linux e Windows, è necessario installare l'estensione Configurazione macchina.
Prerequisiti
Per consentire alla VM di eseguire l'autenticazione al servizio Configurazione macchina, la VM deve avere un'identità gestita assegnata dal sistema. È possibile soddisfare il requisito di identità per la VM impostando la proprietà "type": "SystemAssigned"
:
"identity": {
"type": "SystemAssigned"
}
Sistemi operativi
Il supporto del sistema operativo per l'estensione Configurazione macchina è identico al supporto documentato del sistema operativo per la soluzione end-to-end.
Connettività Internet
L'agente installato dall'estensione Configurazione macchina deve essere in grado di raggiungere i pacchetti di contenuto elencati dalle assegnazioni di configurazione guest e segnalare lo stato al servizio Configurazione macchina. La VM può connettersi usando HTTPS in uscita sulla porta TCP 443 o una connessione fornita tramite networking privata.
Per altre informazioni sulla networking privata, vedere gli articoli seguenti:
- Configurazione macchina di Azure, Comunicazione tramite Collegamento privato di Azure
- Usare endpoint privati per l'Archiviazione di Azure
Installare l'estensione
È possibile installare e distribuire l'estensione Configurazione macchina direttamente dall'interfaccia della riga di comando di Azure o da PowerShell. I modelli di distribuzione sono disponibili anche per Azure Resource Manager (ARM), Bicep e Terraform. Per informazioni dettagliate sul modello di distribuzione, vedere Microsoft.GuestConfiguration guestConfigurationAssignments.
Nota
Negli esempi di distribuzione seguenti sostituire i valori dei parametri <placeholder>
con valori specifici per la configurazione.
Considerazioni sulla distribuzione
Prima di installare e distribuire l'estensione Configurazione macchina, esaminare le considerazioni seguenti.
nome istanza. Quando si installa l'estensione Configurazione macchina, il nome dell'istanza dell'estensione deve essere impostato su
AzurePolicyforWindows
oAzurePolicyforLinux
. I criteri di definizione della baseline di sicurezza descritti in precedenza richiedono queste stringhe specifiche.Versioni. Per impostazione predefinita, tutte le distribuzioni vengono aggiornate alla versione più recente. Il valore predefinito della proprietà
autoUpgradeMinorVersion
ètrue
, a meno che non sia specificato differentemente. Questa funzionalità consente di risolvere i problemi relativi all'aggiornamento del codice quando vengono rilasciate nuove versioni dell'estensione Configurazione macchina.Aggiornamento automatico. L'estensione Configurazione macchina supporta la proprietà
enableAutomaticUpgrade
. Quando questa proprietà è impostata sutrue
, Azure esegue automaticamente l'aggiornamento alla versione più recente dell'estensione man mano che le versioni future diventano disponibili. Per altre informazioni, vedere Aggiornamento automatico delle estensioni per VM e set di scalabilità di VM in Azure.Criteri di Azure. Per distribuire la versione più recente dell'estensione Configurazione macchina su larga scala, inclusi i requisiti di identità, seguire la procedura descritta in Creare un'assegnazione di criteri per identificare le risorse non conformi. Creare l'assegnazione seguente con Criteri di Azure:
Altre proprietà. Non è necessario includere impostazioni o proprietà delle impostazioni protette nell'estensione Configurazione macchina. L'agente recupera questa classe di informazioni dalle risorse di Assegnazione della configurazione guest dell'API REST di Azure. Ad esempio, le proprietà
ConfigurationUri
,Mode
eConfigurationSetting
sono gestite per ogni configurazione anziché nell'estensione della VM.
Interfaccia della riga di comando di Azure
Per distribuire l'estensione per Linux:
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationForLinux --extension-instance-name AzurePolicyforLinux --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
Per distribuire l'estensione per Windows:
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationforWindows --extension-instance-name AzurePolicyforWindows --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
PowerShell
Per distribuire l'estensione per Linux:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Per distribuire l'estensione per Windows:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Modello ARM
Per distribuire l'estensione per Linux:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforLinux')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationForLinux",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Per distribuire l'estensione per Windows:
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(parameters('VMName'), '/AzurePolicyforWindows')]",
"apiVersion": "2020-12-01",
"location": "[parameters('location')]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', parameters('VMName'))]"
],
"properties": {
"publisher": "Microsoft.GuestConfiguration",
"type": "ConfigurationforWindows",
"typeHandlerVersion": "1.0",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {}
}
}
Modello Bicep
Per distribuire l'estensione per Linux:
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforLinux'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationForLinux'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Per distribuire l'estensione per Windows:
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-03-01' existing = {
name: 'VMName'
}
resource windowsVMGuestConfigExtension 'Microsoft.Compute/virtualMachines/extensions@2020-12-01' = {
parent: virtualMachine
name: 'AzurePolicyforWindows'
location: resourceGroup().location
properties: {
publisher: 'Microsoft.GuestConfiguration'
type: 'ConfigurationforWindows'
typeHandlerVersion: '1.0'
autoUpgradeMinorVersion: true
enableAutomaticUpgrade: true
settings: {}
protectedSettings: {}
}
}
Modello Terraform
Per distribuire l'estensione per Linux:
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforLinux"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationForLinux"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
Per distribuire l'estensione per Windows:
resource "azurerm_virtual_machine_extension" "gc" {
name = "AzurePolicyforWindows"
virtual_machine_id = "<myVMID>"
publisher = "Microsoft.GuestConfiguration"
type = "ConfigurationforWindows"
type_handler_version = "1.0"
auto_upgrade_minor_version = "true"
}
Messaggi di errore
Nella tabella seguente sono elencati i possibili messaggi di errore correlati all'abilitazione dell'estensione Configurazione guest.
Codice errore | Descrizione |
---|---|
NoComplianceReport | La VM non ha segnalato i dati di conformità. |
GCExtensionMissing | Manca l'estensione Configurazione macchina (configurazione guest). |
ManagedIdentityMissing | Manca l'identità gestita. |
UserIdentityMissing | Identità assegnata dall'utente mancante. |
GCExtensionManagedIdentityMissing | Manca l'estensione Configurazione macchina (configurazione guest) e l'identità gestita. |
GCExtensionUserIdentityMissing | Manca l'estensione Configurazione macchina (configurazione guest) e l'identità assegnata dall'utente. |
GCExtensionIdentityMissing | Manca l'estensione Configurazione macchina (configurazione guest), l'identità gestita e l'identità assegnata dall'utente. |
Passaggi successivi
- Per altre informazioni sull'estensione Configurazione macchina, vedere Informazioni sulla configurazione macchina di Azure.
- Per altre informazioni sul funzionamento delle estensioni e dell'agente Linux, vedere Funzionalità ed estensioni VM per Linux.
- Per altre informazioni sul funzionamento delle estensioni e dell'agente guest di Windows, vedere Estensioni e funzionalità della macchina virtuale per Windows.
- Per installare l'agente guest di Windows, vedere Panoramica dell'agente di macchine virtuali di Azure.
- Per installare l'agente Linux, vedere Informazioni e uso dell'agente Linux di Azure.