Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Les API sont de plus en plus intégrées à la façon dont les organisations et leurs clients accèdent aux services, à la fois dans les systèmes internes et via des canaux externes. En interne, les API facilitent l’accès aux applications métier, aux solutions propriétaires et aux intégrations de partenaires. En externe, un nombre croissant d’organisations se concentrent sur l’amélioration de la productivité et la génération de revenus par le biais de la monétisation des API. Compte tenu de cette tendance, La gestion des API Azure sert d’élément fondamental dans la gouvernance, la publication et la supervision standardisées des API pour les parties prenantes internes et externes.
Azure Application Gateway sert de point de contrôle de sécurité pour les API. Au lieu d’autoriser les utilisateurs à se connecter directement sur Internet, vous routez tout le trafic via une passerelle d’application. Cette configuration ajoute des contrôles d’accès supplémentaires pour protéger vos API. Avec cette approche, vous pouvez utiliser une seule instance Gestion des API pour prendre en charge les API internes au sein de votre organisation et les API externes en dehors de votre organisation, tout en conservant les API exposées publiquement sécurisées derrière la passerelle.
Remarque
Cette architecture sert de base aux conseils de gestion des API dans une zone d’atterrissage Azure dans le Cloud Adoption Framework pour Azure.
Architecture
Téléchargez un fichier Visio de cette architecture.
Cette architecture suppose que les stratégies sont en place à partir de l’implémentation de référence de la zone d’atterrissage Azure et que la structure est pilotée vers le bas à partir du groupe d’administration.
Flux de travail
Les adresses IP publiques sont affectées à une passerelle d’application, qui sert de point d’entrée pour le trafic externe. Ce point de terminaison expose les API via un domaine personnalisé.
La passerelle d’application est déployée dans son propre sous-réseau et protégée par les stratégies WAF (Web Application Firewall) pour inspecter et filtrer les requêtes entrantes.
Le trafic est acheminé de la passerelle d’application vers Gestion des API (Premium), qui réside dans un sous-réseau gestion des API distinct. L’instance Gestion des API est configurée en mode interne, ce qui empêche l’accès public direct.
Les points de terminaison privés sont utilisés pour connecter en toute sécurité gestion des API aux serveurs d’applications principaux qui sont exposés uniquement au réseau virtuel. Gestion des API connecte également régulièrement des dépendances, telles que des coffres de clés Azure. En règle générale, toutes ces connectivités privées se produisent avec des points de terminaison dans un sous-réseau de point de terminaison privé dédié.
Les espaces de travail Log Analytics et Application Insights sont intégrés pour la journalisation, la surveillance et la télémétrie.
Composants
Gestion des API est un service managé qui vous permet de gérer des services dans des environnements hybrides et multiclouds. Il fournit un contrôle et une sécurité pour l’observabilité et la consommation des API par les utilisateurs internes et externes. Dans cette architecture, gestion des API sert de façade pour abstraction de l’architecture back-end.
Application Gateway est un service managé qui sert d’équilibreur de charge de couche 7 et waf. Application Gateway protège l’instance de gestion des API interne, qui permet l’utilisation des modes internes et externes. Dans cette architecture, Gestion des API sécurise les API et Application Gateway ajoute des fonctionnalités complémentaires telles que WAF.
Les zones DNS (Private Domain Name System) sont une fonctionnalité d’Azure DNS qui vous permet de gérer et de résoudre les noms de domaine au sein d’un réseau virtuel sans avoir à implémenter une solution DNS personnalisée. Une zone DNS privée peut être alignée sur un ou plusieurs réseaux virtuels via des liens de réseau virtuel. Dans cette architecture, une zone DNS privée est requise pour garantir une résolution de noms appropriée au sein du réseau virtuel.
Application Insights est un service extensible de gestion des performances des applications qui permet aux développeurs de détecter les anomalies, de diagnostiquer les problèmes et de comprendre les modèles d’utilisation. Application Insights offre une gestion et une supervision extensibles des performances des applications pour les applications web en production. Différentes plateformes sont prises en charge, y compris .NET, Node.js, Java et Python. Les applications hébergées dans Azure, localement, dans un environnement hybride ou dans d’autres clouds publics sont prises en charge. Dans cette architecture, Application Insights surveille les comportements de l’application déployée.
Log Analytics est un outil d’analyse des données basé sur le cloud qui vous permet de modifier et d’exécuter des requêtes de journal sur des données dans les journaux Azure Monitor, éventuellement à partir du portail Azure. Les développeurs peuvent exécuter des requêtes simples pour récupérer des enregistrements ou utiliser Log Analytics pour une analyse avancée, puis visualiser les résultats. Dans cette architecture, Log Analytics agrège tous les journaux de ressources de plateforme pour l’analyse et la création de rapports.
Azure Key Vault est un service cloud qui stocke et accède en toute sécurité aux secrets. Ces secrets vont des clés d’API et des mots de passe aux certificats et aux clés de chiffrement. Dans cette architecture, Key Vault stocke les certificats SSL (Secure Sockets Layer) qu’Application Gateway utilise.
Autres solutions
Pour les services principaux auxquels l’instance Gestion des API se connecte, plusieurs alternatives sont disponibles :
Azure App Service est un service HTTP entièrement managé qui génère, déploie et met à l’échelle des applications web. Il prend en charge .NET, .NET Core, Java, Ruby, Node.js, PHP et Python. Les applications peuvent s’exécuter et effectuer un scale-in dans des environnements Windows ou Linux.
Azure Kubernetes Service (AKS) est une offre Kubernetes managée qui fournit des clusters entièrement managés. Il permet l’intégration continue intégrée et la livraison continue (CI/CD), ainsi que la gouvernance et la sécurité intégrées.
Azure Logic Apps est une plateforme basée sur le cloud qui crée et exécute des workflows automatisés. Pour plus d’informations, consultez un exemple d’architecture de référence.
Azure Container Apps est un service de conteneur serverless entièrement managé qui vous permet d’exécuter des microservices et des applications conteneurisées sur une plateforme serverless.
Pour les déploiements multirégions, envisagez d’utiliser Azure Front Door pour fournir un accès rapide, fiable et sécurisé entre vos utilisateurs et le contenu web statique et dynamique de vos applications.
Pour obtenir d’autres exemples de protection des API d’Application Gateway, consultez Protéger les API avec Application Gateway et Gestion des API.
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Well-Architected Framework.
Fiabilité
La fiabilité permet de s’assurer que votre application peut respecter les engagements que vous prenez à vos clients. Pour en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la fiabilité.
Déployez au moins deux unités d’échelle de Gestion des API réparties sur deux zones de disponibilité ou plus dans chaque région. Surveillez les métriques de capacité et approvisionnez suffisamment d’unités de capacité pour continuer à fonctionner même si les unités d’une zone de disponibilité sont perdues.
Nous vous recommandons d’utiliser le niveau Premium, car il prend en charge les zones de disponibilité et les déploiements multirégions. Cette fonctionnalité signifie que vos services peuvent continuer à s’exécuter même si une région ou une zone tombe en panne. Ces fonctionnalités aident à protéger votre application lors de pannes ou de sinistres.
Pour la récupération d’urgence, configurez gestion des API avec une identité managée affectée par l’utilisateur au lieu d’une identité affectée par le système. Si vous redéployez ou supprimez la ressource, l’identité et ses autorisations restent en place. Vous pouvez donc restaurer plus facilement l’accès. Utilisez Azure Pipelines pour automatiser les sauvegardes. Déterminez si vous devez déployer vos services dans plusieurs régions pour une meilleure fiabilité.
Le peering de réseaux virtuels offre de fortes performances au sein d’une région, mais il a une limite d’extensibilité de 500 réseaux. Si vous devez connecter davantage de charges de travail, utilisez une conception hub-spoke ou Azure Virtual WAN.
Sécurité
La sécurité offre des garanties contre les attaques délibérées et l’utilisation abusive de vos données et systèmes précieux. Pour en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la sécurité.
Les stratégies de validation gestion des API valident les demandes et réponses d’API par rapport à un schéma OpenAPI. Ces fonctionnalités ne sont pas un remplacement d’un WAF, mais elles peuvent fournir une protection supplémentaire contre certaines menaces. L’ajout de stratégies de validation peut avoir des implications sur les performances. Nous vous recommandons donc d’utiliser des tests de charge de performances pour évaluer leur impact sur le débit de l’API.
Microsoft Defender pour API fournit une protection complète du cycle de vie, la détection et la réponse des API publiées dans Gestion des API. Une fonctionnalité clé consiste à détecter les exploits de l’API Open Web Application Security Project (OWASP) Les 10 principales vulnérabilités par le biais d’observations d’anomalies d’exécution à l’aide de détections basées sur machine learning et basées sur des règles.
Les espaces de travail Gestion des API vous aident à organiser et isoler vos API. Cette approche facilite le contrôle des personnes qui peuvent y accéder et les gérer. Chaque espace de travail peut avoir son propre ensemble d’autorisations. Vous pouvez donc limiter l’accès aux personnes ou aux équipes qui en ont besoin. Cette séparation réduit le risque de modifications accidentelles ou d’accès non autorisés et prend en charge un environnement d’API plus sécurisé.
Utilisez les secrets Key Vault comme valeurs nommées dans les stratégies Gestion des API pour protéger les informations sensibles dans les stratégies Gestion des API.
Utilisez Application Gateway pour l’accès externe d’une instance de gestion des API interne pour protéger l’instance gestion des API, défendre contre les attaques et vulnérabilités courantes des applications web à l’aide du WAF et activer la connectivité hybride.
Déployez la passerelle Gestion des API dans un réseau virtuel pour prendre en charge la connectivité hybride et renforcer la sécurité.
Le peering de réseaux virtuels améliore les performances d’une région et permet une communication privée entre les réseaux virtuels.
Lorsque vous utilisez un waf, vous introduisez une couche qui inspecte le trafic entrant pour un comportement malveillant. Cette protection permet de bloquer les menaces courantes telles que l’injection SQL et les scripts intersites. La protection par déni de service distribué (DDoS) d’Application Gateway et d’Application Gateway empêche les inondations excessives de trafic ou de connexion d’accablant l’instance Gestion des API. Pour plus d’informations, consultez Protéger les API à l’aide d’Application Gateway et gestion des API.
Les points de terminaison privés pour Azure Functions vous permettent de vous connecter en toute sécurité à vos applications de fonction via une adresse IP privée au sein de votre réseau virtuel. Cette configuration empêche l’exposition de vos fonctions à l’Internet public, ce qui réduit le risque d’accès non autorisé. Dans cette architecture, les points de terminaison privés garantissent que seules les ressources approuvées au sein de votre réseau peuvent accéder à Azure Functions.
Optimisation des coûts
L’optimisation des coûts se concentre sur les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d'informations, consultez Liste de contrôle de la révision de la conception pour l'optimisation des coûts.
Ce déploiement utilise le plan Premium pour prendre en charge les fonctionnalités de zone de disponibilité et de réseau virtuel. Si vous n’avez pas besoin d’instances dédiées, vous pouvez également utiliser Flex Consumption, qui prend en charge les zones d’accès réseau et de disponibilité. Passez en revue la calculatrice de prix pour ce déploiement.
Pour la preuve de concepts ou de prototypes, nous vous recommandons d’utiliser d’autres niveaux gestion des API, tels que Développeur ou Standard.
Excellence opérationnelle
L’excellence opérationnelle couvre les processus opérationnels qui déploient une application et la maintiennent en production. Pour plus d’informations, consultez la Liste de contrôle de l'examen de la conception pour l'excellence opérationnelle.
Représentez les configurations gestion des API en tant que modèles Azure Resource Manager et adoptez une approche d’infrastructure en tant que code (IaC).
Utilisez un processus CI/CD pour gérer, versionner et mettre à jour les configurations de Gestion des API.
Créez des sondes d’intégrité personnalisées pour vous aider à valider l’état de votre instance Gestion des API. Utilisez l’URL
/status-0123456789abcdefpour créer un point de terminaison d’intégrité commun pour le service Gestion des API dans la passerelle d’application.Les certificats mis à jour dans le coffre de clés sont automatiquement pivotés dans Gestion des API, ce qui reflète les modifications dans les quatre heures.
Si vous utilisez un outil DevOps comme Azure DevOps ou GitHub, les agents hébergés dans le cloud ou les exécuteurs fonctionnent sur l’Internet public. Étant donné que gestion des API dans cette architecture est définie sur un réseau interne, vous devez utiliser un agent DevOps qui a accès au réseau virtuel. L’agent DevOps vous aide à déployer des stratégies et d’autres modifications apportées aux API de votre architecture. Vous pouvez utiliser ces modèles CI/CD pour séparer le processus en parties afin que vos équipes de développement puissent déployer des modifications pour chaque API. Les exécuteurs DevOps lancent les modèles pour gérer ces déploiements individuels.
Déployer ce scénario
Cette architecture est disponible sur GitHub. Il contient tous les fichiers IaC nécessaires et les instructions de déploiement.
Contributeurs
Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.
Auteurs principaux :
- Pete Messina | Architecte de solution cloud senior
- Anthony Nevico | Architecte de solution cloud senior
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- Conseils du Framework d’adoption du cloud pour l’adoption de la gestion des API dans une zone d’atterrissage Azure
- Terminologie gestion des API
- Documentation Application Gateway