Uso de puntos de conexión privados para aplicaciones de App Service

Importante

El punto de conexión privado está disponible para aplicaciones de Windows y Linux, en contenedores o no, hospedado en los planes de App Service siguientes: Básico, Estándar, PremiumV2, PremiumV3, AisladoV2 y Functions Premium (también referido como plan Elástico Premium).

Puede usar el punto de conexión privado para las aplicaciones de App Service a fin de permitir que los clientes ubicados en la red privada accedan de forma segura a la aplicación a través de Azure Private Link. El punto de conexión privado usa una dirección IP del espacio de direcciones de la red virtual de Azure. El tráfico de red entre un cliente en la red privada y la aplicación atraviesa la red virtual y un servicio Private Link en la red troncal de Microsoft, lo que elimina la exposición desde la red pública de Internet.

El uso de un punto de conexión privado para la aplicación le permite:

  • Proteja la aplicación mediante la configuración del punto de conexión privado y deshabilite el acceso a la red pública para eliminar la exposición pública.
  • Conéctese de forma segura a su aplicación desde redes locales que se conectan a la red virtual usando una VPN o un emparejamiento privado de ExpressRoute.
  • Evite la filtración de datos de la red virtual.

Información general conceptual

Un punto de conexión privado es una interfaz de red (NIC) especial para la aplicación de App Service en una subred dentro de la red virtual. Cuando se crea un punto de conexión privado para la aplicación, se proporciona una conectividad segura entre los clientes de la red privada y la aplicación. Al punto de conexión privado se le asigna una dirección IP del intervalo de direcciones IP de su red virtual. La conexión entre el punto de conexión privado y la aplicación usa una instancia de Private Link segura. El punto de conexión privado solo se usa para el tráfico entrante a la aplicación. El tráfico saliente no usará este punto de conexión privado. Puede insertar tráfico saliente en la red de una subred diferente mediante la característica de integración de red virtual.

Cada ranura de una aplicación se configura por separado. Se pueden conectar hasta 100 puntos de conexión privados por ranura. No se puede compartir un punto de conexión privado entre ranuras. El nombre del subrecurso de una ranura es sites-<slot-name>.

La subred en la que se conecta el punto de conexión privado puede tener otros recursos, no necesita una subred vacía dedicada. También puede implementar el punto de conexión privado en una región diferente de la aplicación.

Nota

La característica de integración de red virtual no puede usar la misma subred que el punto de conexión privado; esta es una limitación de la característica de integración de red virtual.

Desde la perspectiva de seguridad:

  • El punto de conexión privado y el acceso público pueden coexistir en una aplicación. Para más información, consulte Introducción a las restricciones de acceso.
  • Al habilitar puntos de conexión privados en la aplicación, asegúrese de que el acceso a la red pública está deshabilitado para garantizar el aislamiento.
  • Puede habilitar varios puntos de conexión privados en otras redes virtuales y subredes, incluidas las redes virtuales de otras regiones.
  • Las reglas de restricciones de acceso de la aplicación no se evalúan para el tráfico a través del punto de conexión privado.
  • Puede eliminar el riesgo de filtración de datos desde la red virtual mediante la eliminación de todas las reglas de grupo de seguridad de red en las que el destino es la etiqueta Internet o servicios de Azure.

En los registros HTTP web de la aplicación, se encuentra la dirección IP de origen del cliente. Esta característica se implementa mediante el protocolo proxy TCP, reenviando la propiedad de la dirección IP de cliente a la aplicación. Para obtener más información, consulte Cómo obtener información de conexión mediante el proxy TCP V2.

Información general global del punto de conexión privado de la aplicación de App Service

DNS

Cuando se usa un punto de conexión privado para aplicaciones de App Service, la dirección URL solicitada debe coincidir con el nombre de la aplicación. De forma predeterminada, mywebappname.azurewebsites.net.

De forma predeterminada, sin el punto de conexión privado, el nombre público de la aplicación web es un nombre canónico para el clúster. Por ejemplo, la resolución de nombres es:

Nombre Tipo Value
mywebapp.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154

Cuando se implementa un punto de conexión privado, se actualiza la entrada DNS para apuntar al nombre canónico mywebapp.privatelink.azurewebsites.net. Por ejemplo, la resolución de nombres es:

Nombre Tipo Value Comentario
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net
mywebapp.privatelink.azurewebsites.net CNAME clustername.azurewebsites.windows.net
clustername.azurewebsites.windows.net CNAME cloudservicename.cloudapp.net
cloudservicename.cloudapp.net A 40.122.110.154 <: esta dirección IP pública no es su punto de conexión privado; recibirá un error 403

Debe configurar un servidor DNS privado o una zona privada de Azure DNS. Para las pruebas, puede modificar la entrada de host de la máquina de pruebas. La zona DNS que debe crear es: privatelink.azurewebsites.net. Realice el registro de la aplicación con un registro A y la dirección IP del punto de conexión privado. Por ejemplo, la resolución de nombres es:

Nombre Tipo Value Comentario
mywebapp.azurewebsites.net CNAME mywebapp.privatelink.azurewebsites.net <--Azure crea esta entrada CNAME en DNS público de Azure para que apunte la dirección de la aplicación a la dirección del punto de conexión privado
mywebapp.privatelink.azurewebsites.net A 10.10.10.8 <--Esta entrada se administra en el sistema DNS para apuntar a la dirección IP del punto de conexión privado

Después de esta configuración de DNS, puede acceder a la aplicación de forma privada con el nombre predeterminado mywebappname.azurewebsites.net. Debe usar este nombre, ya que el certificado predeterminado se emite para *.azurewebsites.net.

Si necesita usar un nombre DNS personalizado, debe agregar el nombre personalizado en la aplicación y debe validar el nombre personalizado, como cualquier nombre personalizado, mediante la resolución DNS pública. Para obtener más información, vea Validación de un DNS personalizado.

En el caso de la consola de Kudu o la API de REST de Kudu (implementación con agentes autohospedados de Azure DevOps, por ejemplo), debe crear dos registros que apunten a la dirección IP del punto de conexión privado en la zona privada de Azure DNS o en el servidor DNS personalizado. La primera es para la aplicación y la segunda es para el SCM de la aplicación.

Nombre Tipo Value
mywebapp.privatelink.azurewebsites.net A PrivateEndpointIP
mywebapp.scm.privatelink.azurewebsites.net A PrivateEndpointIP

Consideración especial para App Service Environment v3

Para habilitar el punto de conexión privado para las aplicaciones hospedadas en un plan IsolatedV2 (App Service Environment v3), debe habilitar la compatibilidad con puntos de conexión privados en el nivel de App Service Environment. Puede activar la característica en Azure Portal en el panel de configuración de App Service Environment o a través de la siguiente CLI:

az appservice ase update --name myasename --allow-new-private-endpoint-connections true

Requisitos específicos

Si la red virtual se encuentra en una suscripción diferente que la aplicación, debe asegurarse de que la suscripción con la red virtual esté registrada para el proveedor de recursos Microsoft.Web. Puede registrar explícitamente el proveedor siguiendo esta documentación, pero también se registrará automáticamente al crear la primera aplicación web en una suscripción.

Precios

Para más información sobre los precios, consulte Precios de Azure Private Link.

Limitaciones

  • Al usar Azure Function en el plan Elástico Premium con un punto de conexión privado, para ejecutar la función en Azure Portal, debe tener acceso directo a la red o se producirá un error HTTP 403. En otras palabras, el explorador debe ser capaz de contactar con el punto de conexión privado para ejecutar la función desde Azure Portal.
  • Puede conectar hasta 100 puntos de conexión privados a una aplicación en particular.
  • La funcionalidad de depuración remota no está disponible a través del punto de conexión privado. Le recomendamos implementar el código en una ranura y depurarlo de forma remota en la misma.
  • El acceso FTP se proporciona a través de la dirección IP pública de entrada. El punto de conexión privado no admite el acceso FTP a la aplicación.
  • El SSL basado en la IP no se admite con puntos de conexión privados.
  • Las aplicaciones que configure con puntos de conexión privados no pueden recibir tráfico público procedente de subredes con el punto de conexión de servicio Microsoft.Web habilitado y no pueden usar reglas de restricción de acceso basadas en puntos de conexión de servicio.
  • La nomenclatura del punto de conexión privado debe seguir las reglas definidas para los recursos de tipo Microsoft.Network/privateEndpoints. Las reglas de nomenclatura se pueden encontrar aquí.

Estamos mejorando la característica de Azure Private Link y el punto de conexión privado periódicamente. Consulte este artículo para información actualizada sobre las limitaciones.

Pasos siguientes