Accès sécurisé multilocataire aux applications web et applications de fonction Azure avec des points de terminaison privés
Comme la plupart des services Azure PaaS (platform as a service), les applications web et applications de fonction Azure sont accessibles à partir d’Internet par défaut. Pour restreindre le trafic entrant vers une application web ou une application de fonction, Azure vous propose deux options intégrées : les restrictions d’accès et les points de terminaison privés.
Avec les restrictions d’accès, vous pouvez configurer le pare-feu interne de la ressource en définissant des listes de règles d’autorisation et de refus. Vous pouvez définir les restrictions sur la base d’adresses IP (IPv4 et IPv6) ou d’étiquettes de service, ou bien utiliser des points de terminaison de service pour restreindre l’accès. Si vous utilisez des points de terminaison de service, seul le trafic provenant des réseaux virtuels et des sous-réseaux sélectionnés peut parvenir à votre application. L’utilisation de restrictions d’accès n’entraîne aucun coût, et est possible dans tous les plans Azure App Service et Azure Functions. Les restrictions d’accès présentent toutefois certains inconvénients. La gestion des règles d’autorisation et de refus peut s’avérer difficile. De plus, pour autoriser un tiers à consommer votre service, vous devez inclure son adresse IP dans une règle d’autorisation. Certains services tiers ont des adresses IP dynamiques, et certaines organisations considèrent les adresses IP comme sensibles.
La deuxième option intégrée est l’utilisation d’un point de terminaison privé, qui fournit aux clients dans votre réseau privé un accès sécurisé à votre application via Azure Private Link. Un 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 dans votre réseau privé et l’application traverse le réseau virtuel et Private Link sur le réseau principal de Microsoft. Cette solution élimine l’exposition sur l’Internet public. Vous pouvez également utiliser des points de terminaison privés pour former des connexions ad hoc entre les locataires Azure. Plus précisément, vous pouvez créer un tunnel de réseau privé virtuel (VPN) sécurisé de site à point. Le tunnel peut être établi à partir d’un réseau virtuel du consommateur dans un locataire vers une application web ou une application de fonction Azure dans un autre locataire. Cette approche élimine la nécessité de configurer et de gérer des VPN site à site ou des peerings de réseaux virtuels.
Ce guide présente une architecture qui utilise l’option de point de terminaison privé. Le point de terminaison privé expose de manière sécurisée une application web Azure dans un locataire à un client qui consomme l’application dans un autre locataire Azure. Vous pouvez également utiliser cette approche pour une application de fonction si vous avez un plan Premium ou App Service pour Functions.
Architecture
Téléchargez un fichier Visio de cette architecture.
Flux de données
- Un utilisateur ou un service sur une machine virtuelle envoie une requête DNS pour une application web Azure sur
webapp.azurewebsites.net
. L’application web s’exécute dans un locataire du fournisseur. - Le service DNS public Azure gère la requête pour
webapp.azurewebsites.net
. La réponse est un enregistrement CNAME,webapp.privatelink.azurewebsites.net
. - Une zone privée Azure DNS gère la requête DNS pour
webapp.privatelink.azurewebsites.net
. - La réponse est un enregistrement A avec l’adresse IP d’un point de terminaison privé.
- La machine virtuelle envoie une requête HTTPS à l’application web Azure via l’adresse IP du point de terminaison privé.
- L’application web gère la requête et répond à la machine virtuelle.
- Si l’utilisateur ou le service n’a pas accès à la zone DNS privée, le service DNS public Azure résout la requête DNS pour
webapp.privatelink.azurewebsites.net
en retournant une adresse IP publique. Les requêtes HTTPS adressées à cette adresse IP publique reçoivent une réponse 403 Interdit.
Composants
- App Service et sa fonctionnalité Web Apps fournissent des plateformes pour la création, le déploiement et la mise à l’échelle d’applications web.
- Functions est une plateforme de calcul serverless pilotée par les événements.
- Le réseau virtuel Azure est le composant fondamental pour vos réseaux privés dans Azure. Les ressources Azure, comme les machines virtuelles, peuvent communiquer en toute sécurité entre elles, avec Internet et avec les réseaux locaux via Réseau virtuel.
- Private Link fournit un point de terminaison privé dans un réseau virtuel. Vous pouvez utiliser le point de terminaison privé pour vous connecter à des services Azure PaaS ou à des clients ou services partenaires.
- Azure DNS est un service d’hébergement pour les domaines DNS. Azure DNS utilise l’infrastructure Azure pour fournir la résolution de noms. Le service Azure DNS privé gère et résout les noms de domaines dans un réseau virtuel et dans des réseaux virtuels connectés. Lorsque vous utilisez ce service, vous n’avez pas besoin de configurer une solution DNS personnalisée.
- Une zone privée Azure DNS contient des enregistrements que vous ne pouvez pas résoudre à partir d’Internet. La résolution DNS ne fonctionne qu’à partir de réseaux virtuels liés à la zone privée.
- Azure Virtual Machines fournit plusieurs tailles et types de ressources informatiques à la demande et évolutives.
Configuration du fournisseur
La première étape consiste à sécuriser l’application web Azure dans le locataire propriétaire. L’objectif ici est de garantir que l’application web n’est plus disponible sur l’Internet public. Vous pouvez y parvenir en créant un point de terminaison privé sur l’application web Azure.
Les applications web et les applications de fonction ne sont plus accessibles publiquement dès lors qu’elles sont associées à un point de terminaison privé. Si vous souhaitez réactiver l’accès public, vous pouvez le faire en utilisant les paramètres de restriction d’accès. D’autres services Azure restent toujours disponibles publiquement une fois que vous les avez associés à un point de terminaison privé. Pour rendre ces services inaccessibles, vous devez définir des contrôles d’accès supplémentaires.
Avant d’activer le point de terminaison privé, vous devez avoir un réseau virtuel et un sous-réseau prêts où vous pouvez déployer la carte réseau du point de terminaison privé. Cette étape utilise une adresse IP du sous-réseau. Définissez également votre stratégie DNS. Vous devez inscrire un enregistrement A de la carte réseau dans la zone DNS.
Si vous utilisez les services DNS qu’Azure fournit par défaut, nous vous recommandons d’utiliser le service de zone privée Azure DNS et d’autoriser l’intégration automatique au moment de la création du point de terminaison privé. Cette approche garantit que :
- la zone DNS privée (
privatelink.azurewebsites.net
) est créée automatiquement si nécessaire ; - la zone DNS est liée au réseau virtuel de la carte réseau du point de terminaison privé ;
- l’enregistrement A est inscrit et géré automatiquement dans la zone DNS privée.
- la zone DNS privée (
Si vous n’utilisez pas les services DNS fournis par défaut par Azure, vous devez configurer et gérer vos propres serveurs et zones DNS :
- Créez une zone DNS
privatelink.azurewebsites.net
. - Assurez-vous que
privatelink.azurewebsites.net
peut être résolu dans les réseaux virtuels qui doivent résoudre la carte réseau du point de terminaison privé. - Inscrivez l’enregistrement A dans la zone DNS
privatelink.azurewebsites.net
avec l’adresse IP du point de terminaison privé. - Selon votre configuration, configurez éventuellement un redirecteur DNS pour résoudre la zone publique Azure DNS,
azurewebsites.net
.
Pour plus d’informations, consultez Configuration DNS des points de terminaison privés Azure.
- Créez une zone DNS
Dans les deux cas, durant la création du point de terminaison privé, la zone publique Azure DNS (azurewebsites.net
) est automatiquement mise à jour avec l’enregistrement CNAME qui pointe vers la zone DNS privée. Il peut arriver que des utilisateurs tentent d’accéder à l’application web à partir de sources qui ne peuvent pas résoudre la zone DNS privée pour récupérer l’enregistrement A actuel et son adresse IP interne. Ces utilisateurs obtiennent une adresse IP publique résolvable, mais la réponse est 403 Interdit.
Configuration du consommateur
L’étape suivante consiste à autoriser un client dans un autre locataire à accéder à l’application web Azure du fournisseur. Le consommateur lance cette configuration. L’approbation manuelle du fournisseur est nécessaire pour activer la connexion.
Étape 1 (consommateur) : Créer un point de terminaison privé
Côté consommateur, le processus de configuration débute par la création d’une ressource de point de terminaison privé. De la même façon que le fournisseur, le consommateur doit avoir un réseau virtuel et un sous-réseau prêts où la carte réseau du point de terminaison privé peut être déployée. Cette étape utilise une adresse IP du sous-réseau. Il n’y a aucune contrainte sur la plage d’adresses IP privées de ce réseau virtuel. Il est notamment possible d’avoir des plages d’adresses IP qui se chevauchent dans les locataires du fournisseur et du consommateur.
Le consommateur n’étant pas propriétaire de la ressource cible, l’ID de ressource complet de l’application web Azure dans le locataire du fournisseur doit être utilisé. Cet ID de ressource contient l’ID d’abonnement du fournisseur, le nom du groupe de ressources et le nom de la ressource d’application web Azure. Par conséquent, nous recommandons au fournisseur de partager ces informations avec le consommateur de manière sécurisée. Actuellement, il n’est pas possible d’utiliser un alias. Certaines ressources Azure ont plusieurs sous-ressources. Par exemple, une ressource stockage Azure a des sous-ressources blob, table, file d’attente, fichier, web et dfs . Le fournisseur doit également fournir des informations sur les sous-ressources. Les applications web et applications de fonction Azure n’ont qu’une seule sous-ressource, sites. Pour plus d’informations sur les sous-ressources de point de terminaison privé et leurs valeurs, consultez Ressource private-link. Étant donné que la connexion du point de terminaison privé n’est pas automatiquement approuvée, le consommateur peut fournir un message destiné au fournisseur.
Il n’est pas possible d’automatiser la configuration de l’intégration d’une zone DNS. Le consommateur doit donc configurer manuellement les enregistrements DNS, comme cela est expliqué à l’étape 3.
Une fois que la ressource de point de terminaison privé a été créée, la connexion est dans l’état En attente. La connexion reste dans cet état inutilisable jusqu’à ce que le fournisseur approuve la requête.
Étape 2 (fournisseur) : Examiner et approuver la requête de connexion
Le fournisseur ne reçoit pas de notification indiquant qu’une requête de connexion du point de terminaison privé est en attente. Le consommateur doit explicitement informer le fournisseur qu’une requête a été envoyée.
Le fournisseur peut récupérer, examiner et approuver ou rejeter les requêtes en attente dans le portail Azure à l’un des emplacements suivants :
- Dans la page Centre Private Link. L’approbateur peut y saisir un message d’approbation.
- Dans le panneau Réseau de l’application web, en sélectionnant Points de terminaison privés.
Le fournisseur peut aussi utiliser Azure CLI ou Azure PowerShell pour récupérer, examiner et approuver ou rejeter les requêtes en attente.
Le fournisseur peut lire le message qui a été fourni au moment de la création du point de terminaison privé. Il peut également voir le nom que le consommateur a donné au point de terminaison privé. Dans Azure CLI et Azure PowerShell, l’ID du locataire, le nom du groupe de ressources et le nom de la ressource de point de terminaison privé du consommateur sont également fournis. Le portail Azure masque ces informations en créant un lien hypertexte vers le point de terminaison privé du consommateur. Du fait que le consommateur se trouve dans un autre locataire, ces informations ne sont généralement pas accessibles par le fournisseur.
Il n’est pas possible d’automatiser le processus d’approbation des connexions de point de terminaison privé. En revanche, avec Private Link, vous pouvez utiliser la propriété d’approbation automatique afin de préapprouver un ensemble d’abonnements pour l’accès automatique au service.
Étape 3 (consommateur) : Configuration du DNS
Vous pouvez effectuer les étapes décrites dans cette section immédiatement après avoir créé la ressource de point de terminaison privé à l’étape 1. Toutefois, pour éviter d’avoir à répéter certaines tâches, nous vous recommandons d’attendre que le fournisseur approuve la connexion.
Le consommateur doit créer et configurer la zone DNS privée de manière à ce que ses clients puissent trouver la carte réseau du point de terminaison privé. Comme pour le fournisseur, la stratégie DNS dans le locataire détermine les étapes requises.
Si le consommateur utilise les services DNS qu’Azure fournit par défaut, nous vous recommandons d’utiliser le service de zone privée Azure DNS. Si nécessaire, le consommateur crée la zone DNS privée
privatelink.azurewebsites.net
et l’associe à un réseau virtuel qui contient la carte réseau du point de terminaison privé. L’inscription automatique n’est pas nécessaire pour cette zone DNS. L’étape suivante pour le consommateur consiste à ajouter une nouvelle configuration DNS :- Dans le portail Azure, recherchez et sélectionnez le point de terminaison privé.
- Ouvrez le panneau Configuration DNS.
- Sélectionnez la zone DNS privée et entrez un nom de connexion pour ajouter une nouvelle configuration DNS.
Ces actions créent l’enregistrement A dans la zone DNS privée. Le nom de domaine complet est renseigné automatiquement lorsque la connexion est approuvée.
Si le consommateur gère ses propres zones DNS, il doit configurer son environnement, comme décrit précédemment dans Configuration du fournisseur.
Dans l’architecture décrite dans ce guide, la machine virtuelle du consommateur utilise le point de terminaison privé pour accéder à l’application web Azure. Cet accès est possible dès que la connexion a été approuvée et que le DNS a été correctement configuré.
Gestion des connexions
Le fournisseur et le consommateur peuvent tous deux gérer la connexion de point de terminaison privé qui a été créée et approuvée.
- Le consommateur peut supprimer la connexion directement via la ressource de point de terminaison privé, la page Centre Private Link, Azure CLI ou Azure PowerShell. Le producteur n’a pas besoin d’être sollicité.
- Le fournisseur peut supprimer les connexions à son service via le panneau Réseau de l’application web Azure, Azure CLI ou Azure PowerShell. Le consommateur perd l’accès au service dès que le point de terminaison privé a été supprimé. Il voit alors que la connexion sur le point de terminaison privé est dans l’état Déconnecté et que l’enregistrement DNS a été supprimé dans la zone DNS privée. Le consommateur doit supprimer manuellement la ressource de point de terminaison privé.
Il n’est pas possible de suspendre ou désactiver temporairement une connexion. Une fois que le consommateur ou le fournisseur a supprimé une connexion, vous devez recréer un point de terminaison privé pour pouvoir restaurer la connexion.
Optimisation des coûts
Contrairement aux restrictions d’accès, qui n’entraînent aucun coût, les points de terminaison privés engendrent des coûts fixes et variables pour le fournisseur et le consommateur.
Coûts fixes
Coûts variables
- Volume de données traitées sur le point de terminaison privé
- Frais de bande passante dans le cas d’un déploiement de l’application web Azure et du point de terminaison privé dans des régions différentes
- Nombre de requêtes DNS
Les machines virtuelles ne sont pas incluses dans cette présentation tarifaire, car elles ne sont pas indispensables pour l’architecture.
Autres considérations
- Le fournisseur doit partager l’ID de l’abonnement, le nom du groupe de ressources et le nom de la ressource d’application web Azure avec le consommateur. De même, le consommateur partage l’ID de l’abonnement, le nom du groupe de ressources et le nom de la ressource de point de terminaison privé avec le fournisseur.
- Il existe des limites quant au nombre de points de terminaison privés que vous pouvez créer dans un abonnement. Toutefois, étant donné que les points de terminaison privés sont créés dans les abonnements du consommateur, ces limites ne posent généralement pas de problème. Pour plus d’informations, consultez Abonnement Azure et limites, quotas et contraintes de service.
- L’abonnement qui contient la ressource Private Link doit être inscrit auprès du fournisseur de ressources du réseau Microsoft. L’abonnement qui contient le point de terminaison privé doit également être inscrit auprès du fournisseur de ressources Microsoft Network. Pour plus d’informations, consultez Fournisseurs et types de ressources Azure.
- Si vous rencontrez des problèmes de connectivité, consultez Résoudre les problèmes de connectivité d’Azure Private Endpoint. En particulier, vérifiez la configuration DNS.
Déployer ce scénario
Pour accéder à un dépôt GitHub contenant des modèles Bicep à votre disposition pour déployer cette architecture, consultez Projet : Accès sécurisé multilocataire aux applications web et applications de fonction Azure avec des points de terminaison privés.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Robbie De Sutter | Architecte de solution cloud numérique
Autre contributeur :
- Rajkumar (Raj) Balakrishnan | Architecte de solution cloud numérique
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- Autorisations du contrôle d’accès en fonction du rôle Azure pour Azure Private Link
- Restreindre votre compte de stockage à un réseau virtuel (pour Functions)
- Microsoft Azure Well-Architected Framework - Sécurité
- Configurer des restrictions d’accès dans Azure App Service
- Utilisation de points de terminaison privés pour une application web Azure
- Options de mise en réseau d’Azure Functions
- Qu’est-ce qu’un point de terminaison privé ?
- Gérer des points de terminaison privés Azure
- Configuration DNS des points de terminaison privés Azure
- Multilocataire et Azure Private Link
Ressources associées
- Accès avec sécurité améliorée pour les applications web multilocataires depuis des environnements locaux
- Service d’application multiniveau avec point de terminaison privé
- Azure Private Link dans un réseau hub-and-spoke
- Limiter les connexions de points de terminaison privés interlocataires dans Azure