Ideas de solución
En este artículo se describe una idea de solución. El arquitecto de la nube puede usar esta guía para ayudar a visualizar los componentes principales de una implementación típica de esta arquitectura. Use este artículo como punto de partida para diseñar una solución bien diseñada que se adapte a los requisitos específicos de la carga de trabajo.
Esta solución ofrece una estrategia multicapa para proteger las máquinas virtuales (VM) en Azure, garantizando la accesibilidad al tiempo que minimiza la superficie de ataque para fines de gestión y administración.
Alineada con la recomendación de seguridad de Microsoft, esta solución incorpora varios mecanismos de protección ofrecidos por Microsoft Azure y los servicios Entra, adhiriéndose a los principios de seguro por diseño, seguro por defecto y operaciones seguras.
Seguridad por diseño. La solución logra un acceso granular no persistente a las máquinas virtuales mediante la aplicación del principio de mínimo privilegio y el concepto de separación de funciones. Esto garantiza que la autorización a las máquinas virtuales solo se concede por razones legítimas, reduciendo el riesgo de acceso no autorizado.
Seguro por defecto. El tráfico entrante a las máquinas virtuales está bloqueado, permitiendo la conectividad solo cuando es necesario. Esta postura de seguridad por defecto minimiza la exposición a muchos ciberataques populares, como los ataques de fuerza bruta y de denegación de servicio distribuido (DDoS).
Operaciones seguras. Es fundamental implementar una supervisión continua e invertir en la mejora de los controles de seguridad para hacer frente a las amenazas actuales y futuras. Use varios servicios y funciones de Azure, como Microsoft Entra Privileged Identity Management (PIM), la función de acceso a máquinas virtuales justo a tiempo (JIT) de Microsoft Defender for Cloud, Azure Bastion, funciones personalizadas de control de acceso basado en funciones de Azure (Azure RBAC). Opcionalmente debe considerar Microsoft Entra Conditional Access para regular el acceso a los recursos de Azure y Azure Key Vault para almacenar las contraseñas locales de las máquinas virtuales si no está integrado con Entra ID o Active Direcory Domain Services.
Posibles casos de uso
La defensa en profundidad es la premisa detrás de esta arquitectura. Esta estrategia desafía a los usuarios con varias líneas de defensa antes de conceder a los usuarios acceso a las máquinas virtuales. El objetivo es asegurarse de que:
- Se comprueba cada usuario.
- Cada usuario tenga intenciones legítimas.
- La comunicación sea segura.
- Solo se proporcione el acceso a las máquinas virtuales cuando sea necesario.
La estrategia de defensa en profundidad y la solución de este artículo se aplican a muchos escenarios:
Un administrador debe acceder a una máquina virtual de Azure en estas circunstancias:
- El administrador debe solucionar un problema, investigar un comportamiento o aplicar una actualización crítica.
- El administrador usa el Protocolo de escritorio remoto (RDP) para acceder a una máquina virtual Windows o Secure Shell (SSH) para acceder a una máquina virtual Linux.
- El acceso debe incluir el número mínimo de permisos necesarios para realizar la tarea.
- El acceso debe ser válido solo durante un tiempo limitado.
- Una vez expirado el acceso, el sistema debe bloquear el acceso a la máquina virtual para evitar intentos de acceso malintencionados.
Los empleados necesitan acceder a una estación de trabajo remota hospedada en Azure como una máquina virtual. Se aplican las siguientes condiciones:
- Los empleados solo deben acceder a la máquina virtual durante el horario laboral.
- El sistema de seguridad debe tener en cuenta las solicitudes de acceso a la máquina virtual fuera del horario laboral innecesarias y malintencionadas.
A los usuarios les gustaría conectarse a cargas de trabajo de máquinas virtuales de Azure. El sistema debe aprobar las conexiones que procedan únicamente de dispositivos administrados y compatibles.
Un sistema ha experimentado un gran número de ataques por fuerza bruta:
- Estos ataques tienen como destino máquinas virtuales de Azure en los puertos 3389 y 22 de RDP y SSH.
- Los ataques han intentado adivinar las credenciales.
- La solución debe evitar que los puertos de acceso, como el 3389 y el 22, se expongan a Internet o a los entornos locales.
Architecture
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
Decisiones de autenticación y acceso: el usuario se autentica en Microsoft Entra ID para acceder a Azure Portal, las API REST de Azure, Azure PowerShell o la CLI de Azure. Si la autenticación se realiza correctamente, se aplica una directiva de acceso condicional de Microsoft Entra. Esa directiva comprueba si el usuario cumple determinados criterios. Algunos ejemplos son el uso de un dispositivo administrado o el inicio de sesión desde una ubicación conocida. Si el usuario cumple los criterios, el acceso condicional concede al usuario acceso a Azure mediante Azure Portal u otra interfaz.
Acceso Just-In-Time basado en identidades: durante la autorización, Microsoft Entra PIM asigna al usuario un rol personalizado de tipo elegible. La elegibilidad se limita a los recursos necesarios y es un rol con límite de tiempo, no uno permanente. Dentro de un período de tiempo especificado, el usuario solicita la activación de este rol mediante la interfaz de Azure AD PIM. Esa solicitud puede desencadenar otras acciones, como iniciar un flujo de trabajo de aprobación o solicitar al usuario la autenticación multifactor para comprobar la identidad. En un flujo de trabajo de aprobación, otra persona debe aprobar la solicitud. De lo contrario, no se asigna el rol personalizado al usuario y no puede continuar con el paso siguiente.
Acceso Just-In-Time basado en red: después de la autenticación y autorización, el rol personalizado se vincula temporalmente a la identidad del usuario. A continuación, el usuario solicita acceso JIT a la máquina virtual. Ese acceso abre una conexión desde la subred de Azure Bastion en el puerto 3389 para RDP o en el puerto 22 para SSH. La conexión se ejecuta directamente a la tarjeta de interfaz de red (NIC) de la máquina virtual o a la subred de la NIC de la máquina virtual. Azure Bastion abre una sesión de RDP interna mediante dicha conexión. La sesión se limita a la red virtual de Azure y no se expone a la red pública de Internet.
Conexión a la máquina virtual de Azure: el usuario accede a Azure Bastion con un token temporal. Mediante este servicio, el usuario establece una conexión RDP indirecta a la máquina virtual de Azure. La conexión solo funciona durante un período de tiempo limitado. El usuario puede recuperar la contraseña de una instancia de Azure Key Vault, si la contraseña se almacenó como un secreto en Key Vault y se han configurado los permisos de RBAC suficientes para limitar el acceso a la cuenta de usuario adecuada.
Componentes
Esta solución usa los siguientes componentes:
Azure Virtual Machines es una oferta de infraestructura como servicio (IaaS). Puede usar máquinas virtuales para implementar recursos informáticos escalables a petición. En los entornos de producción que usan esta solución, implemente las cargas de trabajo en máquinas virtuales de Azure. A continuación, elimine la exposición innecesaria de las máquinas virtuales y los recursos de Azure.
Microsoft Entra ID es un servicio de identidad basado en la nube que controla el acceso a Azure y a otras aplicaciones en la nube.
PIM es un servicio de Azure AD que administra, controla y supervisa el acceso a recursos importantes. En esta solución, este servicio:
- Limita el acceso de administrador permanente a roles con privilegios estándar y personalizados.
- Proporciona acceso Just-In-Time basado en identidades a los roles personalizados.
El acceso JIT a máquinas virtuales es una característica de Defender for Cloud que proporciona acceso Just-In-Time basado en red a las máquinas virtuales. Esta característica agrega una regla de denegación al grupo de seguridad de red de Azure que protege la interfaz de red de la máquina virtual o la subred que contiene la interfaz de red de la máquina virtual. Esa regla minimiza la superficie de ataque de la máquina virtual al bloquear la comunicación innecesaria con la máquina virtual. Cuando un usuario solicita acceso a la máquina virtual, el servicio agrega una regla de permiso temporal al grupo de seguridad de red. Dado que la regla de tipo permitir tiene una prioridad mayor que la regla de tipo denegar, el usuario puede conectarse a la máquina virtual. Azure Bastion es lo más adecuado para conectarse a la máquina virtual. Pero el usuario también puede usar una sesión RDP o SSH directa.
RBAC de Azure es un sistema de autorización que proporciona una administración de acceso detallada a los recursos de Azure.
Los roles personalizados de RBAC de Azure proporcionan una manera de expandir los roles integrados de RBAC de Azure. Puede usarlos para asignar permisos en los niveles que satisfagan las necesidades de su organización. Estos roles admiten PoLP. Conceden solo los permisos que necesita un usuario para el propósito del usuario. Para acceder a una máquina virtual en esta solución, el usuario obtiene permisos para:
- Usar Azure Bastion.
- Solicitar acceso JIT a la máquina virtual en Defender for Cloud.
- Leer o enumerar máquinas virtuales.
El acceso condicional de Microsoft Entra es una herramienta que Microsoft Entra ID usa para controlar el acceso a los recursos. Las directivas de acceso condicional admiten el modelo de seguridad de Confianza cero. En esta solución, las directivas garantizan que solo los usuarios autenticados obtengan acceso a los recursos de Azure.
Azure Bastion proporciona conectividad RDP y SSH segura y sin problemas a las máquinas virtuales de una red. En esta solución, Azure Bastion conecta a los usuarios que usan Microsoft Edge u otro explorador de Internet para HTTPS o el tráfico seguro en el puerto 443. Azure Bastion configura la conexión RDP a la máquina virtual. Los puertos de RDP y SSH no se exponen a Internet ni al origen del usuario.
Azure Bastion es opcional en esta solución. Los usuarios pueden conectarse directamente a las máquinas virtuales de Azure mediante el protocolo RDP. Si configura Azure Bastion en una red virtual de Azure, configure una subred independiente llamada
AzureBastionSubnet
. A continuación, asocie un grupo de seguridad de red a esa subred. En ese grupo, especifique un origen para el tráfico HTTPS, como el bloque de Enrutamiento de interdominios sin clases (CIDR) de la dirección IP local del usuario. Con esta configuración, se bloquean las conexiones que no proceden del entorno local del usuario.Azure Key Vault proporciona un mecanismo seguro para almacenar la contraseña del usuario de la máquina virtual como un secreto. El RBAC secreto puede configurarse para que solo la cuenta de usuario que accede a la máquina virtual tenga permiso para recuperarlo. La recuperación del valor de la contraseña de la bóveda de claves puede realizarse a través de las API de Azure (como utilizando Azure CLI) o desde el portal de Azure, ya que Azure Key Vault se integra con la interfaz de usuario Azure Bastion en el blade de la máquina virtual en el portal de Azure.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Husam Hilal | Arquitecto sénior de soluciones en la nube
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
- Active mis roles de recursos de Azure en Privileged Identity Management
- Descripción del acceso a la máquina virtual Just-in-Time (JIT)
- Tutorial: Configuración de Bastion y conexión a una máquina virtual Windows
- Protección de eventos de inicio de sesión de usuario con la autenticación multifactor de Microsoft Entra