Extensión de la configuración de máquina de Azure
La extensión de configuración máquina hace operaciones de auditoría y configuración dentro de las máquinas virtuales (VM).
Para comprobar las directivas dentro de las máquinas virtuales, como las definiciones de línea de base de seguridad de proceso de Azure para Linux y Windows, se debe instalar la extensión de configuración de la máquina.
Prerrequisitos
Para permitir que la máquina virtual se autentique en el servicio de configuración de la máquina, la máquina virtual debe tener una identidad administrada asignada por el sistema. Puedes satisfacer el requisito de identidad de la máquina virtual estableciendo la propiedad "type": "SystemAssigned"
:
"identity": {
"type": "SystemAssigned"
}
Sistemas operativos
La compatibilidad del sistema operativo con la extensión de configuración de la máquina es la misma que la compatibilidad con el sistema operativo documentado para la solución de un extremo a otro.
Conectividad de Internet
El agente instalado por la extensión de configuración de la máquina debe poder acceder a los paquetes de contenido enumerados por asignaciones de configuración de invitado e informar el estado al servicio de configuración de la máquina. La máquina virtual puede conectarse mediante HTTPS de salida a través del puerto TCP 443 o una conexión proporcionada a través de una red privada.
Para obtener más información sobre las redes privadas, consulte los artículos siguientes:
- Configuración de máquina de Azure, comunicación a través de Azure Private Link
- Uso de puntos de conexión privados para Azure Storage
Instalación de la extensión
Puedes instalar e implementar la extensión de configuración de la máquina directamente desde la CLI de Azure o PowerShell. Las plantillas de implementación también están disponibles para Azure Resource Manager (ARM), Bicep y Terraform. Para obtener más información sobre la plantilla de implementación, consulta Microsoft.GuestConfiguration GuestConfigurationAssignments.
Nota
En los ejemplos de implementación siguientes, reemplace los valores de parámetro <placeholder>
por valores específicos para la configuración.
Consideraciones de la implementación
Antes de instalar e implementar la extensión de configuración de la máquina, revise las consideraciones siguientes.
Nombre de la instancia. Al instalar la extensión de configuración del equipo, el nombre de instancia de la extensión debe establecerse
AzurePolicyforWindows
en oAzurePolicyforLinux
. Las directivas de definición de línea de base de seguridad descritas anteriormente requieren estas cadenas específicas.Versiones. De forma predeterminada, todas las implementaciones se actualizan a la última versión. El valor predeterminado de la propiedad
autoUpgradeMinorVersion
estrue
a menos que se especifique lo contrario. Esta característica ayuda a aliviar los problemas relacionados con la actualización del código cuando se publican nuevas versiones de la extensión de configuración de la máquina.Actualización automática. La extensión de configuración de la máquina admite la propiedad
enableAutomaticUpgrade
. Cuando esta propiedad se establece entrue
, Azure se actualiza automáticamente a la versión más reciente de la extensión a medida que haya versiones futuras disponibles. Para obtener más información, consulta Actualización automática de extensiones para máquinas virtuales y conjuntos de escalado de máquinas virtuales en Azure.Azure Policy. Para implementar la versión más reciente de la extensión de configuración de la máquina a escala, incluidos los requisitos de identidad, sigue los pasos descritos en Creación de una asignación de directiva para identificar recursos no conformes. Crea la siguiente asignación con Azure Policy:
Otras propiedades. No es necesario incluir ninguna configuración o propiedades de configuración protegidas en la extensión de configuración de la máquina. El agente recupera esta clase de información de los recursos de asignación de la Configuración de invitado de la API de REST de Azure. Por ejemplo, las propiedades
ConfigurationUri
,Mode
yConfigurationSetting
se administran por configuración, en lugar de en la extensión de VM.
Azure CLI
Para implementar la extensión en Linux:
az vm extension set --publisher Microsoft.GuestConfiguration --name ConfigurationForLinux --extension-instance-name AzurePolicyforLinux --resource-group <myResourceGroup> --vm-name <myVM> --enable-auto-upgrade true
Para implementar la extensión en 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
Para implementar la extensión en Linux:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationForLinux' -Name 'AzurePolicyforLinux' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Para implementar la extensión en Windows:
Set-AzVMExtension -Publisher 'Microsoft.GuestConfiguration' -ExtensionType 'ConfigurationforWindows' -Name 'AzurePolicyforWindows' -TypeHandlerVersion 1.0 -ResourceGroupName '<myResourceGroup>' -Location '<myLocation>' -VMName '<myVM>' -EnableAutomaticUpgrade $true
Plantilla ARM
Para implementar la extensión en 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": {}
}
}
Para implementar la extensión en 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": {}
}
}
Plantilla de Bicep
Para implementar la extensión en 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: {}
}
}
Para implementar la extensión en 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: {}
}
}
Plantilla de Terraform
Para implementar la extensión en 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"
}
Para implementar la extensión en 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"
}
Mensajes de error
La siguiente tabla enumera los posibles mensajes de error relacionados con la habilitación de la extensión Configuración de invitados.
Código de error | Descripción |
---|---|
NoComplianceReport | La máquina virtual no ha notificado los datos de cumplimiento. |
GCExtensionMissing | Falta la extensión de configuración de la máquina (configuración de invitado). |
ManagedIdentityMissing | Falta la identidad administrada. |
UserIdentityMissing | Falta la identidad asignada por el usuario. |
GCExtensionManagedIdentityMissing | Faltan la extensión de configuración de la máquina (configuración de invitado) y la identidad administrada. |
GCExtensionUserIdentityMissing | Faltan la extensión de configuración del equipo (configuración de invitado) y la identidad asignada por el usuario. |
GCExtensionIdentityMissing | Falta la extensión de configuración de máquina (configuración de invitado), la identidad administrada y la identidad asignada por el usuario. |
Pasos siguientes
- Para obtener más información sobre la extensión de configuración de la máquina, consulta la Descripción de la configuración de máquina de Azure.
- Para obtener más información sobre cómo funcionan las extensiones y el agente de Linux, consulta Extensiones y características de las máquinas virtuales para Linux.
- Para más información sobre cómo funcionan las extensiones de Windows y Windows Guest Agent, consulte Características y extensiones de máquinas virtuales para Windows.
- Para instalar Windows Guest Agent, consulta Información general del agente de máquinas virtuales de Azure.
- Para instalar el agente de Linux, consulta Descripción y uso del agente Linux de Azure.