Protección multicapa para el acceso a máquinas virtuales de Azure

Microsoft Entra ID
Azure Bastion
Control de acceso basado en rol de Azure
Microsoft Defender for Cloud

Ideas de solución

Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con más información, como posibles casos de uso, servicios alternativos, consideraciones de implementación o una guía de precios, comunícalo a través de los Comentarios de GitHub.

Esta solución proporciona un enfoque multicapa para proteger máquinas virtuales (VM) en Azure. Los usuarios deben conectarse a las máquinas virtuales con fines administrativos. Es crítico minimizar la superficie de ataque que crea la conectividad.

Esta solución consigue un acceso granular no persistente a las máquinas virtuales mediante la incorporación de varios mecanismos de protección. Se alinea con el principio de privilegios mínimos (PoLP) y el concepto de separación de obligaciones. Para reducir la exposición a ataques, esta solución bloquea el tráfico entrante a las máquinas virtuales, pero hace que las conexiones de máquina virtual sean accesibles cuando sea necesario. La implementación de este tipo de protección minimiza el riesgo de muchos ciberataques populares a máquinas virtuales, como ataques por fuerza bruta y ataques de denegación de servicio distribuido (DDoS).

Esta solución usa muchos servicios y características de Azure, entre los que se incluyen:

  • Microsoft Entra Privileged Identity Management (PIM).
  • La característica de acceso a máquinas virtuales Just-In-Time (JIT) de Microsoft Defender for Cloud.
  • Azure Bastion.
  • Roles personalizados del control de acceso basado en roles de Azure (RBAC de Azure).
  • Acceso condicional de Microsoft Entra; opcional.

Posibles casos de uso

La defensa en profundidad es la idea principal 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:

  • Cada usuario sea legítimo.
  • 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 el trabajo.
    • 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

Architecture diagram showing how a user gains temporary access to an Azure V M.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Decisiones de autenticación y acceso: el usuario se autentica en Microsoft Entra ID para el acceso a Azure Portal, las API de 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.

  2. 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.

  3. 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.

  4. 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.

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.

    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