Restrictions d’accès dans Azure App ServiceAzure App Service Access Restrictions

Les restrictions d’accès permettent de définir une liste verte/d’exclusion classée par ordre de priorité qui contrôle l’accès réseau à votre application.Access restrictions enable you to define a priority ordered allow/deny list that controls network access to your app. La liste peut inclure des adresses IP ou des sous-réseaux de Réseau virtuel Microsoft Azure.The list can include IP addresses or Azure Virtual Network subnets. Lorsqu’il y a une ou plusieurs entrées, il existe une règle implicite « Tout refuser » qui se trouve à la fin de la liste.When there are one or more entries, there is then an implicit "deny all" that exists at the end of the list.

La fonctionnalité Restrictions d’accès peut être utilisée avec toutes les charges de travail hébergées par App Service, notamment les applications web, les applications API, les applications Linux, les applications de conteneur Linux et Functions.The access restrictions capability works with all App Service hosted work loads including; web apps, API apps, Linux apps, Linux container apps, and Functions.

Lorsqu’une demande est envoyée à votre application, l’adresse dont provient la demande est vérifiée par rapport aux règles d’adresses IP de votre liste de restriction des accès.When a request is made to your app, the FROM address is evaluated against the IP address rules in your access restrictions list. Si l’adresse dont provient la demande se trouve dans un sous-réseau configuré avec des points de terminaison de service sur Microsoft.Web, le sous-réseau source est comparé aux règles de réseau virtuel de votre liste des restrictions d’accès.If the FROM address is in a subnet that is configured with service endpoints to Microsoft.Web, then the source subnet is compared against the virtual network rules in your access restrictions list. 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.If the address is not allowed access based on the rules in the list, the service replies with an HTTP 403 status code.

La fonctionnalité de restriction des accès est implémentée dans les rôles frontend App Service, qui sont en amont des hôtes de travail où votre code s’exécute.The access restrictions capability is implemented in the App Service front-end roles, which are upstream of the worker hosts where your code runs. C’est pourquoi les restrictions d’accès sont comparables à des listes de contrôle d’accès (ACL) réseau.Therefore, access restrictions are effectively network ACLs.

La possibilité de restreindre l’accès à votre application web à partir d’un réseau virtuel Azure (VNet) est appelée points de terminaison de service.The ability to restrict access to your web app from an Azure Virtual Network (VNet) is called service endpoints. Les points de terminaison de service vous permettent de restreindre l’accès à un service multilocataire à partir de sous-réseaux sélectionnés.Service endpoints enable you to restrict access to a multi-tenant service from selected subnets. Le point de terminaison de service doit être activé côté réseau et côté service avec lequel il est activé.It must be enabled on both the networking side as well as the service that it is being enabled with. Il n’est pas destiné à limiter le trafic vers les applications hébergées dans un environnement App Service Environment.It does not work to restrict traffic to apps that are hosted in an App Service Environment. Si vous êtes dans un environnement App Service Environment, vous pouvez contrôler l’accès à votre application avec des règles d’adresses IP.If you are in an App Service Environment, you can control access to your app with IP address rules.

flux de restrictions d’accès

Ajout et modification des règles de restriction d’accès dans le portailAdding and editing access restriction rules in the portal

Pour ajouter une règle de restriction d’accès à votre application, dans le menu, ouvrez Réseau>Restrictions d’accès, puis cliquez sur Configurer des restrictions d’accès.To add an access restriction rule to your app, use the menu to open Network>Access Restrictions and click on Configure Access Restrictions

Options réseau d’App Service

Dans l’interface utilisateur Restrictions d’accès, vous pouvez consulter la liste des règles de restriction d’accès définies pour votre application.From the Access Restrictions UI, you can review the list of access restriction rules defined for your app.

répertorier les restrictions d’accès

La liste affiche l’ensemble des restrictions actuelles de votre application.The list will show all of the current restrictions that are on your app. Si une restriction de réseau virtuel s’applique à votre application, le tableau indique si des points de terminaison de service sont activés pour Microsoft.Web.If you have a VNet restriction on your app, the table will show if service endpoints are enabled for Microsoft.Web. En l’absence de restriction appliquée à votre application, votre application est accessible depuis n’importe où.When there are no defined restrictions on your app, your app will be accessible from anywhere.

Ajout de règles d’adresses IPAdding IP address rules

Vous pouvez cliquer sur [+] Ajouter pour ajouter une nouvelle règle de restriction d’accès.You can click on [+] Add to add a new access restriction rule. Quand vous ajoutez une règle, celle-ci est appliquée immédiatement.Once you add a rule, it will become effective immediately. Les règles sont appliquées par ordre de priorité, du chiffre le moins élevé au chiffre le plus élevé.Rules are enforced in priority order starting from the lowest number and going up. Il existe une règle implicite « Tout refuser » qui s’applique dès que vous ajoutez une règle.There is an implicit deny all that is in effect once you add even a single rule.

Lorsque vous créez une règle, vous devez sélectionner autoriser/refuser, ainsi que le type de règle.When creating a rule, you must select allow/deny and also the type of rule. Vous devez également indiquer la valeur de priorité et l’élément sur lequel porte la restriction d’accès.You are also required to provide the priority value and what you are restricting access to. Vous pouvez éventuellement ajouter un nom et une description à la règle.You can optionally add a name, and description to the rule.

ajouter une règle de restriction d’accès IP

Pour définir une règle reposant sur une adresse IP, sélectionnez le type IPv4 ou IPv6.To set an IP address based rule, select a type of IPv4 or IPv6. Pour les adresses IPv4 et IPv6, la notation CIDR doit être utilisée.IP Address notation must be specified in CIDR notation for both IPv4 and IPv6 addresses. Pour spécifier une adresse exacte, vous pouvez utiliser le format 1.2.3.4/32, où les quatre premiers octets représentent votre adresse IP, et /32 correspond au masque.To specify an exact address, you can use something like 1.2.3.4/32 where the first four octets represent your IP address and /32 is the mask. La notation CIDR IPv4 est 0.0.0.0/0 pour toutes les adresses.The IPv4 CIDR notation for all addresses is 0.0.0.0/0. Pour plus d’informations sur la notation CIDR, consultez Classless Inter-Domain Routing.To learn more about CIDR notation, you can read Classless Inter-Domain Routing.

Points de terminaison de serviceService endpoints

Les points de terminaison de service vous permettent de restreindre l’accès à une sélection de sous-réseaux de réseau virtuel Azure.Service endpoints enables you to restrict access to selected Azure virtual network subnets. Pour restreindre l’accès à un sous-réseau spécifique, créez une règle de restriction dont le type est Réseau virtuel.To restrict access to a specific subnet, create a restriction rule with a type of Virtual Network. Vous pouvez choisir l’abonnement, le réseau virtuel et le sous-réseau avec lequel vous souhaitez autoriser ou refuser l’accès.You can pick the subscription, VNet, and subnet you wish to allow or deny access with. Si les points de terminaison de service ne sont pas encore activés avec Microsoft.Web pour le sous-réseau sélectionné, ils le seront automatiquement pour vous, sauf si vous cochez la case demandant de ne pas le faire.If service endpoints are not already enabled with Microsoft.Web for the subnet that you selected, it will automatically be enabled for you unless you check the box asking not to do that. Le fait de vouloir les activer sur l’application, mais pas sur le sous-réseau est lié en grande partie au fait de détenir ou non les autorisations d’activer les points de terminaison de service sur le sous-réseau.The situation where you would want to enable it on the app but not the subnet is largely related to if you have the permissions to enable service endpoints on the subnet or not. Si vous avez besoin que quelqu’un d’autre active des points de terminaison de service sur le sous-réseau, vous pouvez cocher la case et faire en sorte que votre application soit configurée pour les points de terminaison de service en prévision que celle-ci soit activée ultérieurement sur le sous-réseau.If you need to get somebody else to enable service endpoints on the subnet, you can check the box and have your app configured for service endpoints in anticipation of it being enabled later on the subnet.

ajouter une règle de restriction d’accès de réseau virtuel

Les points de terminaison de service ne peuvent pas être utilisés pour restreindre l’accès aux applications qui s’exécutent dans un environnement App Service Environment.Service endpoints cannot be used to restrict access to apps that run in an App Service Environment. Si votre application se trouve dans un environnement App Service Environment, vous pouvez contrôler l’accès à votre application avec des règles d’accès IP.When your app is in an App Service Environment, you can control access to your app with IP access rules.

Avec les points de terminaison de service, vous pouvez configurer votre application avec les passerelles d’application ou d’autres appareils WAF.With service endpoints, you can configure your app with Application Gateways or other WAF devices. Vous pouvez également configurer des applications à plusieurs niveaux avec des serveurs principaux sécurisés.You can also configure multi-tier applications with secure backends. Pour plus d’informations sur certaines des possibilités, consultez Fonctionnalités de mise en réseau et App Service et Intégration d’Application Gateway avec les points de terminaison de service.For more details on some of the possibilities, read Networking features and App Service and Application Gateway integration with service endpoints.

Gestion des règles de restriction d’accèsManaging access restriction rules

Vous pouvez cliquer sur n’importe quelle ligne pour modifier une règle existante de restriction d’accès.You can click on any row to edit an existing access restriction rule. Les modifications sont appliquées immédiatement, y compris les changements de priorité.Edits are effective immediately including changes in priority ordering.

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

Lorsque vous modifiez une règle, vous ne pouvez pas modifier le type entre une règle d’adresse IP et une règle de réseau virtuel.When you edit a rule, you cannot change the type between an IP address rule and a Virtual Network rule.

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

Pour supprimer une règle, cliquez sur les trois points ( ... ) dans votre règle, puis cliquez sur Supprimer.To delete a rule, click the ... on your rule and then click remove.

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

Bloquer une adresse IP uniqueBlocking a single IP Address

Lorsque vous ajoutez votre première règle de restriction IP, le service ajoute une règle tout refuser ayant la priorité 2147483647.When adding your first IP Restriction rule, the service will add an explicit deny all rule with a priority of 2147483647. Dans la pratique, la règle explicite Tout refuser est la dernière règle exécutée et bloque l’accès à toute adresse IP n’étant pas autorisée de manière explicite par une règle Autoriser.In practice, the explicit deny all rule will be last rule executed and will block access to any IP address that is not explicitly allowed using an Allow rule.

Lorsque les utilisateurs souhaitent bloquer explicitement une seule adresse IP ou le bloc d’adresses IP, mais autoriser tout autre accès, il est nécessaire d’ajouter une règle explicite Tout autoriser.For the scenario where users want to explicitly block a single IP address or IP address block, but allow everything else access, it is necessary to add an explicit Allow All rule.

bloquer une adresse IP unique

Site GCLSCM site

Outre la possibilité de contrôler l’accès à votre application, vous pouvez également restreindre l’accès au site gcl utilisé par votre application.In addition to being able to control access to your app, you can also restrict access to the scm site used by your app. Le site gcl est le point de terminaison de déploiement web, ainsi que la console Kudu.The scm site is the web deploy endpoint and also the Kudu console. Vous pouvez affecter séparément des restrictions d’accès au site gcl à partir de l’application ou utiliser le même ensemble pour l’application et le site gcl.You can separately assign access restrictions to the scm site from the app or use the same set for both the app and the scm site. Lorsque vous cochez la case pour avoir les mêmes restrictions que votre application, tout s’affiche en grisé. Si vous décochez la case, les paramètres dont vous disposiez précédemment sur le site gcl sont appliqués.When you check the box to have the same restrictions as your app, everything is blanked out. If you uncheck the box, whatever settings you had earlier on the scm site are applied.

répertorier les restrictions d’accès

Manipulation par programmation des règles de restriction d’accèsProgrammatic manipulation of access restriction rules

Azure CLI et Azure PowerShell prennent en charge la modification des restrictions d’accès.Azure CLI and Azure PowerShell has support for editing access restrictions. Exemple d’ajout d’une restriction d’accès à l’aide d’Azure CLI :Example of adding an access restriction using Azure CLI:

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

Exemple d’ajout d’une restriction d’accès à l’aide d’Azure PowerShell :Example of adding an access restriction using Azure PowerShell:

Add-AzWebAppAccessRestrictionRule -ResourceGroupName "ResourceGroup" -WebAppName "AppName"
    -Name "Ip example rule" -Priority 100 -Action Allow -IpAddress 122.133.144.0/24

Vous pouvez également définir manuellement les valeurs à l’aide d’une opération PUT de l’API REST Azure sur la configuration de l’application dans Resource Manager ou à l’aide d’un modèle Azure Resource Manager.Values can also be set manually with an Azure REST API PUT operation on the app configuration in Resource Manager or using an Azure Resource Manager template. Par exemple, vous pouvez utiliser resources.azure.com et modifier le bloc ipSecurityRestrictions pour ajouter le code JSON nécessaire.As an example, you can use resources.azure.com and edit the ipSecurityRestrictions block to add the required JSON.

Dans Resource Manager, ces informations se trouvent à l’emplacement suivant :The location for this information in Resource Manager is:

management.azure.com/subscriptions/subscription ID/resourceGroups/resource groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2018-02-01management.azure.com/subscriptions/subscription ID/resourceGroups/resource groups/providers/Microsoft.Web/sites/web app name/config/web?api-version=2018-02-01

La syntaxe JSON de l’exemple précédent est la suivante :The JSON syntax for the earlier example is:

{
  "properties": {
    "ipSecurityRestrictions": [
      {
        "ipAddress": "122.133.144.0/24",
        "action": "Allow",
        "priority": 100,
        "name": "IP example rule"
      }
    ]
  }
}

Restrictions d’accès dans Azure Function AppAzure Function App Access Restrictions

Les restrictions d’accès sont disponibles pour les deux Function Apps avec la même fonctionnalité que les plans App Service.Access restrictions are available for both Function Apps with the same functionality as App Service plans. L’activation des restrictions d’accès désactive l’éditeur de code du portail pour les adresses IP non autorisées.Enabling access restrictions will disable the portal code editor for any disallowed IPs.

Étapes suivantesNext steps

Restrictions d’accès pour Azure Function AppsAccess restrictions for Azure Function Apps

Intégration d’Application Gateway par des points de terminaison de serviceApplication Gateway integration with service endpoints