Adresses IP entrantes et sortantes dans Azure App Service

Azure App Service est un service multitenant, à l’exception des App Service Environments. Les applications qui ne sont pas dans un environnement App Service (pas dans le Niveau isolé) partagent l’infrastructure réseau avec d’autres applications. Par conséquent, les adresses IP entrantes et sortantes d’une application peuvent être différentes et peuvent même changer dans certaines situations.

Les environnements App Service utilisent des infrastructures réseau dédiées, afin que les applications s’exécutant dans un environnement App Service obtiennent des adresses IP statiques dédiées pour les connexions entrantes et sortantes.

Fonctionnement des adresses IP dans App Service

Une application App Service fonctionne dans un plan App Service, et les plans App Service sont déployés dans l’une des unités de déploiement de l’infrastructure Azure (appelée en interne un espace web). À chaque unité de déploiement, un ensemble d’adresses IP virtuelles est attribué, y compris une adresse IP entrante publique et un ensemble d’adresses IP sortantes. Tous les plans App Service dans la même unité de déploiement, et les instances d’applications qui y sont exécutées, partagent le même ensemble d’adresses IP virtuelles. Pour un environnement App Service Environment (plan App Service de niveau Isolé), le plan App Service est l’unité de déploiement proprement dite, de sorte que les adresses IP virtuelles lui sont dédiées en conséquence.

Comme vous n’êtes pas autorisé à déplacer un plan App Service entre des unités de déploiement, les adresses IP virtuelles attribuées à votre application restent généralement les mêmes, mais il existe des exceptions.

Lorsque l’adresse IP entrante change

Quel que soit le nombre d’instances scale-out, chaque application a une seule adresse IP entrante. L’adresse IP entrante peut changer lorsque vous effectuez l’une des actions suivantes :

  • Supprimer une application, puis la recréer dans un autre groupe de ressources (l’unité de déploiement peut changer).
  • Supprimer la dernière application dans une combinaison de groupe de ressources et de région, puis la recréer (l’unité de déploiement peut changer).
  • Supprimer une liaison TLS/SSL sur IP existante, comme pendant un renouvellement de certificat (voir Renouveler un certificat).

Rechercher l’IP entrante

Il vous suffit d’exécuter la commande suivante dans un terminal local :

nslookup <app-name>.azurewebsites.net

Obtenir une adresse IP entrante statique

Vous pouvez avoir besoin d’une adresse IP statique dédiée pour votre application. Pour obtenir une adresse IP statique entrante, vous devez sécuriser un nom DNS personnalisé avec une liaison de certificat basée sur l’IP. Si vous n’avez pas besoin de la fonctionnalité TLS pour sécuriser votre application, vous pouvez même charger un certificat autosigné pour cette liaison. Dans une liaison TLS basée sur l’adresse IP, le certificat est lié à l’adresse IP elle-même. App Service créé donc une adresse IP statique pour qu’elle soit réalisée.

Lorsque les adresses IP sortantes changent

Quel que soit le nombre d’instances scale-out, chaque application a un nombre défini d’adresses IP sortantes à un moment donné. Toute connexion sortante depuis l’application App Service, par exemple la connexion à une base de données principale, utilise l’une des adresses IP sortantes comme adresse IP d’origine. L’adresse IP à utiliser est sélectionnée de façon aléatoire au moment de l’exécution. Par conséquent, votre service principal doit ouvrir son pare-feu à toutes les adresses IP sortantes de votre application.

L’ensemble des adresses IP sortantes de votre application change lorsque vous effectuez l’une des actions suivantes :

  • Supprimer une application, puis la recréer dans un autre groupe de ressources (l’unité de déploiement peut changer).
  • Supprimer la dernière application dans une combinaison de groupe de ressources et de région, puis la recréer (l’unité de déploiement peut changer).
  • Mettez à l’échelle votre application entre les niveaux inférieurs (De base, Standard et Premium), les niveaux PremiumV2 et PremiumV3, ainsi que les options Pmv3 du niveau PremiumV3 (des adresses IP peuvent être ajoutées ou soustraites de l’ensemble).

Vous pouvez trouver toutes les adresses IP sortantes que votre application est susceptible d’utiliser, indépendamment des niveaux tarifaires, en recherchant la propriété possibleOutboundIpAddresses, ou dans le champ Adresses IP sortantes supplémentaires de la page Propriétés du Portail Azure. Consultez Trouver des adresses IP sortantes.

Notez que l’ensemble de toutes les adresses IP sortantes possibles peut augmenter au fil du temps si App Service ajoute de nouveaux niveaux tarifaires ou de nouvelles options aux déploiements App Service existants. Par exemple, si App Service ajoute le niveau PremiumV3 à un déploiement App Service existant, alors l’ensemble de toutes les adresses IP sortantes possibles augmente. De même, si App Service ajoute de nouvelles options Pmv3 à un déploiement qui prend déjà en charge le niveau PremiumV3, alors l’ensemble de toutes les adresses IP sortantes augmente. Ajouter des adresses IP à un déploiement n’a pas d’effet immédiat, car les adresses IP sortantes pour les applications en cours d’exécution ne changent pas lorsqu’un nouveau niveau tarifaire ou une nouvelle option sont ajoutés à un déploiement App Service. En revanche, si les applications passent à un nouveau niveau tarifaire ou une nouvelle option qui n’étaient pas disponibles auparavant, alors de nouvelles adresses sortantes sont utilisées et les clients doivent mettre à jour les règles de pare-feu en aval et les restrictions d’adresses IP.

Trouver des adresses IP sortantes

Pour trouver les adresses IP sortantes utilisées par votre application dans le portail Azure, sélectionnez Propriétés dans le volet de navigation gauche de votre application. Elles sont listées dans le champ Adresses IP sortantes.

Vous pouvez obtenir les mêmes informations en exécutant la commande suivante dans Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query outboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).OutboundIpAddresses

Pour trouver toutes les adresses IP sortantes possibles pour votre application, indépendamment des niveaux de tarification, sélectionnez Propriétés dans la navigation à gauche de votre application. Elles sont listées dans le champ Adresses IP sortantes supplémentaires.

Vous pouvez obtenir les mêmes informations en exécutant la commande suivante dans Cloud Shell.

az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv
(Get-AzWebApp -ResourceGroup <group_name> -name <app_name>).PossibleOutboundIpAddresses

Pour les applications de fonction, consultez Adresses IP sortantes de l’application de fonction.

Obtenir une adresse IP sortante statique

Vous pouvez contrôler l’adresse IP du trafic sortant depuis votre application en utilisant une intégration de réseau virtuel régionale avec une passerelle NAT de réseau virtuel pour diriger le trafic via une adresse IP publique statique. L’intégration de réseau virtuel régionale est disponible dans les plans App Service Essentiel, Standard, Premium, PremiumV2 et PremiumV3. Pour en savoir plus sur cette configuration, consultez l’intégration de la passerelle NAT.

Balise du service

En utilisant l’étiquette de service AppService, vous pouvez définir l’accès réseau pour le service Azure App Service sans spécifier d’adresses IP individuelles. L’étiquette de service est un groupe de préfixes d’adresses IP que vous utilisez pour simplifier la création de règles de sécurité. Lorsque vous utilisez des étiquettes de service, Azure met automatiquement à jour les adresses IP au fur et à mesure qu’elles changent pour le service. Toutefois, l’étiquette de service n’est pas un mécanisme de contrôle de sécurité. L’étiquette de service est simplement une liste d’adresses IP.

L’étiquette de service AppService n’inclut que les adresses IP entrantes des applications multitenant. Les adresses IP entrantes des applications déployées en mode isolé (App Service Environment) et des applications utilisant des liaisons TLS basées sur IP ne sont pas incluses. En outre, toutes les adresses IP sortantes utilisées dans les environnements multitenant et isolés ne sont pas incluses dans l’étiquette.

L’étiquette peut être utilisée pour autoriser le trafic sortant dans un groupe de sécurité réseau (NSG) vers des applications. Si l’application utilise le protocole TLS basé sur IP ou si l’application est déployée en mode isolé, vous devez utiliser l’adresse IP dédiée à la place.

Remarque

L’étiquette de service vous aide à définir l’accès réseau, mais elle ne doit pas être considérée comme un remplacement de mesures de sécurité réseau appropriées, car elle ne fournit pas de contrôle granulaire sur les adresses IP individuelles.

Étapes suivantes