Uso de puntos de conexión privados para aplicaciones de App Service
Nota:
A partir del 1 de junio de 2024, todas las aplicaciones de App Service recién creadas tendrán la opción de generar un nombre de host predeterminado único mediante la convención de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Los nombres de aplicación existentes permanecerán sin cambios.
Ejemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para más información, consulte Nombre de host predeterminado único para el recurso 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 usa 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 de la red virtual quitando todas las reglas del grupo de seguridad de red (NSG) donde el destino es etiquetar 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.
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 manera predeterminada <app-name>.azurewebsites.net
. Al usar nombre de host predeterminado único el nombre de la aplicación tiene el formato <app-name>-<random-hash>.<region>.azurewebsites.net
. En los siguientes ejemplos mywebapp también podría representar el nombre de host único regionalizado completo.
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 mywebapp.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.
Para la consola de Kudu, o la API de REST de Kudu (implementación con agentes autohospedados de Azure DevOps Services, por ejemplo) debe crear dos registros que apunten a la IP del punto de conexión privado en su zona privada de Azure DNS o en su 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 punto de conexión de servicio habilitado
Microsoft.Web
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
- Para implementar un punto de conexión privado para la aplicación mediante el portal, consulte Cómo conectarse de forma privada a una aplicación con Azure Portal.
- Para implementar un punto de conexión privado para la aplicación con la CLI de Azure, consulte Cómo conectarse de forma privada a una aplicación con la CLI de Azure.
- Para implementar un punto de conexión privado para la aplicación mediante PowerShell, consulte Cómo conectarse de forma privada a una aplicación con PowerShell.
- Para implementar un punto de conexión privado para la aplicación con la plantilla de Azure, consulte Cómo conectarse de forma privada a una aplicación con la plantilla de Azure.
- Ejemplo de un extremo a otro, cómo conectar una aplicación de front-end a una aplicación de back-end segura con integración de red virtual y un punto de conexión privado mediante la plantilla de ARM, consulte este inicio rápido
- Ejemplo de extremo a extremo, cómo conectar una aplicación de frontend a una aplicación de backend segura con integración de red virtual y punto de conexión privado con terraform, vea este ejemplo.