Présentation
Contoso Retail utilise Azure Functions pour assurer le traitement des commandes déclenché par des événements et la synchronisation des stocks. Il s’agit de fonctions déclenchées par HTTP que les systèmes partenaires externes appellent directement, déclenchées par des webhooks entrants chaque fois qu’un achat est confirmé ou qu’un niveau de stock change. Une révision de sécurité a fait apparaître quatre lacunes de contrôle qui n’avaient pas été traitées depuis le déploiement initial. Plusieurs fonctions de production acceptent des demandes non authentifiées : n’importe quel appelant avec l’URL peut les déclencher. Les chaînes de connexion Cosmos DB sont stockées en tant que paramètres d’application en texte brut, visibles par toute personne disposant d’un accès en lecture à l’écran de configuration App Service. Aucune restriction réseau entrante n’existe, de sorte que les points de terminaison de fonction acceptent le trafic n’importe où sur Internet. Leurs flux de travail d’intégration dans Logic Apps présentent une quatrième faille : les ressources de connexion partagées entre plusieurs applications contiennent des informations d’identification codées en dur dont personne n’est responsable et que personne ne renouvelle.
Aucune de ces lacunes ne produit une erreur immédiate. Un déclencheur HTTP non authentifié continue de fonctionner. Une chaîne de connexion en clair continue d’être utilisée pour l’authentification auprès de la base de données. Cette exposition reste invisible jusqu’à ce que des informations d’authentification soient volées, qu’une fonctionnalité soit détournée de son usage, ou qu’une enquête sur une compromission révèle que chaque point de terminaison était ouvert à Internet depuis le début.
Les charges de travail serverless nécessitent le même modèle de sécurité à trois couches que celui que vous appliquez à n’importe quelle surface d’API. La première couche détermine qui peut invoquer la fonction : l’authentification et l’autorisation. La deuxième couche détermine sous quelle identité la fonction s’exécute lorsqu’elle effectue des appels vers des services en aval — identité managée. La troisième couche contrôle ce qui peut atteindre le point de terminaison de fonction en premier lieu : l’isolation réseau.
Ce module fonctionne à travers chaque couche pour les Azure Functions et les Azure Logic Apps. Pour les applications de fonction, vous configurez l’authentification Azure App Service avec Microsoft Entra ID, attribuez une identité managée pour éliminer les chaînes de connexion et appliquez des restrictions IP entrantes, des points de terminaison privés, une intégration de réseau virtuel et des références Key Vault. Pour les applications logiques, vous appliquez les mêmes modèles d’identité managée et de réseau, choisissez le plan d’hébergement approprié en fonction des exigences de capacité réseau et protégez les données sensibles exposées via l’historique des exécutions.
À la fin de ce module, vous pouvez configurer l'authentification, l'identité managée et l'isolation réseau pour les applications de fonction Azure et les applications logiques dans une posture de sécurité de production.
Objectifs d’apprentissage
À l’issue de ce module, vous pourrez :
- Configurer des contrôles d’authentification et d’autorisation pour les applications de fonction Azure
- Implémenter des contrôles d’accès réseau pour les applications de fonction, notamment l’intégration de réseau virtuel et les points de terminaison privés
- Appliquer l’identité managée, la sécurité du connecteur et l’isolation réseau pour les applications logiques Azure