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 redes virtuales no está disponible o 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.

Crear correctamente un clúster de Private Link implica muchos pasos, por lo que los describimos aquí. Siga cada uno de estos pasos para asegurarse de configurar todo correctamente.

Paso 1: Creación de los requisitos previos

Paso 2: Configuración de una subred de HDInsight

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

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

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

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

Apéndice: Administración de puntos de conexión privados para HDInsight

Paso 1: Creación de los requisitos previos

Para empezar, implemente estos recursos si todavía no los ha creado. Una vez hecho esto, debe tener al menos un grupo de recursos, dos redes virtuales y un grupo de seguridad de red para conectar a la subred en la que se implementará el clúster de HDInsight, 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

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.

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; en esos casos, puede usar el valor predeterminado).

    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 que se completa la implementación de la puerta de enlace NAT, está listo para ir al paso siguiente.

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, podría producirse 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 está 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 Azure Active Directory Domain Services.

Diagram of the Private Link environment before cluster creation.

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. Luego, 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 estas configuraciones para el punto de conexión privado de Ambari:

    Config Valor
    Nombre hdi-privlink-cluster
    Tipo de recurso Microsoft.Network/privateLinkServices
    Resource gateway-* (Debe coincidir con el identificador de implementación de HDI del clúster; por ejemplo, gateway-4eafe3a2a67e4cd88762c22a55fe4654)
    Virtual network hdi-privlink-client-vnet
    Subnet default
  4. Repita el proceso para crear otro punto de conexión privado para el acceso SSH con estas configuraciones:

    Config Valor
    Nombre hdi-privlink-cluster-ssh
    Tipo de recurso Microsoft.Network/privateLinkServices
    Resource headnode-* (Debe coincidir con el identificador de implementación de HDI del clúster; por ejemplo, headnode-4eafe3a2a67e4cd88762c22a55fe4654)
    Virtual network hdi-privlink-client-vnet
    Subnet default

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 "Información general".
  3. Debe ver las interfaces de red de Ambari y SSH que están en la lista y sus direcciones IP privadas.
  4. 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.

Diagram of the Private Link architecture.

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; en esos casos, puede usar el valor predeterminado).

    Config Valor
    Nombre privatelink.azurehdinsight.net
  2. Agregue un conjunto de registros a la zona DNS privada para Ambari.

    Config Valor
    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
  3. Agregue un conjunto de registros a la zona DNS privada para SSH.

    Config Valor
    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
  4. 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.
    5. Haga clic en Save(Guardar).

Paso 6: 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 o FQDN. En su lugar, tenemos un par de opciones:

  • Configurar el 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, implementaremos una máquina virtual en la red virtual del cliente mediante con 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.

Diagram of the private endpoint management experience.

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