Adresse IP fixe en sortie de Function App via VNET

Tanguy SCHOUBERT
Publié par Tanguy SCHOUBERT
Catégorie : Azure / Azure Functions
01/07/2022

Depuis une fonction Azure, nous avons besoin d’aller déposer des fichiers sur un SFTP. Celui-ci est configuré de telle sorte que toutes les adresse IP entrantes sont bloquées par défaut. Pour avoir les droits d’accès et d’écriture, les adresses IP des processus doivent être white-listées au préalable. Il est donc nécessaire que notre fonction Azure se présente auprès du serveur SFTP avec une adresse IP fixe.

 

Description du besoin

 

Dans la configuration réseau de notre Function App, nous avons la liste d’adresses IP que notre fonction utilise pour le traffic sortant :

 

 

Il nous suffirait donc théoriquement de white-lister ces adresses IP. Mais le problème est que cette liste d’adresses peut changer, elle n’est pas garantie dans le temps. Cela implique qu’il nous faudrait en fait white-lister toutes les adresses potentiellement utilisables par les data centers Azure, en fonction de leur région. Cette liste globale est téléchargeable sur le site de Microsoft (https://www.microsoft.com/en-us/download/details.aspx?id=56519). Mais cette approche reste contraignante, puisqu’il faut ajouter non pas une mais potentiellement plusieurs centaines d’adresses IP à la configuration du SFTP.

 

Pour éviter cela, nous avons une alternative : utiliser un Virtual Network.

 

Mise en place de la solution

 

Nous devons créer trois ressources : une adresse IP publique, un Virtual Network et une NAT Gateway.

 

 

Une fois l’adresse IP créée, nous pouvons créer la NAT Gateway en ajoutant dans la section Outbound IP la nouvelle adresse :

 

 

Ensuite, nous pouvons créer le Virtual Network, lui ajouter un Subnet et configurer le lien vers la NAT Gateway fraîchement instanciée :

 

 

Et enfin nous pouvons lier notre Function App à notre Virtual Network et à notre Subnet, dans la section Networking :

 

 

Toutes les fonctions qui seront hébergées dans le Function App disposeront désormais d’une seule adresse IP fixe de sortie. Il ne reste plus qu’à white-lister cette adresse IP du côté SFTP. Attention, seuls certains plans des Azure Functions prennent en charge les Virtual Networks (https://docs.microsoft.com/en-us/azure/azure-functions/functions-networking-options#matrix-of-networking-features).