Résumé
L’examen de sécurité de Contoso Retail a identifié quatre lacunes de contrôle qui ont laissé ses charges de travail sans serveur exposées : des déclencheurs HTTP non authentifiés, des chaînes de connexion en texte brut dans les paramètres d’application, l’absence de restrictions du trafic entrant sur les points de terminaison des applications Function, et des identifiants codés en dur dans les ressources de connexion partagées des applications logiques. Ce module a résolu chaque écart à l’aide de contrôles organisés autour de trois couches de sécurité.
Passer en revue ce que vous avez configuré
La couche d’authentification — qui contrôle qui peut appeler une application Function — a été gérée grâce à Azure App Service Authentication. Vous avez configuré Microsoft Entra ID en tant que fournisseur d’identité EasyAuth à l’aide du paramètre Require authentication pour bloquer les requêtes non authentifiées avant l’exécution du code de fonction. Les niveaux d’autorisation de fonction fournissent une couche secondaire : clés d’hôte pour l’accès à l’échelle de l’application, clés de fonction pour la restriction par fonction et niveau anonyme réservé aux points de terminaison protégés par une passerelle en amont.
La couche d’identité — qui détermine sous quelle identité l’application de fonction agit lorsqu’elle effectue des appels vers des services en aval — a été prise en charge au moyen d’une identité managée attribuée par le système. Une fois l’identité managée activée et les rôles RBAC appropriés attribués, les chaînes de connexion ne sont plus stockées dans les paramètres de l’application. Pour les modèles d’orchestration de l’IA dans lesquels les applications Function appellent les points de terminaison Azure OpenAI, le rôle Cognitive Services OpenAI User remplace entièrement le stockage des clés API. Les références Key Vault avec la syntaxe @Microsoft.KeyVault(SecretUri=...) étendent ce modèle à n’importe quel paramètre d’application qui contenait auparavant une valeur secrète.
La couche d’isolation réseau , qui contrôle ce qui peut atteindre le point de terminaison de fonction, a été traitée par le biais de restrictions IP entrantes, de points de terminaison privés pour les applications de fonction sur le plan Elastic Premium ou Dédié et de l’intégration du réseau virtuel pour le trafic sortant. Le même modèle à trois couches a été appliqué aux applications logiques, avec le plan Standard fournissant l’intégration de réseau virtuel, les points de terminaison privés et l’isolation à locataire unique que le plan Consommation ne prend pas en charge. Les entrées sécurisées et les paramètres de sorties sécurisées sur des actions d’application logique individuelles protègent les données sensibles contre l’affichage dans l’historique des exécutions.