Habilitar acceso Just-In-Time en VMs

Puede usar el acceso Just-In-Time (JIT) de Microsoft Defender for Cloud para proteger las máquinas virtuales (VM) de Azure frente a un acceso de red no autorizado. Muchas veces, los firewalls contienen reglas de permisos por las que las máquinas virtuales quedan vulnerables a ataques. Con JIT puede permitir el acceso a las máquinas virtuales solo cuando sea necesario, en los puertos necesarios y durante el período de tiempo necesario.

Obtenga más información sobre cómo funciona JIT y los permisos necesarios para configurar y usar JIT.

En este artículo, aprenderá cómo incluir JIT en su programa de seguridad, incluido cómo:

  • Habilitar JIT en las máquinas virtuales desde Azure Portal o mediante programación
  • Solicitar acceso a una máquina virtual que tenga JIT habilitado desde Azure Portal o mediante programación
  • Auditar la actividad de JIT para asegurarse de que las máquinas virtuales están protegidas correctamente

Disponibilidad

Aspecto Detalles
Estado de la versión: Disponibilidad general (GA)
Máquinas virtuales admitidas: Máquinas virtuales implementadas por medio de Azure Resource Manager
Máquinas virtuales con modelos de implementación clásica
Máquinas virtuales protegidas por instancias de Azure Firewall en la misma red virtual que la máquina virtual
Máquinas virtuales que las instancias de Azure Firewall protegen y que Azure Firewall Manager controla
Instancias de AWS EC2 (versión preliminar)
Roles y permisos necesarios: Reader, SecurityReader o un rol personalizado pueden ver el estado y los parámetros de JIT.
Para crear un rol con privilegios mínimos para los usuarios que solo necesitan solicitar acceso JIT a una máquina virtual, use el script Set-JitLeastPrivilegedRole.
Nubes: Nubes comerciales
Nacional (Azure Government, Microsoft Azure operado por 21Vianet)
Cuentas de AWS conectadas (versión preliminar)

Requisitos previos

  • JIT necesita que el plan 2 de Microsoft Defender para servidores esté habilitado en la suscripción.

  • Los roles Lector y SecurityReader pueden ver el estado y los parámetros de JIT.

  • Si quiere crear roles personalizados que puedan funcionar con JIT, necesita los detalles de la tabla siguiente:

    Para permitir a los usuarios: Permisos que se deben establecer
    Configurar o editar una directiva JIT para una VM Asigne estas acciones al rol.
    • En el ámbito de una suscripción (o un grupo de recursos cuando solo se usa una API o PowerShell) asociados a la máquina virtual:
      Microsoft.Security/locations/jitNetworkAccessPolicies/write
    • En el ámbito de una suscripción (o un grupo de recursos cuando solo se usa una API o PowerShell) de máquina virtual:
      Microsoft.Compute/virtualMachines/write
    Solicitud de acceso Just-In-Time a una máquina virtual Asigne estas acciones al usuario.
    • Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/action
    • Microsoft.Security/locations/jitNetworkAccessPolicies/*/read
    • Microsoft.Compute/virtualMachines/read
    • Microsoft.Network/networkInterfaces/*/read
    • Microsoft.Network/publicIPAddresses/read
    Leer directivas JIT Asigne estas acciones al usuario.
    • Microsoft.Security/locations/jitNetworkAccessPolicies/read
    • Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/action
    • Microsoft.Security/policies/read
    • Microsoft.Security/pricings/read
    • Microsoft.Compute/virtualMachines/read
    • Microsoft.Network/*/read

    Nota:

    Solo los Microsoft.Security permisos son pertinentes para AWS.

  • Para configurar JIT en la máquina virtual de Amazon Web Service (AWS), debe conectar su cuenta de AWS a Microsoft Defender for Cloud.

    Sugerencia

    Para crear un rol con menos privilegios para los usuarios que necesiten solicitar acceso JIT a una máquina virtual y no realizar ninguna otra operación JIT, use el script Set-JitLeastPrivilegedRole de las páginas de la comunidad de Defender for Cloud GitHub.

    Nota:

    Para crear correctamente una directiva JIT personalizada, el nombre de la directiva, junto con el nombre de la máquina virtual de destino, no debe superar un total de 56 caracteres.

Trabajar con el acceso a máquinas virtuales JIT con Microsoft Defender for Cloud

Puede usar Defender for Cloud o habilitar mediante programación el acceso a máquinas virtuales JIT con sus propias opciones personalizadas, o bien puede habilitar JIT con parámetros predeterminados codificados de forma rígida desde máquinas virtuales de Azure.

Acceso de máquina virtual Just-In-Time muestra las máquinas virtuales agrupadas de las siguientes formas:

  • Configuradas: máquinas virtuales configuradas para admitir el acceso de máquina virtual Just-In-Time. Muestra:
    • el número de solicitudes JIT aprobadas en los últimos siete días
    • la fecha y hora del último acceso
    • los detalles de la conexión configurados
    • el último usuario
  • No configurado: máquinas virtuales sin JIT habilitado, pero que pueden admitir JIT. Se recomienda habilitar JIT para estas máquinas virtuales.
  • No compatible: máquinas virtuales que no admiten JIT por las siguientes razones:
    • Falta un grupo de seguridad de red (NSG) o Azure Firewall: JIT requiere que se configure un grupo de seguridad de red o una configuración de firewall (o ambos)
    • Máquina virtual clásica: JIT es compatible con las máquinas virtuales que se implementan a través de Azure Resource Manager. Obtenga más información sobre los modelos de implementación clásica y de Resource Manager.
    • Otro: la solución JIT está deshabilitada en la directiva de seguridad de la suscripción o el grupo de recursos.

Habilitación de JIT en las máquinas virtuales desde Microsoft Defender for Cloud

Captura de pantalla que muestra la configuración del acceso de máquina virtual JIT en Microsoft Defender for Cloud.

Desde Defender for Cloud, puede habilitar y configurar el acceso a la máquina virtual JIT.

  1. Abra Protecciones de cargas de trabajo y, en las protecciones avanzadas, seleccione Acceso de máquina virtual Just-In-Time.

  2. En la pestaña máquinas virtuales no configuradas, marque las máquinas virtuales que desea proteger con JIT y seleccione Habilitar JIT en máquinas virtuales.

    Se abre la página de acceso a la máquina virtual JIT con los puertos que Defender for Cloud recomienda proteger:

    • 22 - SSH
    • 3389 - RDP
    • 5985 - WinRM
    • 5986 - WinRM

    Para personalizar el acceso JIT:

    1. Seleccione Agregar.

    2. Seleccione uno de los puertos de la lista para editarlo o escriba otros puertos. Para cada puerto, puede establecer lo siguiente:

      • Protocolo: el protocolo que se permite en este puerto cuando se aprueba una solicitud
      • Direcciones IP de origen permitidas: los intervalos de direcciones IP que se permiten en este puerto cuando se aprueba una solicitud
      • Tiempo de solicitud máximo: el período de tiempo máximo durante el que puede estar abierto un puerto específico
    3. Seleccione Aceptar.

  3. Para guardar la configuración del puerto, seleccione Guardar.

Edición de la configuración JIT en una máquina virtual habilitada para JIT mediante Defender for Cloud

Puede modificar la configuración Just-In-Time de una máquina virtual agregando y configurando un puerto nuevo que proteja dicha máquina virtual, o bien cambiando otro valor relacionado con un puerto ya protegido.

Para editar las reglas JIT existentes para una máquina virtual:

  1. Abra Protecciones de cargas de trabajo y, en las protecciones avanzadas, seleccione Acceso de máquina virtual Just-In-Time.

  2. En las pestañas máquinas virtuales Configuradas, haga clic con el botón derecho en una máquina virtual y seleccione Editar.

  3. En Configuración de acceso a la VM JIT, puede editar la lista de puertos o seleccionar la opción de Agregar un nuevo puerto personalizado.

  4. Cuando termine de editar los puertos, seleccione Guardar.

Solicitud de acceso a una máquina virtual habilitada para JIT desde Microsoft Defender for Cloud

Cuando una máquina virtual tiene JIT habilitado, tiene que solicitar acceso para conectarse a ella. Puede solicitar acceso de cualquiera de las maneras admitidas, independientemente de cómo haya habilitado JIT.

  1. En la página Acceso de máquina virtual Just-In-Time, seleccione la pestaña Configurado.

  2. Seleccione las máquinas virtuales a las que quiere acceder:

    • El icono de la columna Detalles de la conexión indica si JIT está habilitado en el grupo de seguridad de red o el firewall. Si está habilitado en ambos, solo aparece el icono de firewall.

    • La columna Detalles de conexión muestra el usuario y los puertos que pueden acceder a la máquina virtual.

  3. Seleccione Solicitar acceso. Se abre la ventana Solicitar acceso.

  4. En Solicitar acceso, seleccione los puertos que quiere abrir para cada máquina virtual, las direcciones IP de origen en las que quiere que se abra el puerto y el período de tiempo en el que se abrirán los puertos.

  5. Seleccione Open ports (Abrir puertos).

    Nota

    Si un usuario que solicita acceso está detrás de un proxy, puede escribir el intervalo de direcciones IP del proxy.

Otras formas de trabajar con el acceso a VM JIT

Azure Virtual Machines

Habilitación de JIT en las máquinas virtuales desde máquinas virtuales de Azure

Puede habilitar JIT en una máquina virtual desde las páginas de máquinas virtuales de Azure Portal.

Sugerencia

Si una máquina virtual ya tiene JIT habilitado, la página de configuración de la máquina virtual muestra que JIT está habilitado. Puede usar el vínculo para abrir la página de acceso a la máquina virtual JIT en Defender for Cloud para ver y cambiar la configuración.

  1. En Azure Portal, busque y seleccione Máquinas virtuales.

  2. Seleccione la máquina virtual que desee proteger con JIT.

  3. En el menú, seleccione Configuración.

  4. En Acceso Just-In-Time, seleccione Habilitar Just-In-Time.

    De forma predeterminada, el acceso Just-In-Time para la máquina virtual usa esta configuración:

    • Máquinas de Windows
      • Puerto RDP: 3389
      • Acceso máximo permitido: tres horas
      • Direcciones IP de origen permitidas: cualquiera
    • Equipos con Linux
      • Puerto SSH: 22
      • Acceso máximo permitido: tres horas
      • Direcciones IP de origen permitidas: cualquiera
  5. Para editar cualquiera de estos valores o agregar más puertos a la configuración JIT, use la página Just-In-Time de Microsoft Defender for Cloud:

    1. En el menú de Defender for Cloud, seleccione Acceso a máquina virtual Just-In-Time.

    2. En la pestaña Configurado, haga clic con el botón derecho en la máquina virtual a la que desea agregar un puerto y seleccione Editar.

      Edición de una configuración de acceso de máquina virtual JIT en Microsoft Defender for Cloud.

    3. En Configuración de acceso a máquina virtual del tipo JIT , puede modificar la configuración existente de un puerto protegido, o bien agregar un puerto personalizado.

    4. Cuando haya terminado de editar los puertos, seleccione Guardar.

Solicitud de acceso a una máquina virtual habilitada para JIT desde la página de conexión de la máquina virtual de Azure

Cuando una máquina virtual tiene JIT habilitado, tiene que solicitar acceso para conectarse a ella. Puede solicitar acceso de cualquiera de las maneras admitidas, independientemente de cómo haya habilitado JIT.

Captura de pantalla que muestra la solicitud Just-In-Time de JIT.

Para solicitar acceso desde máquinas virtuales de Azure:

  1. En Azure Portal, abra las páginas de máquinas virtuales.

  2. Seleccione la máquina virtual a la que desea conectarse y abra la página Conectar.

    Azure comprueba si JIT está habilitado en esa máquina virtual.

    • Si JIT no está habilitado para la máquina virtual, se le pedirá que lo habilite.

    • Si JIT está habilitado, seleccione Solicitar acceso para pasar una solicitud de acceso con la dirección IP de solicitud, el intervalo de tiempo y los puertos que se configuraron para esa máquina virtual.

Nota

Una vez aprobada una solicitud para una máquina virtual protegida por Azure Firewall, Defender for Cloud proporciona al usuario los detalles de conexión adecuados (la asignación de puertos de la tabla DNAT) que se usarán para conectarse a la máquina virtual.

PowerShell

Habilitación de JIT en las máquinas virtuales mediante PowerShell

Para habilitar el acceso a máquinas virtuales Just-In-Time desde PowerShell, use el cmdlet oficial deMicrosoft Defender for Cloud PowerShell Set-AzJitNetworkAccessPolicy.

Ejemplo: habilite el acceso a máquinas virtuales Just-in-Time en una máquina virtual específica con las siguientes reglas:

  • Cierre los puertos 22 y 3389.
  • Establezca una ventana de tiempo máximo de 3 horas para cada uno, para que así puedan abrirse según la solicitud aprobada.
  • Deje que el usuario que solicita el acceso controle las direcciones IP de origen.
  • Deje que el usuario que solicita el acceso establezca una sesión correcta tras una solicitud de acceso del tipo Just-In-Time aprobada.

Los siguientes comandos de PowerShell crean esta configuración JIT:

  1. Asigne una variable que contenga las reglas de acceso a máquinas virtuales Just-in-Time para una máquina virtual:

    $JitPolicy = (@{
        id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME";
        ports=(@{
            number=22;
            protocol="*";
            allowedSourceAddressPrefix=@("*");
            maxRequestAccessDuration="PT3H"},
            @{
            number=3389;
            protocol="*";
            allowedSourceAddressPrefix=@("*");
            maxRequestAccessDuration="PT3H"})})
    
  2. Inserte las reglas de acceso a máquinas virtuales Just-in-Time de la máquina virtual en una matriz:

    $JitPolicyArr=@($JitPolicy)
    
  3. Configure las reglas de acceso a máquinas virtuales Just-in-Time en la máquina virtual seleccionada:

    Set-AzJitNetworkAccessPolicy -Kind "Basic" -Location "LOCATION" -Name "default" -ResourceGroupName "RESOURCEGROUP" -VirtualMachine $JitPolicyArr
    

    Use el parámetro -Name para especificar una máquina virtual. Por ejemplo, para establecer la configuración JIT para dos máquinas virtuales diferentes, VM1 y VM2, use Set-AzJitNetworkAccessPolicy -Name VM1 y Set-AzJitNetworkAccessPolicy -Name VM2.

Solicitud de acceso a una máquina virtual habilitada para JIT mediante PowerShell

En el ejemplo siguiente, puede ver una solicitud de acceso a máquina virtual del tipo Just-In-Time para una máquina virtual específica en el puerto 22, para una dirección IP específica y durante un período concreto:

Ejecute los siguientes comandos en PowerShell:

  1. Configure las propiedades de acceso de solicitud de la máquina virtual:

    $JitPolicyVm1 = (@{
        id="/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/VMNAME";
        ports=(@{
          number=22;
          endTimeUtc="2020-07-15T17:00:00.3658798Z";
          allowedSourceAddressPrefix=@("IPV4ADDRESS")})})
    
  2. Inserte los parámetros de solicitud de acceso a la máquina virtual en una matriz:

    $JitPolicyArr=@($JitPolicyVm1)
    
  3. Envíe el acceso de solicitud (use el id. de recurso del paso 1).

    Start-AzJitNetworkAccessPolicy -ResourceId "/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Security/locations/LOCATION/jitNetworkAccessPolicies/default" -VirtualMachine $JitPolicyArr
    

Para más información, consulte la documentación del cmdlet de PowerShell.

API DE REST

Habilitación de JIT en las máquinas virtuales mediante API REST

La característica de acceso a máquinas virtuales Just-In-Time se puede usar a través de la API de Microsoft Defender for Cloud. Use esta API para obtener más información acerca de las máquinas virtuales configuradas, cómo agregar otras nuevas o solicitar acceso a una máquina virtual, entre otras cosas.

Obtenga más información en Directivas de acceso a redes JIT.

Solicitud de acceso a una máquina virtual habilitada para JIT mediante API REST

La característica de acceso a máquinas virtuales Just-In-Time se puede usar a través de la API de Microsoft Defender for Cloud. Use esta API para obtener más información acerca de las máquinas virtuales configuradas, cómo agregar otras nuevas o solicitar acceso a una máquina virtual, entre otras cosas.

Obtenga más información en Directivas de acceso a redes JIT.

Auditar la actividad de acceso JIT en Defender for Cloud

Puede usar la búsqueda de registros para obtener información sobre las actividades de las máquinas virtuales. Para ver los registros:

  1. En Acceso de máquina virtual Just-In-Time, seleccione la pestaña Configurado.

  2. Para la máquina virtual que desea auditar, abra el menú de puntos suspensivos al final de la fila.

  3. Seleccione Registro de actividades en el menú.

    Selección del registro de actividad Just-in-Time (JIT).

    El registro de actividades proporciona una vista filtrada de las operaciones anteriores para esa máquina virtual, junto con el tiempo, la fecha y la suscripción.

  4. Para descargar la información de registro, seleccione Descargar como CSV.

Paso siguiente