Partager via


Configurer des restrictions d’accès dans Azure App Service

Lorsque vous configurez des restrictions d’accès, vous pouvez définir une liste d’autorisation/refus ordonnée par priorité qui contrôle l’accès réseau à votre application. La liste peut inclure des adresses IP ou des sous-réseaux de Réseau virtuel Microsoft Azure. Lorsqu’il y a une ou plusieurs entrées, une règle implicite Tout refuser se trouve à la fin de la liste. Si vous souhaitez en savoir plus, veuillez consulter Restrictions d’accès à Azure App Service.

Les restrictions d’accès fonctionnent avec toutes les charges de travail hébergées dans Azure App Service. Les charges de travail peuvent inclure des applications web, des applications API, des applications Linux, des conteneurs personnalisés Linux et des applications Azure Functions.

Lorsque quelqu’un effectue une demande à votre application, l’adresse FROM est évaluée par rapport aux règles de votre liste de restrictions d’accès. Si l’adresse FROM se trouve dans un sous-réseau configuré avec des Microsoft.Webpoints de terminaison de service, le sous-réseau source est comparé aux règles de réseau virtuel dans votre liste de restrictions d’accès. Si l’adresse n’est pas autorisée à y accéder selon les règles définies dans la liste, le service répond avec le code d’état HTTP 403.

La fonctionnalité de restriction des accès est implémentée dans les rôles frontaux App Service, qui sont en amont des hôtes de travail où votre code s’exécute. Par conséquent, les restrictions d’accès sont comparables à des listes de contrôle d’accès réseau.

La possibilité de restreindre l’accès à votre application web depuis un réseau virtuel Azure utilise des points de terminaison de service. Avec les points de terminaison de service, vous pouvez restreindre l’accès à un service multilocataire à partir de sous-réseaux sélectionnés. Il est impossible de limiter le trafic vers les applications hébergées dans un environnement App Service Environment. Si vous êtes dans un environnement App Service Environment, vous pouvez contrôler l’accès à votre application en appliquant des règles d’adresses IP.

Remarque

Les points de terminaison de service doivent être activés à la fois côté réseau et pour le service Azure avec lequel ils sont activés. Pour obtenir la liste des services Azure qui prennent en charge les points de terminaison de service, consultez Points de terminaison de service de réseau virtuel.

Diagramme montrant le flux de restrictions d’accès.

Gérer les règles de restriction d’accès dans le portail

Pour ajouter une règle de restriction d’accès à votre application :

  1. Connectez-vous au portail Azure.

  2. Sélectionnez l’application à laquelle vous voulez ajouter des restrictions d’accès.

  3. Dans le menu de gauche, sélectionnez Paramètres>Mise en réseau.

  4. Dans le volet Mise en réseau , sous Configuration du trafic entrant, sélectionnez le paramètre d’accès réseau public .

    Capture d’écran du volet Options de mise en réseau App Service dans le portail Azure.

  5. Dans le volet Restrictions d’accès, passez en revue la liste des règles de restriction d’accès définies pour votre application.

    Capture d’écran du volet Restrictions d’accès dans le portail Azure, montrant la liste des règles de restriction d’accès définies pour l’application sélectionnée.

    La liste affiche les restrictions actuellement appliquées à l’application. Si vous avez une restriction de réseau virtuel sur votre application, le tableau indique si les points de terminaison de service sont activés pour Microsoft.Web. Si aucune restriction n’est définie sur votre application et que votre règle sans correspondance n’est pas définie sur Refuser, l’application est accessible de partout.

Autorisations

Vous devez disposer des autorisations de contrôle d’accès en fonction du rôle suivantes sur le sous-réseau ou à un niveau supérieur pour configurer les restrictions d’accès via le portail Azure, l’interface CLI ou lorsque vous définissez les site config propriétés directement :

Action Descriptif
Microsoft.Web/sites/config/read Obtient les paramètres de configuration de l’application web.
Microsoft.Web/sites/config/write Met à jour les paramètres de configuration de l’application web.
Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action* Joint des ressources telles qu’un compte de stockage ou une base de données SQL à un sous-réseau.
Microsoft.Web/sites/write** Met à jour les paramètres de l’application web.

*Obligatoire uniquement lors de l’ajout d’une règle de réseau virtuel (point de terminaison de service)

**Obligatoire uniquement si vous mettez à jour les restrictions d’accès via le portail Azure

Si vous ajoutez une règle basée sur un point de terminaison de service et que le réseau virtuel se trouve dans un abonnement différent de l’application, vérifiez que l’abonnement avec le réseau virtuel est inscrit pour le Microsoft.Web fournisseur de ressources. Vous pouvez inscrire explicitement le fournisseur, mais il est également enregistré automatiquement lorsque vous créez la première application web dans un abonnement. Pour plus d’informations, consultez Inscrire un fournisseur de ressources.

Ajouter une règle de restriction d’accès

Pour ajouter une règle de restriction d’accès à votre application, dans le volet Restrictions d’accès , sélectionnez Ajouter. La règle est effective uniquement après l’avoir enregistrée.

Les règles sont appliquées par ordre de priorité, en partant du chiffre le plus bas dans la colonne Priorité. Si vous ne configurez pas de règle sans correspondance, un refus implicite est appliqué lorsque vous ajoutez une règle.

Dans le volet Ajouter une restriction d’accès, lorsque vous créez une règle, procédez comme suit :

  1. Sous Action, sélectionnez Autoriser ou Refuser.
  2. Entrez un nom et une description de la règle (facultatif).
  3. Dans la zone Priorité, entrez une valeur de priorité.
  4. Dans la liste déroulante Type, sélectionnez le type de règle. Les différents types de règles sont décrits dans les sections suivantes.
  5. Saisissez l’entrée spécifique à la règle. Sélectionnez Ajouter une règle pour ajouter la règle à la liste.
  6. Sélectionnez Enregistrer dans le volet Restrictions d’accès .

Remarque

Il existe une limite de 512 règles de restriction d’accès. Si vous avez besoin de plus de 512 règles de restriction d’accès, envisagez d’utiliser un produit de sécurité autonome. Considérez Azure Front Door, Azure Application Gateway ou un autre pare-feu d’applications web (WAF).

Définir une règle basée sur une adresse IP

Suivez la procédure décrite dans la section précédente, mais en ajoutant la configuration suivante :

  • À l’étape 4, dans la liste déroulante Type , sélectionnez IPv4 ou IPv6.

Spécifiez le bloc d’adresses IP dans la notation CIDR (Classless Inter-Domain Routing) pour les adresses IPv4 et IPv6. Pour spécifier une adresse, vous pouvez utiliser quelque chose comme 1.2.3.4/32, où les quatre premiers octets représentent votre adresse IP et /32 est le masque. La notation CIDR IPv4 pour toutes les adresses est 0.0.0.0/0.

Remarque

Les règles de restriction d’accès basées sur l’IP ne gèrent les plages d’adresses de réseau virtuel que lorsque votre application se trouve dans un App Service Environment. Si votre application se trouve dans le service multilocataire, vous devez utiliser des points de terminaison de service pour restreindre le trafic pour sélectionner des sous-réseaux dans votre réseau virtuel.

Définir une règle basée sur un point de terminaison de service

  • Pour l’étape 4, dans la liste déroulante Type, sélectionnez Réseau virtuel.

    Capture d’écran du volet Ajouter une restriction avec le type de réseau virtuel sélectionné.

Spécifiez les listes déroulantes Abonnement, Réseau virtuel et Sous-réseau , correspondant à ce que vous souhaitez restreindre l’accès.

Grâce aux points de terminaison de service, vous pouvez restreindre l’accès à une sélection de sous-réseaux de réseau virtuel Azure. Si les points de terminaison de service ne sont pas déjà activés avec Microsoft.Web pour le sous-réseau que vous sélectionnez, ils le sont automatiquement, à moins que vous sélectionniez Ignorer les points de terminaison de service Microsoft.Web manquants. Si vous souhaiterez peut-être activer les points de terminaison de service sur l’application, mais pas le sous-réseau dépend si vous disposez des autorisations nécessaires pour les activer sur le sous-réseau.

Si vous avez besoin que quelqu’un d’autre active les points de terminaison de service sur le sous-réseau, sélectionnez Ignorer les points de terminaison de service Microsoft.Web manquants. Votre application est configurée pour les points de terminaison de service. Ils peuvent ensuite être activés sur le sous-réseau.

Vous ne pouvez pas utiliser des points de terminaison de service pour restreindre l’accès aux applications qui s’exécutent dans un environnement App Service Environment. Si votre application se trouve dans un environnement App Service Environment, vous pouvez contrôler l’accès à celle-ci avec des règles d’accès IP.

Avec les points de terminaison de service, vous pouvez configurer votre application à l’aide de passerelles d’application ou d’autres appareils de pare-feu d’applications web (WAF). Vous pouvez également configurer des applications à plusieurs niveaux avec des serveurs principaux sécurisés. Si vous souhaitez en savoir plus, veuillez consulter Fonctionnalités de mise en réseau App Service et Intégration d’Application Gateway.

Remarque

Les points de terminaison de service ne sont actuellement pas pris en charge pour les applications web qui utilisent des liaisons TLS/SSL basées sur IP avec une adresse IP virtuelle.

Définir une règle basée sur une étiquette de service

  • Pour l’étape 4, dans la liste déroulante Type, sélectionnez Étiquette de service.

    Capture d’écran du volet Ajouter une restriction avec le type d’étiquette de service sélectionné.

Toutes les étiquettes de service disponibles publiquement sont prises en charge dans les règles de restriction d’accès. Chaque étiquette de service représente une liste de plages d’adresses IP des services Azure. La documentation sur les étiquettes de service fournit une liste de ces services et des liens vers les plages spécifiques. Utilisez des modèles Azure Resource Manager ou des scripts pour configurer des règles plus avancées, comme des règles à étendue régionale.

Remarque

Lorsque vous créez des règles basées sur des balises de service via le portail Azure ou Azure CLI, vous avez besoin d’un accès en lecture au niveau de l’abonnement pour obtenir la liste complète des étiquettes de service pour la sélection/la validation. En outre, le Microsoft.Network fournisseur de ressources doit être enregistré dans l'abonnement.

Modifier une règle

  1. Pour modifier une règle de restriction d’accès existante, accédez au volet Restrictions d’accès et sélectionnez la règle à modifier.

  2. Dans le volet Modifier la restriction d’accès, effectuez vos modifications, puis sélectionnez Mettre à jour la règle.

  3. Sélectionnez Enregistrer pour enregistrer les modifications.

    Remarque

    Lorsque vous modifiez une règle, vous ne pouvez pas basculer entre les types de règles.

Supprimer une règle

  1. Pour supprimer une règle, dans le volet Restrictions d’accès , sélectionnez la règle ou les règles à supprimer, puis sélectionnez Supprimer.

  2. Sélectionnez Enregistrer pour enregistrer les modifications.

Capture d'écran du volet Restrictions d'accès, montrant les points de suspension Supprimer à côté de la règle de restriction d'accès à supprimer.

Scénarios avancés de restriction d’accès

Les sections suivantes décrivent l’utilisation de restrictions d’accès dans des scénarios avancés.

Filtrer par en-tête HTTP

Vous pouvez ajouter des filtres d’en-tête HTTP à n’importe quelle règle. Les noms d’en-tête HTTP suivants sont pris en charge :

  • X-Forwarded-For
  • X-Forwarded-Host
  • X-Azure-FDID
  • X-FD-HealthProbe

Pour chaque nom d’en-tête, vous pouvez ajouter jusqu’à huit valeurs séparées par des virgules. Les filtres d’en-tête HTTP sont évalués après la règle elle-même et les deux conditions doivent être vraies pour que la règle s’applique.

Règles à plusieurs sources

Les règles multi source vous permettent de combiner jusqu’à huit plages d’adresses IP ou huit balises de service dans une seule règle. Utilisez des règles multi source si vous avez plus de 512 plages d’adresses IP ou si vous souhaitez créer des règles logiques. Par exemple : une règle logique peut inclure plusieurs plages d’adresses IP combinées à un seul filtre d’en-tête HTTP.

Les règles multi source sont définies de la même façon que les règles à source unique, mais chaque plage est séparée par une virgule.

Exemple PowerShell :

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Multi-source rule" -IpAddress "192.168.1.0/24,192.168.10.0/24,192.168.100.0/24" `
  -Priority 100 -Action Allow

Bloquer une adresse IP unique

Si vous souhaitez bloquer explicitement une seule adresse IP ou un bloc d’adresses IP, mais autoriser l’accès à tout le reste, vous pouvez ajouter une règle de refus pour l’adresse IP spécifique. Configurez ensuite l’action de règle sans correspondance sur Autoriser.

Capture d’écran du volet Restrictions d’accès dans le portail Azure montrant une seule adresse IP bloquée.

Limiter l'accès à un site du Gestionnaire de contrôle des services (SCM)

En plus de pouvoir contrôler l’accès à votre application, vous pouvez restreindre l’accès au site d’outils avancé de gestion du contrôle de code source (SCM) utilisé par votre application. Le site SCM est le point de terminaison de déploiement web, ainsi que la console Kudu. Vous pouvez affecter des restrictions d’accès au site SCM à partir de l’application séparément ou utiliser le même ensemble de restrictions pour l’application et le site SCM. Lorsque vous sélectionnez Utiliser les règles du site principal, la liste des règles est masquée. Le site SCM utilise les règles du site principal. Si vous décochez la case, vos paramètres de site SCM réapparaissent.

Capture d’écran du volet Restrictions d’accès dans le portail Azure, montrant qu’aucune restriction d’accès n’est définie pour le site SCM ou l’application.

Restreindre l’accès à une instance Azure Front Door spécifique

Le trafic entre Azure Front Door et votre application provient d’un ensemble bien connu de plages d’adresses IP définies dans l’étiquette de service AzureFrontDoor.Backend. En utilisant une règle de restriction d’étiquette de service, vous pouvez limiter le trafic uniquement à partir d’Azure Front Door. Pour vous assurer que le trafic provient uniquement de votre instance spécifique, vous devez filtrer davantage les requêtes entrantes en fonction de l’en-tête HTTP unique envoyé par Azure Front Door.

Capture d’écran du volet Restrictions d’accès dans le portail Azure, montrant comment ajouter une restriction Azure Front Door.

Exemple PowerShell :

$afd = Get-AzFrontDoor -Name "MyFrontDoorInstanceName"
Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName" `
  -Name "Front Door example rule" -Priority 100 -Action Allow -ServiceTag AzureFrontDoor.Backend `
  -HttpHeader @{'x-azure-fdid' = $afd.FrontDoorId}

Gérer la restriction d’accès par programmation

Vous pouvez également gérer la restriction d’accès par programmation. L’exemple suivant montre comment ajouter des règles aux restrictions d’accès et comment modifier l’action de règle sans correspondance pour le site principal et le site d’outils avancés.

Ajouter des règles de restrictions d’accès pour le site principal

Vous pouvez ajouter des règles de restrictions d’accès pour le site principal par programmation en choisissant l’une des options suivantes :

Vous pouvez exécuter la commande suivante dans Azure Cloud Shell. Pour plus d’informations sur la commande, consultez az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name "Azure Front Door example" --action Allow --priority 200 --service-tag AzureFrontDoor.Backend \
  --http-header x-azure-fdid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Ajouter des règles de restrictions d’accès pour le site d’outils avancé

Vous pouvez ajouter des règles de restrictions d’accès pour le site d’outils avancé par programmation. Choisissez l’une des options suivantes :

Vous pouvez exécuter la commande suivante dans Cloud Shell. Pour plus d’informations sur la commande, consultez az webapp config access-restriction.

az webapp config access-restriction add --resource-group ResourceGroup --name AppName \
  --rule-name 'IP example rule' --action Allow --ip-address 122.133.144.0/24 --priority 100 --scm-site true

Modifier une action de règle sans correspondance pour le site principal

Vous pouvez modifier l’action de règle sans correspondance pour le site principal par programme en choisissant l’une des options suivantes :

Vous pouvez exécuter la commande suivante dans Cloud Shell. Pour plus d’informations sur la commande, consultez az resource. Les valeurs acceptées pour ipSecurityRestrictionsDefaultAction sont Allow ou Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.ipSecurityRestrictionsDefaultAction=Allow

Modifier une action de règle sans correspondance pour le site d’outils avancé

Vous pouvez modifier l’action de règle sans correspondance pour le site d’outils avancé par programme en choisissant l’une des options suivantes :

Vous pouvez exécuter la commande suivante dans Cloud Shell. Pour plus d’informations sur la commande, consultez az resource. Les valeurs acceptées pour scmIpSecurityRestrictionsDefaultAction sont Allow ou Deny.

az resource update --resource-group ResourceGroup --name AppName --resource-type "Microsoft.Web/sites" \
  --set properties.siteConfig.scmIpSecurityRestrictionsDefaultAction=Allow

Configurer des restrictions d’accès Azure Functions

Les restrictions d’accès sont également disponibles pour les applications de fonctions, avec les mêmes fonctionnalités que les plans App Service. Lorsque vous activez des restrictions d’accès, vous désactivez également l’éditeur de code du portail Azure pour les adresses IP non autorisées.