Utilisation de points de terminaison privés pour les applications App Service
Remarque
Depuis le 1er juin 2024, toutes les applications App Service nouvellement créées ont la possibilité de générer un nom d’hôte par défaut unique en utilisant la convention d’affectation de noms <app-name>-<random-hash>.<region>.azurewebsites.net
. Les noms d’application existants restent inchangés.
Exemple : myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Pour plus d’informations, reportez-vous à Nom d’hôte par défaut unique pour les ressources App Service.
Important
Le point de terminaison privé est disponible pour les applications Windows et Linux, conteneurisées ou non, hébergées sur ces plans App Service : De base, Standard, PremiumV2, PremiumV3, IsolatedV2, Functions Premium (parfois appelé plan Elastic Premium).
Vous pouvez utiliser un point de terminaison privé pour vos applications App Service afin de permettre aux clients situés dans votre réseau privé d’accéder de façon sécurisée à l’application sur Azure Private Link. Le point de terminaison privé utilise une adresse IP de l’espace d’adressage de votre réseau virtuel Azure. Le trafic réseau entre un client de votre réseau privé et l’application traverse le réseau virtuel et une liaison privée sur le réseau principal de Microsoft, ce qui évite son exposition sur l’Internet public.
L’utilisation d’un point de terminaison privé pour votre application vous permet de :
- Sécuriser votre application en configurant le point de terminaison privé et désactiver l’accès au réseau public pour éviter l’exposition publique.
- Vous connecter de manière sécurisée à votre application à partir de réseaux locaux qui se connectent au réseau virtuel en utilisant un VPN ou un peering privé ExpressRoute.
- Évitez tout exfiltration de données à partir de votre réseau virtuel.
Vue d'ensemble conceptuelle
Un point de terminaison privé est une interface réseau spéciale pour votre application App Service dans un sous-réseau de votre réseau virtuel. Quand vous créez un point de terminaison privé pour votre application, il fournit une connectivité sécurisée entre les clients sur votre réseau privé et votre application. Le point de terminaison privé a une adresse IP attribuée dans la plage d’adresses IP de votre réseau virtuel. La connexion entre le point de terminaison privé et l’application utilise une liaison privée sécurisée. Le point de terminaison privé est utilisé uniquement pour le trafic entrant de votre application. Le trafic sortant n’utilise pas ce point de terminaison privé. Vous pouvez injecter du trafic sortant vers votre réseau dans un autre sous-réseau avec la fonctionnalité d’intégration au réseau virtuel.
Chaque emplacement d’une application est configuré séparément. Vous pouvez connecter jusqu’à 100 points de terminaison privés par emplacement. Vous ne pouvez pas partager un point de terminaison privé entre emplacements. Le nom de sous-ressource d’un emplacement est sites-<slot-name>
.
Le sous-réseau dans lequel vous connectez le point de terminaison privé peut contenir d’autres ressources, vous n’avez pas besoin d’un sous-réseau vide dédié. Vous pouvez également déployer un point de terminaison privé dans une région différente de celle de votre application.
Notes
La fonctionnalité d’intégration au réseau virtuel ne peut pas utiliser le même sous-réseau que le point de terminaison privé, il s’agit d’une limitation de la fonctionnalité d’intégration au réseau virtuel.
Du point de vue de la sécurité :
- Un point de terminaison privé et un accès public peuvent coexister sur une application. Pour plus d’informations, consultez Vue d’ensemble des restrictions d’accès
- Quand vous activez des points de terminaison privés pour votre application, vérifiez que l’accès au réseau public est désactivé pour garantir l’isolement.
- Vous pouvez activer plusieurs points de terminaison privés dans d’autres réseaux virtuels et sous-réseaux, y compris dans des réseaux virtuels d’autres régions.
- Les règles de restrictions d’accès de votre application ne sont pas évaluées pour le trafic qui passe par le point de terminaison privé.
- Vous pouvez éliminer le risque d’exfiltration de données à partir du réseau virtuel en supprimant toutes les règles de groupe de sécurité réseau (NSG) dans lesquelles la destination est étiquetée Internet ou Services Azure.
Les journaux HTTP web de votre application contiennent l’IP source du client. Cette fonctionnalité est implémentée avec le protocole de proxy TCP, en transférant la propriété IP du client à l’application. Pour plus d’informations, consultez Obtention d’informations de connexion à l’aide du proxy TCP v2.
DNS
Si vous utilisez un point de terminaison privé pour vos applications App Service, l’URL demandée doit correspondre au nom de votre application. Par défaut, <app-name>.azurewebsites.net
. Lorsque vous utilisez un nom d’hôte par défaut unique, le nom de votre application a le format <app-name>-<random-hash>.<region>.azurewebsites.net
. Dans les exemples ci-dessous mywebapp peut également représenter le nom d’hôte unique régionalisé complet.
Par défaut, sans point de terminaison privé, le nom public de votre application web est un nom canonique référençant le cluster. Par exemple, la résolution de noms est :
Nom | Type | Valeur |
---|---|---|
mywebapp.azurewebsites.net | CNAME | clustername.azurewebsites.windows.net |
clustername.azurewebsites.windows.net | CNAME | cloudservicename.cloudapp.net |
cloudservicename.cloudapp.net | Un | 40.122.110.154 |
Quand vous déployez un point de terminaison privé, nous mettons à jour l’entrée DNS pour qu’elle pointe vers le nom canonique mywebapp.privatelink.azurewebsites.net. Par exemple, la résolution de noms est :
Nom | Type | Valeur | Remarque |
---|---|---|---|
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 | Un | 40.122.110.154 | <--Cette IP publique n’est pas votre point de terminaison privé, vous recevez une erreur 403 |
Vous devez configurer un serveur DNS privé ou une zone privée Azure DNS. À des fins de tests, vous pouvez modifier l’entrée d’hôte de votre ordinateur de test. La zone DNS à créer est celle-ci : privatelink.azurewebsites.net. Inscrivez votre application avec l’enregistrement A et l’IP du point de terminaison privé. Par exemple, la résolution de noms est :
Nom | Type | Valeur | Remarque |
---|---|---|---|
mywebapp.azurewebsites.net | CNAME | mywebapp.privatelink.azurewebsites.net | <--Azure crée cette entrée CNAME dans le DNS public Azure pour que l’adresse de l’application pointe vers l’adresse du point de terminaison privé |
mywebapp.privatelink.azurewebsites.net | Un | 10.10.10.8 | <--Vous gérez cette entrée dans votre système DNS pour qu’elle pointe vers l’adresse IP de votre point de terminaison privé |
Après cette configuration DNS, vous pouvez accéder à votre application de manière privée avec le nom par défaut mywebapp.azurewebsites.net. Vous devez utiliser ce nom, car le certificat par défaut est émis pour *.azurewebsites.net.
Si vous devez utiliser un nom DNS personnalisé, vous devez ajouter le nom personnalisé dans votre application et vous devez valider le nom personnalisé comme n’importe quel nom personnalisé, à l’aide de la résolution DNS publique. Pour plus d’informations, consultez la rubrique relative à la validation DNS personnalisée.
Pour la console Kudu ou l’API REST Kudu (déploiement avec les agents autohébergés Azure DevOps Services, par exemple), vous devez créer deux enregistrements pointant vers l’IP du point de terminaison privé dans votre zone privée Azure DNS ou votre serveur DNS personnalisé. La première est pour votre application, la deuxième pour le SCM de votre application.
Nom | Type | Valeur |
---|---|---|
mywebapp.privatelink.azurewebsites.net | Un | PrivateEndpointIP |
mywebapp.scm.privatelink.azurewebsites.net | Un | PrivateEndpointIP |
Considération spéciale sur App Service Environment v3
Afin d’activer le point de terminaison privé pour les applications hébergées dans un plan IsolatedV2 (App Service Environment v3), vous devez activer la prise en charge des points de terminaison privés au niveau de l’environnement App Service. Vous pouvez activer la fonctionnalité à l’aide du Portail Microsoft Azure dans le volet de configuration App Service Environment, ou via l’interface CLI suivante :
az appservice ase update --name myasename --allow-new-private-endpoint-connections true
Exigences spécifiques
Si le réseau virtuel se trouve dans un abonnement différent de celui de l’application, vous devez vous assurer que l’abonnement avec le réseau virtuel est inscrit pour le fournisseur de ressources Microsoft.Web
. Vous pouvez inscrire explicitement le fournisseur en suivant cette documentation, mais vous inscrivez aussi le fournisseur automatiquement lorsque vous créez la première application web dans un abonnement.
Tarification
Pour plus d’informations sur les tarifs, consultez Tarification Liaison privée Azure.
Limites
- Quand vous utilisez une fonction Azure dans un plan Elastic Premium avec un point de terminaison privé, pour exécuter la fonction dans le portail Azure, vous devez avoir un accès direct au réseau. Sinon, vous recevez une erreur HTTP 403. En d’autres termes, votre navigateur doit pouvoir accéder au point de terminaison privé pour exécuter la fonction à partir du portail Azure.
- Vous pouvez connecter jusqu’à 100 points de terminaison privés à une application donnée.
- La fonctionnalité de débogage à distance n’est pas disponible via le point de terminaison privé. Nous vous recommandons de déployer le code sur un emplacement et de le déboguer à distance à cet endroit.
- L’accès FTP est fourni par le biais de l’IP publique entrante. Le point de terminaison privé ne prend pas en charge l’accès FTP à l’application.
- Le protocole SSL basé sur IP n’est pas pris en charge avec les points de terminaison privés.
- Les applications que vous configurez avec des points de terminaison privés ne peuvent pas recevoir le trafic public provenant de sous-réseaux avec le point de terminaison de service
Microsoft.Web
activé et ne peuvent pas utiliser les règles de restriction d’accès basées sur les points de terminaison de service. - Le nommage de point de terminaison privé doit suivre les règles définies pour les ressources de type
Microsoft.Network/privateEndpoints
. Les règles de nommage sont disponibles ici.
Nous améliorons régulièrement la fonctionnalité Azure Private Link et le point de terminaison privé. Pour obtenir des informations à jour sur les limitations, consultez cet article.
Étapes suivantes
- Pour déployer un point de terminaison privé pour votre application en utilisant le portail, consultez Comment se connecter de manière privée à une application avec le portail Azure
- Pour déployer un point de terminaison privé pour votre application en utilisant Azure CLI, consultez Comment se connecter de manière privée à une application avec Azure CLI
- Pour déployer un point de terminaison privé pour votre application en utilisant PowerShell, consultez Comment se connecter de manière privée à une application avec PowerShell
- Pour déployer un point de terminaison privé pour votre application en utilisant un modèle Azure, consultez Comment se connecter de manière privée à une application avec un modèle Azure
- Pour obtenir un exemple de bout en bout montrant comment connecter une application de front-end à une application de back-end sécurisée en utilisant l’intégration au réseau virtuel et un point de terminaison privé avec un modèle ARM, consultez ce démarrage rapide
- Pour obtenir un exemple de bout en bout montrant comment connecter une application de front-end à une application de back-end sécurisée en utilisant l’intégration au réseau virtuel et un point de terminaison privé avec Terraform, consultez cet exemple