Activer l’intégration au réseau virtuel dans Azure App Service

En intégrant votre application Azure App Service à un réseau virtuel Azure, vous pouvez accéder à des ressources privées à partir de votre application dans le réseau virtuel.

Prérequis

La fonctionnalité d’intégration au réseau virtuel requiert les éléments suivants :

Le sous-réseau doit être délégué à Microsoft.Web/serverFarms. Si la délégation n’est pas effectuée avant l’intégration, le processus de provisionnement configure cette délégation. Le sous-réseau doit avoir un bloc IPv4 /28 (16 adresses). Nous vous recommandons d’avoir un minimum de 64 adresses (bloc IPv4 /26) pour permettre une échelle horizontale maximale.

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 manuellement le fournisseur en suivant cette documentation, mais il sera inscrit automatiquement lors de la création de la première application Web dans un abonnement.

Configurer dans le portail Azure

  1. Accédez à Mise en réseau dans le portail App Service. Sous Configuration du trafic sortant, sélectionnez Intégration du réseau virtuel.

  2. Sélectionnez Ajouter une intégration de réseau virtuel.

    Screenshot that shows selecting Virtual network integration.

  3. La liste déroulante contient tous les réseaux virtuels de votre abonnement dans la même région. Sélectionnez un sous-réseau vide existant ou créez en un.

    Screenshot that shows selecting the virtual network.

Lors de l’intégration, votre application est redémarrée. Une fois l’intégration terminée, vous pourrez voir des informations sur le réseau virtuel auquel vous êtes intégré.

Configurer avec Azure CLI

Vous pouvez également configurer l’intégration au réseau virtuel à l’aide d’Azure CLI :

az webapp vnet-integration add --resource-group <group-name> --name <app-name> --vnet <vnet-name> --subnet <subnet-name>

Notes

La commande vérifie que le sous-réseau est délégué à Microsoft.Web/serverFarms et applique la délégation nécessaire si elle n’est pas configurée. Si le sous-réseau a été configuré et que vous n’avez pas les autorisations nécessaires pour le vérifier, ou si le réseau virtuel est dans un autre abonnement, vous pouvez utiliser le paramètre --skip-delegation-check pour contourner la validation.

Configurer avec Azure PowerShell

Préparer les paramètres.

$siteName = '<app-name>'
$vNetResourceGroupName = '<group-name>'
$webAppResourceGroupName = '<group-name>'
$vNetName = '<vnet-name>'
$integrationSubnetName = '<subnet-name>'
$vNetSubscriptionId = '<subscription-guid>'

Notes

Si le réseau virtuel se trouve dans un autre abonnement que l’application web, vous pouvez utiliser la commande Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" pour définir le contexte d’abonnement actuel. Définissez le contexte d’abonnement actuel sur l’abonnement dans lequel le réseau virtuel a été déployé.

Vérifiez si le sous-réseau est délégué à Microsoft.Web/serverFarms.

$vnet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $integrationSubnetName -VirtualNetwork $vnet
Get-AzDelegation -Subnet $subnet

Si votre sous-réseau n’est pas délégué à Microsoft.Web/serverFarms, ajoutez la délégation à l’aide des commandes ci-dessous.

$subnet = Add-AzDelegation -Name "myDelegation" -ServiceName "Microsoft.Web/serverFarms" -Subnet $subnet
Set-AzVirtualNetwork -VirtualNetwork $vnet

Configurez l’intégration au réseau virtuel.

Notes

Si l’application web se trouve dans un autre abonnement que le réseau virtuel, vous pouvez utiliser la commande Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" pour définir le contexte d’abonnement actuel. Définissez le contexte d’abonnement actuel sur l’abonnement dans lequel l’application web a été déployée.

$subnetResourceId = "/subscriptions/$vNetSubscriptionId/resourceGroups/$vNetResourceGroupName/providers/Microsoft.Network/virtualNetworks/$vNetName/subnets/$integrationSubnetName"
$webApp = Get-AzResource -ResourceType Microsoft.Web/sites -ResourceGroupName $webAppResourceGroupName -ResourceName $siteName
$webApp.Properties.virtualNetworkSubnetId = $subnetResourceId
$webApp.Properties.vnetRouteAllEnabled = 'true'
$webApp | Set-AzResource -Force

Étapes suivantes