Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen los aspectos básicos de las extensiones de máquina virtual para servidores habilitados para Azure Arc y se detalla cómo se puede personalizar la configuración de la extensión.
Básicos de la extensión
Las extensiones de máquina virtual (VM) para servidores habilitados para Azure Arc son complementos opcionales que habilitan otras funcionalidades, como la supervisión, la administración de revisiones y la ejecución de scripts. Microsoft publica extensiones y selecciona terceros de Azure Marketplace y se almacenan en cuentas de almacenamiento administradas por Microsoft. Todas las extensiones se examinan para malware como parte del proceso de publicación. Las extensiones compatibles con los servidores habilitados para Azure Arc son idénticas a las disponibles para las máquinas virtuales de Azure, lo que garantiza la coherencia en los entornos operativos.
Las extensiones se descargan directamente desde Azure Storage (*.blob.core.windows.net) a medida que se instalan o actualizan, a menos que haya configurado puntos de conexión privados. Las cuentas de almacenamiento cambian periódicamente y no se pueden predecir con antelación. Cuando se usan puntos de conexión privados, las extensiones se conectan en proxy a través de la dirección URL regional del servicio Azure Arc en su lugar.
Un archivo de catálogo firmado digitalmente se descarga por separado del paquete de extensión y se usa para comprobar la integridad de cada extensión antes de que el administrador de extensiones se abra o ejecute el paquete de extensión. Si el archivo ZIP descargado de la extensión no coincide con el contenido del archivo del catálogo, la operación de la extensión se aborta.
Las extensiones pueden aceptar configuraciones para personalizar o configurar la instalación, como direcciones URL de proxy o claves de API que vinculan un agente de supervisión con su servicio en la nube. La configuración de extensión se divide en dos categorías: la configuración normal y la configuración protegida. La configuración protegida no se conserva en Azure y se cifra en reposo en la máquina local.
Todas las operaciones de extensión se originan desde Azure a través de una llamada API, una CLI, PowerShell o una acción de Azure Portal. Este diseño garantiza que cualquier acción para instalar, actualizar o actualizar una extensión en un servidor se registra en el registro de actividad de Azure Monitor. El agente de Azure Connected Machine permite que las extensiones se quiten localmente con fines de solución de problemas y limpieza. Sin embargo, si la extensión se quita localmente y el servicio espera que la máquina tenga esa extensión, la extensión se vuelve a instalar la próxima vez que el administrador de extensiones se sincronice con Azure.
Ejecución de scripts
El administrador de extensiones puede ejecutar scripts en máquinas mediante Extensión de script personalizado o Ejecutar comando. De forma predeterminada, estos scripts se ejecutan en el contexto de usuario del administrador de extensiones : sistema local en Windows o raíz en Linux, lo que significa que estos scripts tienen acceso sin restricciones a la máquina. Si no pretende usar estas características, puede bloquearlas mediante una lista de permitidos o una lista de bloqueados. Por ejemplo, a menos que planee usar la extensión Script personalizado para la ejecución remota de código, debe deshabilitar su uso, ya que los atacantes pueden usarla para ejecutar comandos de forma remota que implementan código malicioso.
Controles de seguridad del agente local
Opcionalmente, puede limitar las extensiones que se pueden instalar en el servidor y deshabilitar la configuración de invitado. Estos controles pueden ser útiles cuando se conectan servidores a Azure con un único propósito, como recopilar registros de eventos, sin permitir que se utilicen otras capacidades de administración en el servidor.
Estos controles de seguridad solo se pueden configurar ejecutando un comando en el propio servidor y no se pueden modificar desde Azure. Este enfoque conserva la intención del administrador del servidor al habilitar escenarios de administración remota con Azure Arc, pero también significa que es más difícil cambiar estas opciones más adelante. Estos controles están diseñados para servidores confidenciales, como controladores de dominio de Active Directory, servidores que administran datos de pago y servidores sujetos a medidas estrictas de control de cambios). En la mayoría de los demás casos, no es necesario modificar estos ajustes.
Listas de permitidos y listas de bloqueados
El agente de Azure Connected Machine admite una lista de permitidos y una lista de bloqueados para determinar qué extensiones se pueden instalar en el equipo. Las listas de permitidos son exclusivas (solo se pueden instalar las extensiones específicas que incluya en la lista). Las listas de bloqueados son exclusivas (se puede instalar cualquier extensión salvo las incluidas en ellas). Las listas de permitidos son preferibles a las listas de bloqueados porque bloquean inherentemente las nuevas extensiones que están disponibles en el futuro.
Las listas de permitidos y las listas de bloqueados se configuran localmente, servidor por servidor. Esto garantiza que nadie, ni siquiera un usuario con permisos de propietario o administrador global en Azure, pueda reemplazar las reglas de seguridad al instalar una extensión no autorizada. Si alguien intenta instalar una extensión no autorizada, el administrador de extensiones se niega a instalarla y marca el informe de instalación de la extensión como un error en Azure.
Las listas de permitidos y las listas de bloqueos se pueden configurar en cualquier momento después de instalar el agente, incluido antes de que el agente esté conectado a Azure.
Si no se configura ninguna lista de permitidos o lista de bloqueados en el agente, se permiten todas las extensiones.
La opción más segura es permitir explícitamente las extensiones que espera se instalen. Toda extensión que no esté en la lista de permitidos se bloquea automáticamente. Por ejemplo, para configurar el agente de Azure Connected Machine para permitir solo el agente de Azure Monitor para Linux, ejecute el siguiente comando en cada servidor:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
Por ejemplo, este comando bloquea las extensiones que tienen la capacidad de ejecutar scripts arbitrarios:
azcmagent config set extensions.blocklist "Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation/HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux"
Especifique las extensiones con su editor y tipo, separados por una barra oblicua /. Consulte los detalles de las extensiones más comunes en la documentación.
Puede enumerar las extensiones de máquina virtual que ya están instaladas en el servidor en el portal, Azure PowerShell o la CLI de Azure.
En la tabla se describe el comportamiento de las operaciones de extensión en un agente que tiene configurada la lista de permitidos o la lista de bloqueados.
| Operation | En la lista de permitidos | En la lista de bloqueados | Tanto en la lista de permitidos como en la lista de bloqueados | En ninguna lista, pero hay configurada una lista de permitidos |
|---|---|---|---|---|
| Instalación de la extensión | Allowed | Blocked | Blocked | Blocked |
| Actualizar (reconfigurar) extensión | Allowed | Blocked | Blocked | Blocked |
| Actualizar extensión | Allowed | Blocked | Blocked | Blocked |
| Eliminar extensión | Allowed | Allowed | Allowed | Allowed |
Important
Si una extensión ya está instalada en el servidor antes de configurar una lista de permitidos o una lista de bloqueados, no se quitará. Es su responsabilidad eliminar la extensión de Azure para eliminarla completamente de la máquina. Las solicitudes de eliminación se aceptan siempre para permitir este escenario. Una vez eliminados, la lista de permitidos y la lista de bloqueados determinan si se permiten o no futuros intentos de instalación.
El valor Allow/None de la lista de permitidos indica al administrador de extensiones que se ejecute, pero no permite que se instalen extensiones. Este valor se recomienda al usar Azure Arc para entregar actualizaciones de seguridad extendidas (ESU) de Windows Server 2012 sin intentar usar ninguna otra extensión.
azcmagent config set extensions.allowlist "Allow/None"
Azure Policy
Otra opción para restringir qué extensiones se pueden instalar es usar Azure Policy. Las directivas tienen la ventaja de ser configurables en la nube, por lo que no se requiere un cambio en cada servidor individual si necesita cambiar la lista de extensiones aprobadas. Sin embargo, cualquier persona con permiso para modificar las asignaciones de directiva podría invalidar o quitar esta protección. Si decide usar Azure Policy para restringir las extensiones, asegúrese de revisar qué cuentas de su organización tienen permiso para editar las asignaciones de directivas y de que se aplican las medidas de control de cambios adecuadas.
Modo de monitor de agente
De forma predeterminada, el agente de Connected Machine se ejecuta en modo completo, lo que permite instalar y usar todas las extensiones (a menos que estén restringidas por listas de permitidos, listas de bloqueos o Azure Policy). Una manera sencilla de configurar controles de seguridad locales para escenarios de supervisión y seguridad es habilitar el modo de supervisión para el agente de Connected Machine.
Cuando el agente está en modo de supervisión, solo se pueden implementar extensiones relacionadas con la supervisión y la seguridad, como el agente de Azure Monitor y Microsoft Defender for Cloud. El agente bloquea las extensiones que podrían cambiar la configuración del sistema o ejecutar scripts arbitrarios y deshabilita el agente de directiva de configuración de invitado.
A medida que las nuevas extensiones estén disponibles, Microsoft actualiza la lista de permitidos del modo de supervisión. Puede revisar la lista actual de extensiones permitidas ejecutando azcmagent config list.
Para ejecutar el modo comando para habilitar la supervisión:
azcmagent config set config.mode monitor
Puede comprobar el modo actual del agente y las extensiones permitidas con el siguiente comando:
azcmagent config list
Mientras está en modo de supervisión, no se puede modificar la lista de permitidos o la lista de bloqueados de la extensión. Si necesita cambiar cualquiera de las listas, vuelva a cambiar el agente al modo completo y especifique su propia lista de permitidos y listas de bloqueados en lugar de usar el modo de supervisión.
Para volver al modo completo, ejecute el siguiente comando:
azcmagent config set config.mode full
Procedimientos recomendados para máquinas bloqueadas
Al configurar el agente Azure Connected Machine con un conjunto reducido de capacidades, es importante tener en cuenta los mecanismos que alguien podría utilizar para eliminar esas restricciones e implementar los controles adecuados. Cualquier persona capaz de ejecutar comandos como administrador o usuario raíz en el servidor puede cambiar la configuración del agente de Azure Connected Machine. Las extensiones y las directivas de configuración de invitados se ejecutan en contextos privilegiados en su servidor y, como tales, podrían ser capaces de cambiar la configuración del agente. Si aplica controles de seguridad locales del agente para bloquearlo, Microsoft recomienda las siguientes prácticas recomendadas para garantizar que solo los administradores locales del servidor puedan actualizar la configuración del agente:
- Siempre que sea posible, use listas de permitidos para extensiones en lugar de listas de bloqueados.
- No permita la extensión de script personalizado a menos que la necesite para un propósito específico.
- Deshabilite la Configuración de invitado para evitar el uso de directivas de Configuración de invitado personalizadas que podrían cambiar la configuración del agente.
Ejemplo de configuración para escenarios de supervisión y seguridad
Es habitual usar Azure Arc para supervisar los servidores con Azure Monitor y Microsoft Sentinel y protegerlos con Microsoft Defender for Cloud. Esta sección contiene ejemplos de cómo bloquear el agente para que solo admita escenarios de monitorización y seguridad.
Agente de Azure Monitor únicamente
En servidores Windows, ejecute los siguientes comandos en una consola de comandos con privilegios elevados:
azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false
En los servidores Linux, ejecute los siguientes comandos:
sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false
Supervisión y seguridad
Microsoft Defender for Cloud despliega extensiones en su servidor para identificar software vulnerable en su servidor y habilitar Microsoft Defender para punto de conexión (si está configurado). Microsoft Defender for Cloud también usa la Configuración de invitado para su característica de cumplimiento normativo. Dado que una asignación de configuración de invitado personalizada podría usarse para deshacer las limitaciones del agente, debe evaluar cuidadosamente si necesita la característica de cumplimiento normativo y, como resultado, la configuración de invitado se habilitará en la máquina.
En servidores Windows, ejecute los siguientes comandos en una consola de comandos con privilegios elevados:
azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true
En los servidores Linux, ejecute los siguientes comandos:
sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true
Deshabilitar el administrador de extensiones
Si no necesita usar extensiones con Azure Arc, también puede deshabilitar completamente el administrador de extensiones. Puede deshabilitar el administrador de extensiones mediante el azcmagent config set comando (ejecute localmente en cada equipo):
azcmagent config set extensions.enabled false
Deshabilitar el administrador de extensiones no quita ninguna extensión ya instalada en el servidor. Las extensiones hospedadas en sus propios servicios de Windows o Linux, como el agente heredado de Log Analytics, podrían seguir ejecutándose incluso si el administrador de extensiones está deshabilitado. Otras extensiones hospedadas por el propio administrador de extensiones, como el agente de Azure Monitor, no se ejecutan si el administrador de extensiones está deshabilitado. Para asegurarse de que ninguna extensión continúe ejecutándose en el servidor, quite todas las extensiones antes de deshabilitar el administrador de extensiones.