Habilitación de Private Link en un clúster de HDInsight

En este artículo, aprenderá a usar Azure Private Link para conectarse a un clúster de HDInsight de forma privada mediante redes de la red troncal de Microsoft. Este artículo es una extensión del artículo Restricción de la conectividad de clústeres en Azure HDInsight, que se centra en restringir la conectividad pública. Si quiere conectividad pública con los clústeres de HDInsight o dentro de ellos y los recursos dependientes, considere la posibilidad de restringir la conectividad del clúster siguiendo las instrucciones del control del tráfico de red en Azure HDInsight.

Private Link se puede usar en escenarios entre redes en los que el emparejamiento de red virtual no está disponible ni habilitado.

Nota

Restringir la conectividad pública es un requisito previo para habilitar Private Link y no debe considerarse como la misma funcionalidad.

El uso de Private Link para conectarse a un clúster de HDInsight es una característica opcional y está deshabilitado de forma predeterminada. La característica solo está disponible cuando la propiedad de red resourceProviderConnection se establece en saliente, tal como se describe en el artículo Restricción de la conectividad de clústeres en Azure HDInsight.

Cuando privateLink se establece en habilitado, se crean equilibradores de carga estándar (SLB) y se aprovisiona un servicio Azure Private Link para cada uno de ellos. El servicio Private Link es lo que permite acceder al clúster de HDInsight desde puntos de conexión privados.

La creación correcta de un clúster de Private Link implica realizar muchos pasos, que están resumidos aquí. Siga cada uno de estos pasos a continuación para asegurarse de que todo esté configurado correctamente.

Paso 1: Creación de los requisitos previos

Para empezar, implemente los siguientes recursos si todavía no los ha creado. Debe tener al menos un grupo de recursos, dos redes virtuales y un grupo de seguridad de red para adjuntar a la subred en la que se implementará el clúster de HDInsight, tal y como se muestra a continuación.

Tipo Nombre Propósito
Resource group hdi-privlink-rg Se usa para mantener juntos los recursos comunes
Virtual network hdi-privlink-cluster-vnet Red virtual en la que se implementará el clúster
Virtual network hdi-privlink-client-vnet La red virtual desde la que los clientes se conectarán al clúster
Grupo de seguridad de red hdi-privlink-cluster-vnet-nsg NSG predeterminado según lo requiera la implementación del clúster

Nota:

El grupo de seguridad de red (NSG) se puede implementar de manera sencilla y no es necesario modificar ninguna regla de NSG para implementar el clúster.

Paso 2: Configuración de una subred de HDInsight

  • Deshabilite privateLinkServiceNetworkPolicies en la subred. Para elegir una dirección IP de origen para el servicio de vínculo privado, se requiere un valor privateLinkServiceNetworkPolicies de deshabilitación explícita en la subred. Siga las instrucciones que aparecen aquí para deshabilitar las directivas de red para los servicios de Private Link.
  • Habilite Puntos de conexión de servicio en la subred. Para implementar de forma satisfactoria un clúster de Private Link HDInsight, le recomendamos que agregue los puntos de conexión de servicio Microsoft.SQL, Microsoft.Storage, y Microsoft.KeyVault a su subred antes de implementar el clúster. Los puntos de conexión de servicio enrutan el tráfico directamente desde la red virtual hasta el servicio en la red troncal de Microsoft Azure. Mantener el tráfico en la red troncal de Azure permite seguir auditando y supervisando el tráfico saliente de Internet desde las redes virtuales, a través de la tunelización forzada, sin que afecte al tráfico del servicio.

Paso 3: Implementación de firewall o puerta de enlace NAT

A diferencia de los equilibradores de carga básicos, los estándar no proporcionan automáticamente la NAT pública de salida. Como los clústeres de Private Link usan equilibradores de carga estándar, debe proporcionar su propia solución NAT, como una puerta de enlace NAT o una NAT proporcionada por el firewall, para conectarse a dependencias de HDInsight públicas de salida.

Implementación de una puerta de enlace NAT (opción 1)

Puede optar por usar una puerta de enlace NAT si no desea configurar un firewall o una aplicación virtual de red (NVA) para NAT. Para empezar, agregue una puerta de enlace NAT (con una nueva dirección IP pública en la red virtual) a la subred configurada de la red virtual. Esta puerta de enlace es responsable de traducir la dirección IP interna privada a direcciones públicas cuando el tráfico debe salir de la red virtual.

Para comenzar con una configuración básica:

  1. Busque "Puertas de enlace NAT" en Azure Portal y haga clic en Crear.

  2. Use estas configuraciones en la puerta de enlace NAT. (No están incluidas todas las configuraciones, por lo que puede usar los valores predeterminados).

    Config Valor
    Nombre de NAT Gateway hdi-privlink-nat-gateway
    Prefijos de dirección IP pública Creación de un prefijo de IP pública
    Nombre del prefijo de IP pública hdi-privlink-nat-gateway-prefix
    Tamaño del prefijo de IP pública /28 (16 direcciones)
    Virtual network hdi-privlink-cluster-vnet
    Nombre de subred default
  3. Una vez se complete la implementación de NAT Gateway, estará listo para pasar al siguiente paso.

Configuración de un firewall (opción 2)

Para comenzar con una configuración básica:

  1. Agregue una nueva subred con el nombre AzureFirewallSubnet a la red virtual.
  2. Use la nueva subred para configurar un nuevo firewall y agregar las directivas de firewall.
  3. Use la dirección IP privada del nuevo firewall como valor nextHopIpAddress en la tabla de rutas.
  4. Agregue la tabla de rutas a la subred configurada de la red virtual.

El clúster de HDInsight de todos modos necesita acceso a sus dependencias de salida. Si no se permiten estas dependencias de salida, es posible que se produzca un error en la creación del clúster. Para más información sobre cómo configurar un firewall, consulte Control del tráfico de red en Azure HDInsight.

Paso 4: Implementación de un clúster de Private Link

En este punto, ya deben estar resueltos todos los requisitos previos y ya estará listo para implementar el clúster de Private Link. En el diagrama siguiente se muestra un ejemplo de la configuración de red necesaria antes de crear el clúster. En este ejemplo, todo el tráfico de salida se dirige obligatoriamente a Azure Firewall a través de una ruta definida por el usuario. Las dependencias de salida necesarias deben permitirse en el firewall antes de la creación del clúster. En el caso de los clústeres de Enterprise Security Package, el emparejamiento de red virtual puede proporcionar la conectividad de red a Domain Services de Microsoft Entra.

Diagrama del entorno de Private Link antes de la creación del clúster.

Creación del clúster

El fragmento de código JSON siguiente incluye las dos propiedades de red que tiene que configurar en una plantilla de Azure Resource Manager para crear un clúster de HDInsight privado:

networkProperties: {
    "resourceProviderConnection": "Outbound",
    "privateLink": "Enabled"
}

Para una plantilla completa con muchas de las características de Enterprise Security de HDInsight, incluido Private Link, consulte el artículo sobre la plantilla de Enterprise Security de HDInsight.

Para crear un clúster mediante PowerShell, consulte el ejemplo.

Para crear un clúster mediante la CLI de Azure, consulte el ejemplo.

Paso 5: Creación de puntos de conexión privados

Azure crea automáticamente un servicio de Private Link para los equilibradores de carga de Ambari y SSH durante la implementación del clúster de Private Link. Una vez que se implementa el clúster, debe crear dos puntos de conexión privados en las redes virtuales del cliente: uno para Ambari y otro para el acceso SSH. A continuación, vincúlelos con los servicios de Private Link que se crearon como parte de la implementación del clúster.

Para crear los puntos de conexión privados:

  1. Abra Azure Portal y busque "Private Link".

  2. En los resultados, haga clic en el icono de Private Link.

  3. Haga clic en "Crear un punto de conexión privado" y use las siguientes configuraciones para el punto de conexión privado de Ambari:

    Config Value
    Nombre hdi-privlink-cluster
    Tipo de recurso Microsoft.Network/privateLinkServices
    Recurso gateway-* (Este valor debe coincidir con el id. de implementación de HDI del clúster, por ejemplo, gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Virtual network hdi-privlink-client-vnet
    Subnet default

    Diagrama de la pestaña básica de Private Link.Diagrama de la pestaña de recursos de Private Link.Diagrama de la pestaña red virtual de Private Link red virtual.Diagrama de la pestaña punto de conexión DNS de Private Link.Diagrama de la pestaña etiqueta de Private Link.Diagrama de la pestaña revisión de Private Link.

  4. Repita el proceso para crear otro punto de conexión privado para el acceso SSH con estas configuraciones:

    Config Value
    Nombre hdi-privlink-cluster-ssh
    Tipo de recurso Microsoft.Network/privateLinkServices
    Recurso headnode-* (Este valor debe coincidir con el id. de implementación de HDI del clúster, por ejemplo headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Virtual network hdi-privlink-client-vnet
    Subnet default

Importante

Si usa el clúster de HDInsight de KafkaRestProxy, siga estos pasos adicionales para habilitar puntos de conexión privados.

Una vez que crea los puntos de conexión privados, completa esta fase de la configuración. Si no anotó las direcciones IP privadas que se asignaron a los puntos de conexión, siga estos pasos:

  1. Abra la red virtual del cliente en Azure Portal.
  2. Haga clic en la pestaña "Puntos de conexión privados".
  3. Debería poder ver las interfaces de red de Ambari y SSH listadas.
  4. Haga clic en cada una de ellas y vaya a la hoja "Configuración de DNS" para ver la dirección IP privada.
  5. Anote estas direcciones IP, porque las necesitará para conectarse al clúster y configurar correctamente el DNS.

Paso 6: Configuración de DNS para la conexión mediante puntos de conexión privados

Para acceder a los clústeres privados, puede configurar la resolución DNS a través de zonas DNS privadas. Las entradas de Private Link creadas en la zona DNS pública azurehdinsight.net administrada por Azure son las siguientes:

<clustername>        CNAME    <clustername>.privatelink
<clustername>-int    CNAME    <clustername>-int.privatelink
<clustername>-ssh    CNAME    <clustername>-ssh.privatelink

En la imagen siguiente se muestra un ejemplo de las entradas de DNS privadas configuradas para habilitar el acceso a un clúster desde una red virtual que no está emparejada o no tiene una línea de visión directa para el clúster. Puede usar una zona privada de Azure DNS para reemplazar los nombres de dominio completos (FQDN) *.privatelink.azurehdinsight.net y resolver las direcciones IP de puntos de conexión privados en la red del cliente. La configuración es solo para <clustername>.azurehdinsight.net en el ejemplo, pero también se extiende a otros puntos de conexión de clúster.

Diagrama de la arquitectura de Private Link.

Para configurar la resolución DNS a través de una zona DNS privada:

  1. Cree una zona DNS privada de Azure. (No están incluidas todas las configuraciones, por lo que puede usar los valores predeterminados)

    Config Value
    Nombre privatelink.azurehdinsight.net

    Diagrama de la zona DNS privada.

  2. Agregue un conjunto de registros a la zona DNS privada para Ambari.

    Config Value
    Nombre YourPrivateLinkClusterName
    Tipo A: registro de alias para la dirección IPv4
    TTL 1
    Unidad de TTL Horas
    Dirección IP Dirección IP privada del punto de conexión privado para el acceso a Ambari

    Diagrama de la zona DNS privada para agregar registro.

  3. Agregue un conjunto de registros a la zona DNS privada para SSH.

    Config Value
    Nombre YourPrivateLinkClusterName-ssh
    Tipo A: registro de alias para la dirección IPv4
    TTL 1
    Unidad de TTL Horas
    Dirección IP Dirección IP privada del punto de conexión privado para el acceso a SSH

    Diagrama de la zona DNS de Private Link para agregar un registro SSH.

Importante

Si usa un clúster de HDInsight de KafkaRestProxy, siga estos pasos adicionales a fin de configurar DNS para conectarse a través del punto de conexión privado.

  1. Agregue un vínculo de red virtual para asociar la zona DNS privada con la red virtual del cliente.

    1. Abra la zona DNS privada en Azure Portal.
    2. Haga clic en la pestaña "Vínculos de red virtual".
    3. Haga clic en el botón "Agregar".
    4. Rellene los detalles: Nombre del vínculo, Suscripción y Red virtual (la red virtual de su cliente)
    5. Haga clic en Save(Guardar).

    Diagrama del vínculo de red virtual.

Paso 7: Comprobación de la conectividad del clúster

El último paso es probar la conectividad con el clúster. Como este clúster está aislado o es privado, no se puede acceder a él mediante ninguna IP pública ni FQDN. En su lugar, tenemos un par de opciones:

  • Configuración del acceso VPN a la red virtual del cliente desde la red local
  • Implementar una VM en la red virtual del cliente y acceder al clúster desde esta VM

En este ejemplo, se implementará una VM en la red virtual del cliente mediante la configuración siguiente para probar la conectividad.

Config Valor
Nombre de la máquina virtual hdi-privlink-client-vm
Imagen Windows 10 Pro, versión 2004 - Gen1
Puertos de entrada públicos Permitir los puertos seleccionados
Selección de puertos de entrada RDP (3389)
Confirmo que dispongo de una licencia válida de Windows 10… Activado
Virtual network hdi-privlink-client-vnet
Subnet default

Una vez que se implementa la VM cliente, puede probar tanto el acceso de Ambari como SSH.

Para probar el acceso a Ambari:

  1. Abra un explorador web en la máquina virtual.
  2. Vaya al FQDN habitual del clúster: https://<clustername>.azurehdinsight.net
  3. Si se carga la interfaz de usuario de Ambari, la configuración es correcta para el acceso de Ambari.

Para probar el acceso SSH:

  1. Abra un símbolo del sistema para ver una ventana del terminal.
  2. En la ventana del terminal, intente conectarse al clúster con SSH: ssh sshuser@<clustername>.azurehdinsight.net (Reemplace "sshuser" por el usuario de SSH que creó para el clúster).
  3. Si puede establecer una conexión, la configuración es correcta para el acceso SSH.

Administración de puntos de conexión privados para HDInsight

Puede usar puntos de conexión privados para los clústeres de Azure HDInsight para que los clientes de una red virtual puedan acceder de forma segura al clúster mediante Private Link. El tráfico de red entre los clientes de la red virtual y el clúster de HDInsight atraviesa la red troncal de Microsoft, lo que elimina la exposición a la red pública de Internet.

Diagrama de la experiencia de administración de puntos de conexión privados.

Un consumidor del servicio Private Link (p. ej., Azure Data Factory) se puede elegir entre dos métodos de aprobación de conexión:

  • Automático: si el consumidor del servicio tiene permisos de control de acceso basado en roles (RBAC) de Azure en el recurso de HDInsight, el consumidor puede elegir el método de aprobación automático. En este caso, cuando el recurso de HDInsight recibe la solicitud, no se requiere ninguna acción por parte del recurso y la conexión se aprueba automáticamente.
  • Manual: si el consumidor del servicio no tiene permisos de RBAC de Azure en el recurso de HDInsight, el consumidor puede elegir el método de aprobación manual. En este caso, la solicitud de conexión aparece en los recursos de HDInsight como Pendiente. El recurso de HDInsight debe aprobar manualmente la solicitud para que se puedan establecer conexiones.

Para administrar puntos de conexión privados, en la vista de clústeres de Azure Portal, vaya a la sección Redes en Seguridad y redes. Aquí puede ver todas las conexiones existentes, los estados de conexión y los detalles del punto de conexión privado.

También puede aprobar, rechazar o quitar las conexiones existentes. Al crear una conexión privada, puede especificar a qué subrecurso de HDInsight (por ejemplo, puerta de enlace o nodo principal) también desea conectarse.

En la siguiente tabla se muestran las distintas acciones del recurso de HDInsight y los estados de conexión resultantes para los puntos de conexión privados. Un recurso de HDInsight también puede cambiar el estado de conexión de la conexión de punto de conexión privado en un momento posterior sin la intervención del consumidor. La acción actualizará el estado del punto de conexión en el lado del consumidor.

Acción del proveedor de servicios Estado de punto de conexión privado del consumidor del servicio Descripción
None Pending La conexión se crea manualmente y está pendiente de aprobación por parte del propietario del recurso de Private Link.
Aprobación Aprobado La conexión se aprobó de forma automática o manual y está lista para usarse.
Reject Rechazada El propietario del recurso de Private Link rechazó la conexión.
Remove Escenario desconectado El propietario del recurso de Private Link quitó la conexión. El punto de conexión privado se vuelve informativo y debe eliminarse para la limpieza.

Pasos siguientes