Descripción de la característica de configuración de invitado de Azure Policy
La característica de configuración de invitado de Azure Policy proporciona funcionalidad nativa para auditar o configurar las opciones del sistema operativo como código, tanto para las máquinas que se ejecutan en Azure como para las máquinas híbridas habilitadas para Arc. La característica se puede usar directamente para cada máquina o a gran escala orquestada por Azure Policy.
Los recursos de configuración de Azure están diseñados como un recurso de extensión. Puede imaginar cada configuración como un conjunto adicional de propiedades para la máquina. Las configuraciones pueden incluir valores como:
- Opciones del sistema operativo
- Configuración de la aplicación o presencia
- Configuración del entorno
Las configuraciones son distintas de las definiciones de directiva. La configuración de invitado usa Azure Policy para asignar dinámicamente configuraciones a las máquinas. También puede asignar configuraciones a las máquinas de forma manual o mediante otros servicios de Azure como Automanage.
En la tabla siguiente se proporcionan ejemplos de cada escenario.
| Tipo | Descripción | Caso de ejemplo |
|---|---|---|
| Administración de configuración | Quiere una representación completa de un servidor, como código en el control de código fuente. La implementación debe incluir las propiedades del servidor (tamaño, red, almacenamiento) y la configuración del sistema operativo y la configuración de la aplicación. | "Esta máquina debe ser un servidor web configurado para hospedar mi sitio web." |
| Cumplimiento normativo | Quiere auditar o implementar la configuración en todas las máquinas del ámbito de forma reactiva en las máquinas existentes o de forma proactiva en las nuevas máquinas a medida que se implementan. | "Todas las máquinas deben usar TLS 1.2. Audite las máquinas existentes para poder liberar el cambio cuando sea necesario, de forma controlada, a escala. En el caso de las nuevas máquinas, aplique la configuración cuando se implementen." |
Los resultados de cada valor de la configuración se pueden ver en la página Asignaciones de invitado o, si la configuración está orquestada por una asignación de Azure Policy, mediante un clic en el vínculo "Último recurso evaluado" de la página "Detalles de cumplimiento".
Hay disponible un tutorial de vídeo de este documento. (actualización disponible próximamente)
Habilitación de la configuración de invitado
Para administrar el estado de las máquinas del entorno, incluidas las de Azure y los servidores habilitados para Arc, revise los detalles siguientes.
Proveedor de recursos
Para poder usar la característica de configuración de invitado de Azure Policy, debe registrar el proveedor de recursos Microsoft.GuestConfiguration. Si la asignación de una directiva de configuración de invitado se realiza en el portal, o si la suscripción está inscrita en Azure Security Center, el proveedor de recursos se registra automáticamente. Puede registrarse manualmente mediante el portal, Azure PowerShell o la CLI de Azure.
Requisitos de implementación de Azure Virtual Machines
Para administrar la configuración en una máquina, se habilita una extensión de máquina virtual y la máquina debe tener una identidad administrada por el sistema. La extensión descarga la asignación de configuración de invitado aplicable y las dependencias correspondientes. La identidad se usa para autenticar la máquina a medida que lee y escribe en el servicio de configuración de invitado. La extensión no es necesaria para los servidores habilitados para Arc porque está incluida en el agente Connected Machine de Arc.
Importante
La extensión de configuración de invitado y una identidad administrada son necesarias para administrar las máquinas virtuales de Azure.
Para implementar la extensión a gran escala en muchas máquinas, asigne la iniciativa de directiva Deploy prerequisites to enable guest configuration policies on virtual machines
a un grupo de administración, una suscripción o un grupo de recursos que contenga las máquinas que planea administrar.
Si prefiere implementar la extensión y la identidad administrada en una sola máquina, siga las instrucciones para cada uno:
- Información general sobre la extensión Guest Configuration de Azure Policy
- Configurar identidades administradas para recursos de Azure en una VM mediante Azure Portal
Para usar paquetes de configuración de invitado que aplican configuraciones, se necesita la versión 1.29.24 o posterior de la extensión de configuración de invitado de máquina virtual de Azure.
Límites establecidos en la extensión
Para limitar que la extensión afecte a las aplicaciones que se ejecutan en la máquina, no se permite que el agente de configuración de invitado supere el 5 % de la CPU. Esta limitación existe tanto para definiciones integradas como personalizadas. Lo mismo se aplica al servicio de configuración de invitado en el agente Connected Machine de Arc.
Herramientas de validación
Dentro de la máquina, el cliente de configuración de invitado usa herramientas locales para realizar tareas.
En la tabla siguiente se muestra una lista de las herramientas locales usadas en cada sistema operativo compatible. En el caso de contenido integrado, la configuración de invitado controla la carga de estas herramientas automáticamente.
| Sistema operativo | Herramienta de validación | Notas |
|---|---|---|
| Windows | Desired State Configuration de PowerShell v3 | Instalado de prueba en una carpeta que solo usa Azure Policy. No entrará en conflicto con DSC de Windows PowerShell. PowerShell Core no se agrega a la ruta de acceso del sistema. |
| Linux | Desired State Configuration de PowerShell v3 | Instalado de prueba en una carpeta que solo usa Azure Policy. PowerShell Core no se agrega a la ruta de acceso del sistema. |
| Linux | Chef InSpec | Instala Chef InSpec versión 2.2.61 en la ubicación predeterminada y lo agrega a la ruta de acceso del sistema. También se instalan las dependencias del paquete InSpec, que incluyen Ruby y Python. |
Frecuencia de validación
El cliente de configuración de invitado busca asignaciones de invitados nuevas o modificadas cada cinco minutos. Una vez que se recibe una asignación de invitado, se comprueban los valores de esa configuración en un intervalo de 15 minutos. Si se asignan varias configuraciones, cada una se evalúa secuencialmente. Las configuraciones de larga duración afectan al intervalo de todas las configuraciones, ya que la siguiente no se ejecutará hasta que finalice la configuración anterior.
Los resultados se envían al servicio de configuración de invitado cuando finaliza la auditoría. Cuando se produce un desencadenador de evaluación de directiva, el estado de la máquina se escribe en el proveedor de recursos de configuración de invitado. Esta actualización hace que Azure Policy evalúe las propiedades de Azure Resource Manager. Una evaluación de Azure Policy a petición recupera el valor más reciente del proveedor de recursos de la configuración de invitado. Pero no desencadena una nueva actividad dentro de la máquina. Después, el estado se escribe en Azure Resource Graph.
Tipos de cliente admitidos
Las definiciones de directivas de configuración de invitado son inclusivas de las nuevas versiones. Las versiones anteriores de los sistemas operativos disponibles en Azure Marketplace se excluyen si el cliente de configuración de invitado no es compatible. En la tabla siguiente se muestra una lista de sistemas operativos compatibles en imágenes de Azure. El texto ".x" es simbólico y se usa para representar nuevas versiones secundarias de distribuciones de Linux.
| Publicador | Nombre | Versiones |
|---|---|---|
| Amazon | Linux | 2 |
| Canonical | Ubuntu Server | 14.04 - 20.x |
| Credativ | Debian | 8 - 10.x |
| Microsoft | Windows Server | 2012 - 2019 |
| Microsoft | Cliente Windows | Windows 10 |
| Oracle | Oracle-Linux | 7.x-8.x |
| OpenLogic | CentOS | 7.3 -8.x |
| Red Hat | Red Hat Enterprise Linux* | 7.4 - 8.x |
| SUSE | SLES | 12 SP3-SP5, 15.x |
* Red Hat CoreOS no se admite.
Las definiciones de directivas de configuración de invitado admiten imágenes de máquina virtual personalizadas, siempre y cuando se trate de uno de los sistemas operativos de la tabla anterior.
Requisitos de red
Las máquinas virtuales de Azure pueden usar su adaptador de red local o un vínculo privado para comunicarse con el servicio de configuración de invitado.
Las máquinas de Azure Arc se conectan mediante la infraestructura de red local para llegar a los servicios de Azure e informar del estado de cumplimiento.
Comunicación a través de redes virtuales en Azure
Para comunicarse con el proveedor de recursos de la configuración de invitado en Azure, las máquinas necesitan acceso de salida a los centros de datos de Azure en el puerto 443. Si una red en Azure no permite el tráfico saliente, las excepciones deben configurarse con las reglas del grupo de seguridad de red. Las etiquetas de servicio "AzureArcInfrastructure" y "Storage" se pueden usar para hacer referencia a los servicios de configuración de invitado y almacenamiento en lugar de mantener manualmente la lista de intervalos IP para los centros de datos de Azure. Las dos etiquetas son obligatorias porque los paquetes de contenido de configuración de invitado se hospedan en Azure Storage.
Comunicación a través de un vínculo privado en Azure
Las máquinas virtuales pueden usar un vínculo privado para la comunicación con el servicio de configuración de invitado. Aplique la etiqueta con el nombre EnablePrivateNetworkGC y el valor TRUE para habilitar esta característica. La etiqueta se puede aplicar antes o después de que se apliquen las definiciones de directivas de configuración de invitado a la máquina.
El tráfico se enruta mediante la dirección IP pública virtual de Azure para establecer un canal seguro y autenticado con recursos de la plataforma Azure.
Servidores habilitados para Azure Arc
Los nodos que se encuentran fuera de Azure y que están conectados mediante Azure Arc necesitan conectividad con el servicio de configuración de invitado. Detalles sobre los requisitos de red y proxy que se proporcionan en la documentación de Azure Arc.
En el caso de los servidores habilitados para Arc en centros de datos privados, permita el tráfico con los siguientes patrones:
- Puerto: solo se requiere el puerto TCP 443 para el acceso a Internet
- Dirección URL global:
*.guestconfiguration.azure.com
Asignación de directivas a máquinas fuera de Azure
Las definiciones de directivas de auditoría disponibles para la configuración de invitado incluyen el tipo de recurso Microsoft.HybridCompute/machines. Todas las máquinas incorporadas a Azure Arc para servidores que se encuentran en el ámbito de asignación de directivas se incluyen automáticamente.
Requisitos de identidad administrada
Las definiciones de directiva de la iniciativa Implementar los requisitos previos para habilitar directivas de configuración de invitado en máquinas virtuales habilitan una identidad administrada asignada por el sistema, si no existe ninguna. Hay dos definiciones de directivas en la iniciativa que administran la creación de identidades. Las condiciones IF en las definiciones de directiva garantizan el comportamiento correcto en función del estado actual del recurso de máquina en Azure.
Si la máquina no tiene identidades administradas actualmente, la directiva efectiva es: Agregar identidad administrada asignada por el sistema para habilitar asignaciones de configuración de invitado en máquinas virtuales sin identidades.
Si la máquina tiene actualmente una identidad de sistema asignada por el usuario, la directiva efectiva es: Agregar identidad administrada asignada por el sistema para habilitar las asignaciones de configuración de invitado en máquinas virtuales con una identidad asignada por el usuario
Disponibilidad
Los clientes que diseñan una solución de alta disponibilidad deben tener en cuenta los requisitos de planeamiento de redundancia para las máquinas virtuales, ya que las asignaciones de invitados son extensiones de recursos de máquina en Azure. Cuando los recursos de asignación de invitados se aprovisionan en una región de Azure emparejada, siempre y cuando haya al menos una región en el par disponible, los informes de asignación de invitados estarán disponibles. Si la región de Azure no está emparejada y deja de estar disponible, no será posible acceder a los informes de una asignación de invitado hasta que se restaure la región.
Al considerar una arquitectura para aplicaciones de alta disponibilidad, especialmente cuando las máquinas virtuales se aprovisionan en conjuntos de disponibilidad detrás de una solución de equilibrador de carga para proporcionar alta disponibilidad, se recomienda asignar las mismas definiciones de directiva con los mismos parámetros a todas las máquinas de la solución. Si es posible, una asignación de directiva única que abarca todas las máquinas ofrecería la menor sobrecarga administrativa.
En el caso de las máquinas protegidas por Azure Site Recovery, asegúrese de que las máquinas de un sitio secundario están dentro del ámbito de las asignaciones de Azure Policy para las mismas definiciones con los mismos valores de parámetro que las máquinas del sitio primario.
Residencia de datos
Configuración de invitado almacena o procesa los datos del cliente. De manera predeterminada, los datos del cliente se replican en la región emparejada. En el caso de una sola región residente, todos los datos de los clientes se almacenan y procesan en la región.
Solución de problemas de la configuración de invitado
Para obtener más información sobre la solución de problemas de la configuración de invitado, vea Solución de problemas de Azure Policy.
Asignaciones múltiples
Actualmente, las definiciones de directiva de configuración de invitado solo admiten la asignación de la misma asignación de invitado una vez por cada máquina cuando la asignación de directiva usa otros parámetros.
Asignaciones a grupos de administración de Azure
Las definiciones de Azure Policy de la categoría "Configuración de invitado" se pueden asignar a Grupos de administración solo cuando el efecto es "AuditIfNotExists". Las definiciones de directiva con el efecto "DeployIfNotExists" no se admiten como asignaciones a Grupos de administración.
Archivos de registro de cliente
La extensión de la configuración de invitado escribe archivos de registro en las ubicaciones siguientes:
Windows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log
Linux
- VM de Azure:
/var/lib/GuestConfig/gc_agent_logs/gc_agent.log - Servidor habilitado para Arc:
/var/lib/GuestConfig/arc_policy_logs/gc_agent.log
Recopilar registros de forma remota
El primer paso para solucionar problemas de configuraciones o módulos de configuración de invitado debe ser usar los cmdlets siguiendo los pasos descritos en Procedimiento para probar artefactos de paquete de configuración de invitado. Si no se realiza correctamente, la recopilación de registros de cliente puede ayudar a diagnosticar problemas.
Windows
Capture información de archivos de registro con el comando de ejecución de VM de Azure. El siguiente script de PowerShell de ejemplo puede ser útil.
$linesToIncludeBeforeMatch = 0
$linesToIncludeAfterMatch = 10
$logPath = 'C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log'
Select-String -Path $logPath -pattern 'DSCEngine','DSCManagedEngine' -CaseSensitive -Context $linesToIncludeBeforeMatch,$linesToIncludeAfterMatch | Select-Object -Last 10
Linux
Capture información de archivos de registro con el comando de ejecución de VM de Azure. El siguiente script de Bash de ejemplo puede ser útil.
linesToIncludeBeforeMatch=0
linesToIncludeAfterMatch=10
logPath=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $linesToIncludeBeforeMatch -A $linesToIncludeAfterMatch 'DSCEngine|DSCManagedEngine' $logPath | tail
Archivos de agente
El agente de configuración de invitado descarga paquetes de contenido en una máquina y extrae el contenido. Para comprobar qué contenido se ha descargado y almacenado, consulte las ubicaciones de carpeta que se indican a continuación.
Windows: c:\programdata\guestconfig\configuration
Linux: /var/lib/GuestConfig/Configuration
Ejemplos de configuración de invitado
Hay ejemplos de directivas integradas de configuración de invitado disponibles en las ubicaciones siguientes:
- Definiciones de directivas integradas: configuración de invitado
- Iniciativas integradas: configuración de invitado
- Repositorio de GitHub de ejemplos de Azure Policy
Pasos siguientes
- Configure un entorno de desarrollo de paquetes de configuración de invitado personalizado.
- Cree un artefacto de paquete para la configuración de invitado.
- Pruebe el artefacto de paquete desde el entorno de desarrollo.
- Use el módulo
GuestConfigurationa fin de crear una definición de Azure Policy para la administración a gran escala del entorno. - Asigne la definición de directiva personalizada mediante Azure Portal.
- Obtenga información sobre cómo ver los detalles de cumplimiento para las asignaciones de directivas de configuración de invitado.