Multiinquilino y Azure Private Link

Azure Private Link proporciona direcciones IP privadas para los servicios de la plataforma Azure y para sus propias aplicaciones hospedadas en máquinas virtuales de Azure. Puede usar Private Link para habilitar la conectividad privada desde los entornos de Azure de los inquilinos. Los inquilinos también pueden usar Private Link para acceder a la solución desde sus entornos locales, cuando están conectados a través de puertas de enlace de red privada virtual (VPN Gateway) o ExpressRoute.

Muchos proveedores de SaaS de gran tamaño (como Snowflake, Confluent Cloud y MongoDB Atlas) usan Azure Private Link.

En este artículo, se revisa cómo puede configurar Private Link para una solución multiinquilino hospedada en Azure.

Consideraciones clave

Espacios de direcciones IP superpuestos

Private Link proporciona funcionalidades eficaces para soluciones multiinquilino, donde los inquilinos pueden acceder al servicio a través de espacios de direcciones privadas.

Los distintos inquilinos suelen usar los mismos espacios de direcciones IP privadas o espacios superpuestos. Por ejemplo, la solución multiinquilino puede usar el espacio de direcciones IP de 10.1.0.0/16. Supongamos que el inquilino A usa su propia red local con el mismo espacio de direcciones IP, y que el inquilino B también usa el mismo espacio de direcciones IP. No se pueden conectar ni emparejar directamente las redes porque los intervalos de direcciones IP se superponen.

Cuando se usa Private Link para habilitar la conectividad de cada inquilino a la solución multiinquilino, el tráfico de cada inquilino se aplica automáticamente a la traducción de direcciones de red (NAT). Cada inquilino puede usar una dirección IP privada dentro de su propia red respectiva, y el tráfico fluye a la solución multiinquilino de forma transparente. Private Link realiza operaciones de NAT en el tráfico, incluso cuando los inquilinos y el proveedor de servicios usan intervalos de direcciones IP superpuestos:

Diagram showing connectivity between two tenants and a multitenant service, all of which use the same IP address space.

Cuando el tráfico llega a la solución multiinquilino, ya se ha traducido. Esto significa que el tráfico parece originarse en el propio espacio de direcciones IP de red virtual del servicio multiinquilino. Private Link proporciona la característica Protocolo de proxy TCP v2, que permite a un servicio multiinquilino conocer el inquilino que envió la solicitud e incluso la dirección IP original de la red de origen.

Selección del servicio

Al usar Private Link, es importante tener en cuenta el servicio al que quiere permitir la conectividad entrante.

El servicio Azure Private Link se usa con máquinas virtuales detrás de un equilibrador de carga estándar.

También puede usar Private Link con otros servicios de Azure. Estos servicios incluyen plataformas de hospedaje de aplicaciones como Azure App Service. También incluyen instancias de Azure Application Gateway o Azure API Management, que son puertas de enlace de red y API.

La plataforma de aplicaciones que use determina muchos aspectos de la configuración de Private Link y los límites que se aplican. Además, algunos servicios no admiten Private Link para el tráfico entrante.

Límites

Tenga en cuenta el número de puntos de conexión privados que puede crear, en función de la arquitectura de la solución. Si usa una plataforma como servicio (PaaS) en la aplicación, es importante tener en cuenta el número máximo de puntos de conexión privados que puede admitir un único recurso. Si ejecuta máquinas virtuales, puede asociar una instancia de servicio Private Link a un equilibrador de carga estándar (SLB). Por lo general, en esta configuración puede conectar un mayor número de puntos de conexión privados, pero se siguen aplicando límites. Estos límites pueden determinar cuántos inquilinos se pueden conectar a los recursos mediante Private Link. Revise los límites, cuotas y restricciones de suscripción y servicio de Azure para comprender los límites del número de puntos de conexión y conexiones.

Además, algunos servicios requieren una configuración de red especializada para usar Private Link. Por ejemplo, si usa Private Link con Azure Application Gateway, debe aprovisionar una subred dedicada, además de la subred estándar para el recurso de Application Gateway.

Pruebe cuidadosamente la solución, incluida la configuración de implementación y diagnóstico, con la configuración de Private Link habilitada. Algunos servicios de Azure bloquean el tráfico público de Internet, cuando se habilita un punto de conexión privado, por lo que es posible que tenga que cambiar los procesos de implementación y administración.

Puede implementar la solución para que sea accesible desde Internet y que también esté disponible a través de puntos de conexión privados. Tenga en cuenta la topología de red general y las rutas de acceso que sigue el tráfico de cada inquilino.

Cuando la solución se basa en máquinas virtuales que están detrás de un equilibrador de carga estándar, puede exponer el punto de conexión a través del servicio Private Link. En este caso, es probable que un firewall de aplicaciones web y el enrutamiento de aplicaciones ya formen parte de la carga de trabajo basada en máquinas virtuales.

Muchos servicios PaaS de Azure admiten Private Link para la conectividad entrante, incluso en distintas suscripciones de Azure e inquilinos de Microsoft Entra. Puede usar las funcionalidades de Private Link del servicio para exponer el punto de conexión.

Al usar otros servicios accesibles desde Internet, como Azure Front Door, es importante tener en cuenta si admiten Private Link para el tráfico entrante. Si no lo hacen, tenga en cuenta cómo fluye el tráfico a través de cada ruta de acceso a la solución.

Por ejemplo, supongamos que crea una aplicación accesible desde Internet que se ejecuta en un conjunto de escalado de máquinas virtuales. Use Azure Front Door, incluido su firewall de aplicaciones web (WAF), para la aceleración del tráfico y la seguridad, y tendrá que configurar Front Door para enviar el tráfico a través de un punto de conexión privado al servicio de back-end (origen). El inquilino A se conecta a la solución mediante un punto de conexión público y el inquilino B se conecta mediante un punto de conexión privado. Dado que Front Door no admite Private Link para las conexiones entrantes, el tráfico del inquilino B omite Front Door y su WAF:

Diagram showing requests coming through Azure Front Door, and also through a private endpoint, which bypasses Front Door.

Modelos de aislamiento

Private Link está diseñado para admitir escenarios en los que varios clientes independientes pueden usar un único nivel de aplicación, como los inquilinos. Cuando se tiene en cuenta el aislamiento de Private Link, la principal preocupación es el número de recursos que necesita implementar para satisfacer sus requisitos. Los modelos de aislamiento de inquilino que puede usar para Private Link dependen del servicio que use.

Si usa el servicio Private Link con máquinas virtuales detrás de un equilibrador de carga estándar, hay varios modelos de aislamiento que puede tener en cuenta.

Consideración Servicio Private Link y equilibrador de carga compartidos Servicio Private Link y equilibrador de carga dedicados Servicio Private Link dedicado y equilibrador de carga compartido
Complejidad de la implementación Bajo Media-alta, dependiendo del número de inquilinos Media-alta, dependiendo del número de inquilinos
Complejidad operativa Bajo Media-alta, dependiendo del número de recursos Media-alta, dependiendo del número de recursos
Límites que se deben tener en cuenta Número de puntos de conexión privados en el mismo servicio Private Link Número de servicios de Private Link por suscripción Número de servicios de Private Link por equilibrador de carga estándar
Escenario de ejemplo Solución multiinquilino grande con una capa de aplicación compartida Unidades de escalado de implementación independientes para cada inquilino Capa de aplicación compartida en una sola unidad de escalado, con un gran número de inquilinos

En los tres modelos, el nivel de aislamiento y rendimiento de los datos depende de los demás elementos de la solución y la implementación del servicio Private Link no afecta materialmente a estos factores.

Es posible que considere la posibilidad de implementar un servicio Private Link compartido, que está conectado a un equilibrador de carga estándar. Cada uno de los inquilinos puede crear un punto de conexión privado y usarlo para conectarse a la solución.

Una única instancia de servicio Private Link admite un gran número de puntos de conexión privados. Si agota el límite, puede implementar más instancias de servicio Private Link, aunque también hay límites en el número de servicios de Private Link que puede implementar en un único equilibrador de carga. Si espera acercarse a estos límites, considere la posibilidad de usar un enfoque basado en unidades de escalado de implementación e implemente equilibradores de carga compartidos e instancias de servicio Private Link en cada unidad de escalado.

Puede implementar un servicio Private Link y un equilibrador de carga dedicados en cada inquilino. Este enfoque es útil cuando tiene un conjunto dedicado de máquinas virtuales para cada inquilino, como cuando los inquilinos tienen requisitos de cumplimiento estrictos.

También puede implementar instancias dedicadas del servicio Private Link en cada inquilino, con un equilibrador de carga estándar compartido. Sin embargo, es poco probable que este modelo proporcione muchas ventajas. Además, dado que hay un límite en el número de servicios de Private Link que puede implementar en un único equilibrador de carga estándar, es probable que este modelo no se escale más allá de una solución multiinquilino pequeña.

Normalmente, puede implementar varios servicios de Private Link compartidos. Este enfoque permite expandir el número de puntos de conexión privados que la solución puede admitir en un equilibrador de carga compartido.

Modelos de aislamiento para servicios PaaS de Azure con puntos de conexión privados

Al implementar servicios de plataforma como servicio (PaaS) de Azure, si quiere permitir que los inquilinos accedan a esos servicios con puntos de conexión privados, debe tener en cuenta las funcionalidades y restricciones del servicio específico. Además, debe tener en cuenta si los recursos de nivel de aplicación están dedicados a un inquilino específico o si se comparten entre inquilinos.

Si implementa un conjunto dedicado de recursos de nivel de aplicación para cada inquilino, es probable que pueda implementar un punto de conexión privado para que ese inquilino lo use para acceder a sus recursos. Es poco probable que agote los límites de servicio relacionados con Private Link, ya que cada inquilino tiene sus propios recursos dedicados.

Al compartir recursos de nivel de aplicación entre inquilinos, puede considerar la posibilidad de implementar un punto de conexión privado para cada inquilino. Hay límites en el número de puntos de conexión privados que se pueden asociar a un único recurso y estos límites son diferentes para cada servicio.

Private Link tiene varias características que son útiles en un entorno de multiinquilino. Sin embargo, las características específicas disponibles dependen del servicio que use. El servicio fundamental de Azure Private Link, para máquinas virtuales y equilibradores de carga, admite todas las características que se describen a continuación. Otros servicios con compatibilidad de Private Link pueden proporcionar solo un subconjunto de estas características.

Alias de servicio

Cuando un inquilino configura el acceso al servicio mediante Private Link, deben ser capaces de identificar el servicio para que Azure pueda establecer la conexión.

El servicio Private Link y otros servicios de Azure compatibles con Private Link, le permiten configurar un alias que puede proporcionar a los inquilinos. Al usar un alias, evita revelar los identificadores de suscripción de Azure y los nombres de grupo de recursos.

Visibilidad del servicio

El servicio Private Link le permite controlar la visibilidad del punto de conexión privado. Puede permitir que todos los clientes de Azure se conecten al servicio, si conocen su alias o identificador de recurso. Como alternativa, puede restringir el acceso solo a un conjunto de clientes conocidos de Azure.

También puede especificar un número limitado de identificadores de suscripción de Azure que se hayan aprobado previamente y que se puedan conectar al punto de conexión privado. Si decide usar este enfoque, tenga en cuenta cómo recopilará y autorizará los identificadores de suscripción. Por ejemplo, puede proporcionar una interfaz de usuario de administración en la aplicación para recopilar el identificador de suscripción de un inquilino. A continuación, puede volver a configurar dinámicamente la instancia de servicio Private Link para aprobar previamente ese identificador de suscripción para las conexiones.

Aprobaciones de conexión

Una vez solicitada una conexión entre un cliente (como un inquilino) y un punto de conexión privado, Private Link requiere que se apruebe la conexión. Hasta que se apruebe la conexión, el tráfico no puede fluir a través de la conexión del punto de conexión privado.

El servicio Private Link admite varios tipos de flujos de aprobación, entre los que se incluyen:

  • Aprobación manual, donde el equipo aprueba explícitamente cada conexión. Este enfoque es viable cuando solo tiene algunos inquilinos que usan el servicio a través de Private Link.
  • Aprobación basada en API, donde el servicio Private Link trata la conexión como una operación para solicitar una aprobación manual, y la aplicación usa la API Actualización de la conexión del punto de conexión privado, la CLI de Azure o Azure PowerShell para aprobar una conexión. Este enfoque puede ser útil cuando existe una lista de inquilinos que tienen autorización para usar puntos de conexión privados.
  • Aprobación automática, donde el propio servicio Private Link mantiene la lista de identificadores de suscripción que deben tener sus conexiones aprobadas automáticamente.

Para obtener más información, consulte Acceso al control de servicio.

Protocolo proxy v2

Cuando se usa el servicio Private Link, de forma predeterminada la aplicación solo tiene visibilidad de una dirección IP que haya pasado a través de la traducción de direcciones de red (NAT). Este comportamiento significa que el tráfico parece fluir desde su propia red virtual.

Private Link le permite obtener acceso a la dirección IP del cliente original, en la red virtual del inquilino. Esta característica usa el protocolo de proxy TCP v2.

Por ejemplo, supongamos que los administradores de los inquilinos necesitan agregar restricciones de acceso basadas en direcciones IP; por ejemplo, el host 10.0.0.10 puede acceder al servicio, pero el host 10.0.0.20 no puede. Al usar el Protocolo proxy v2, puede permitir que los inquilinos configuren estos tipos de restricciones de acceso en la aplicación. Sin embargo, el código de la aplicación debe inspeccionar la dirección IP original del cliente y aplicar las restricciones.

  • Explicación y demostraciones del servicio Azure Private Link desde las perspectivas del proveedor (ISV de SaaS) y del consumidor: vídeo que examina la característica de servicio Azure Private Link que permite a los proveedores de servicios multiinquilino (como los proveedores de software independientes que crean productos SaaS). Esta solución permite a los consumidores acceder al servicio del proveedor mediante direcciones IP privadas desde las propias redes virtuales de Azure del consumidor.
  • Protocolo de proxy TCP v2 con el servicio Azure Private Link: análisis detallado: vídeo que presenta un análisis detallado del protocolo de proxy TCP v2, que es una característica avanzada del servicio Azure Private Link. Resulta útil en escenarios multiinquilino y SaaS. En el vídeo, se muestra cómo habilitar el protocolo de proxy v2 en el servicio Azure Private Link. También muestra cómo configurar un servicio NGINX para leer la dirección IP privada de origen del cliente original (en lugar de la dirección IP de NAT), para acceder al servicio mediante el punto de conexión privado.
  • Uso de NGINX Plus para descodificar el elemento linkIdentifier de TLV del protocolo de proxy del servicio Azure Private Link: vídeo que examina cómo usar NGINX Plus para obtener el elemento TLV del protocolo de proxy TCP v2 del servicio Azure Private Link. En el vídeo también se muestra cómo extraer y descodificar el valor numérico de linkIdentifier (también llamado LINKID) de la conexión de punto de conexión privado. Esta solución es útil para proveedores multiinquilino que necesitan identificar el inquilino de consumidor específico desde el que se realizó la conexión.
  • Patrón de conectividad privada de SaaS: solución de ejemplo que ilustra un enfoque para automatizar la aprobación de conexiones de punto de conexión privado mediante Azure Managed Applications.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Otro colaborador:

  • Sumeet Mittal | Director de productos principal, Azure Private Link

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes

Revise los enfoques de red para la arquitectura multiinquilino.