Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Idées de solution
Cet article présente une idée de solution. Votre architecte cloud peut s’appuyer sur ces conseils pour visualiser les principaux composants d’une implémentation typique de cette architecture. Utilisez cet article comme point de départ pour concevoir une solution bien conçue qui répond aux exigences spécifiques de votre charge de travail.
Cette idée de solution illustre un pipeline DevSecOps qui utilise GitHub pour l’infrastructure en tant que code (IaC). En traitant les définitions d’infrastructure comme source de vérité, les charges de travail peuvent automatiser la validation, l’analyse de la sécurité, la gouvernance et la conformité tout au long du cycle de vie du déploiement.
Les modèles de déploiement standardisés, le développement assisté par l’IA, la sécurité du code et l’analyse de la configuration, la gouvernance pilotée par les stratégies et la gestion du cycle de vie permettent d’améliorer la sécurité, d’améliorer l’efficacité opérationnelle, de réduire la dérive de configuration et de fournir des environnements cloud fiables.
Architecture
Téléchargez un fichier Visio de cette architecture.
Flux de données
Le flux de données suivant correspond au diagramme précédent :
Les développeurs utilisent le développement piloté par l’IA, piloté par les tests, pour créer et gérer du code d’infrastructure, des modules réutilisables, des tests et des flux de travail de déploiement. Ils développent des tests unitaires, des tests d’intégration et des vérifications de politiques en tant que code (PaC) en parallèle des définitions d’infrastructure.
Les développeurs versionnent l’IaC, les tests et les contrôles dans des dépôts GitHub afin de valider la qualité, la sécurité et la conformité avant de soumettre des pull requests.
Les pull requests déclenchent des tests automatisés dans GitHub Actions. Ce flux de travail génère et valide les préversions de déploiement avant le déploiement.
GitHub Advanced Security fournit des vérifications de sécurité au niveau du référentiel. Les vérifications incluent l’analyse du code ou les flux de travail de révision des dépendances, le cas échéant, et activent l’analyse des secrets et la protection push sur le référentiel pour détecter les secrets exposés.
Une action de sécurité DevOps configurée analyse les définitions d’infrastructure pour détecter les erreurs de configuration et signale les résultats à la sécurité DevOps dans Microsoft Defender for Cloud. Defender for Cloud met en corrélation ces résultats avec les insights de posture de sécurité cloud pour aider à hiérarchiser la correction avant le déploiement.
Le pipeline de déploiement crée ou met à jour les ressources Azure à l’aide d’artefacts IaC réutilisables issus de définitions d’infrastructure approuvées, tels que les Azure Verified Modules (AVM). Les piles de déploiement Azure aident à maintenir l’alignement entre les ressources déployées et les définitions gérées dans le contrôle de code source, et les paramètres de refus du déploiement contribuent à réduire la dérive de configuration en limitant les modifications effectuées en dehors du processus de déploiement. Les modifications manuelles approuvées sont documentées et rapprochées par le biais du contrôle de code source pour conserver Git comme source de vérité faisant autorité.
DevSecOps surveille et protège en continu contre les menaces et vulnérabilités de sécurité. Azure Policy applique la gouvernance cloud.
L’automatisation configurée crée un ticket GitHub lorsque les services de surveillance ou de sécurité détectent une anomalie. Par exemple, Defender for Cloud peut identifier une ressource exposée publiquement qui enfreint les exigences de sécurité. Un groupe d’actions Azure Monitor ou une règle d’automatisation Microsoft Sentinel peut appeler un flux de travail Azure Logic Apps qui crée un problème de GitHub pour examiner et corriger.
Composants
GitHub est une plateforme d’hébergement de code pour la gestion de version et la collaboration. Dans cette architecture, GitHub stocke des modèles IaC dans des référentiels centraux pour le développement, le test, les flux de travail de gouvernance et le développement assisté par l’IA avec GitHub Copilot.
GitHub Actions est un outil d’automatisation d’intégration continue et de déploiement continu (CI/CD) qui permet aux flux de travail de générer, tester et déployer du code directement à partir de dépôts GitHub. Dans cette architecture, GitHub Actions automatise les tests unitaires, l’analyse de la sécurité et l’approvisionnement d’infrastructure pour les pipelines IaC.
GitHub Advanced Security fournit des fonctionnalités de sécurité au niveau du référentiel, notamment l’analyse des secrets et la détection des vulnérabilités de dépendance. Dans cette architecture, GitHub Advanced Security permet d’identifier les informations d’identification exposées, les dépendances open source vulnérables et d’autres risques de sécurité de référentiel avant la fusion et le déploiement du code.
La sécurité DevOps dans Defender for Cloud centralise les résultats de sécurité DevOps et les met en corrélation avec le contexte cloud. Dans cette architecture, une action Sécurité Microsoft DevOps GitHub configurée analyse les artefacts IaC pour détecter des configurations incorrectes et signale les résultats à Defender for Cloud pour la hiérarchisation et la correction.
Azure modules vérifiés (AVM) sont des modules IaC prédéfinis gérés par Microsoft. Dans cette architecture, les charges de travail utilisent AVM pour déployer des modules de ressources et de modèles réutilisables qui s’alignent sur les instructions de Azure Well-Architected Framework.
Les stacks de déploiement Azure permettent aux charges de travail de gérer les ressources déployées comme des unités gérées selon un cycle de vie unique. Les piles de déploiement Azure permettent de maintenir l’alignement entre les ressources déployées et les définitions d’infrastructure gérées dans le contrôle de code source, de prendre en charge la gestion du cycle de vie et de réduire la dérive de configuration en appliquant des stratégies de gouvernance et des paramètres d’interdiction.
Defender for Cloud est une plateforme de gestion de la sécurité qui fournit une protection contre les menaces sur les charges de travail cloud hybrides. Dans cette architecture, elle surveille en permanence l’infrastructure déployée pour les vulnérabilités et les menaces, et complète les résultats de sécurité DevOps avec des insights de sécurité d’exécution.
Microsoft Sentinel est une solution SIEM (Security Information and Event Management) native cloud et d’orchestration de la sécurité (SOAR) qui utilise l’IA et l’analytique pour détecter et répondre aux menaces. Dans cette architecture, Microsoft Sentinel surveille l’activité de l’infrastructure et déclenche des alertes ou des problèmes de GitHub lorsqu’il détecte des anomalies.
Azure Policy évalue les ressources Azure par rapport aux normes organisationnelles et de charge de travail. Selon l’effet attribué à la stratégie, Azure Policy peut auditer, modifier, corriger ou refuser les configurations non conformes. Par exemple, une définition de stratégie avec l’effet
denypeut bloquer le déploiement d’une machine virtuelle dont le SKU n’est pas autorisé.Azure Monitor est une plateforme de télémétrie et d’observabilité qui collecte les métriques de performances et les journaux d’activité à partir de ressources Azure. Dans cette architecture, Azure Monitor détecte les conditions d’infrastructure irrégulières et déclenche des alertes afin que le triage et la correction puissent démarrer.
Détails du scénario
Lorsque vous adoptez IaC, créez des tests automatisés au fur et à mesure que vous développez le code. Générez des plans de déploiement et des états de configuration d’infrastructure pour émuler les déploiements réels. Le développement piloté par les tests réduit la complexité des tests de l’IaC à mesure que votre charge de travail prend de l’ampleur.
Exécutez des tests d’intégration sur des ressources Azure déployées à l’aide de SDK Azure et d’API, de Azure Resource Graph, d’outils de validation spécifiques à la charge de travail ou d’infrastructures de test automatisées. Ces tests permettent de vérifier la configuration des ressources, la connectivité, les contrôles de sécurité et la préparation opérationnelle.
PaC est une autre méthode importante pour fournir une infrastructure conforme aux réglementations et à la gouvernance d’entreprise. Vous pouvez ajouter des workflows PaC dans vos pipelines pour automatiser la gouvernance cloud.
La sécurisation de l’infrastructure au début du cycle de vie du développement réduit le risque de problèmes de sécurité et de conformité après le déploiement. Intégrez GitHub Advanced Security et Defender for Cloud sécurité DevOps aux flux de travail DevSecOps pour identifier les vulnérabilités, les problèmes de qualité du code, les violations de stratégie, l’exposition aux secrets et les risques de configuration dans le code IaC. Cette approche est similaire au test de sécurité d’application statique (SAST) pour le code d’application.
La dérive de configuration peut être difficile à résoudre lorsque l’infrastructure est déployée et opérationnelle, en particulier dans les environnements de production. Utilisez GitHub Actions avec OpenID Connect (OIDC) et Microsoft Entra Fédération des identités de charge de travail pour approvisionner et gérer des ressources Azure sans stocker d’informations d’identification. Limitez les autorisations de déploiement en appliquant des attributions Azure de contrôle d’accès en fonction du rôle (Azure RBAC) selon le principe du moindre privilège, ainsi que des contrôles de protection de l’environnement. Pour apporter des modifications manuelles exceptionnelles, utilisez un accès privilégié juste-à-temps, consignez la modification et créez automatiquement un ticket GitHub afin de remettre en cohérence la définition de l’infrastructure via la gestion du code source. Évitez de configurer manuellement chaque fois que possible et traitez Git comme la source faisant autorité de l’état de l’infrastructure.
Pour éviter la dérive dès l’origine, utilisez des piles de déploiement Azure lorsque plusieurs ressources Azure définies dans un modèle partagent le même cycle de vie. Tenez compte des limitations de la pile de déploiement et appliquez les paramètres de refus appropriés pour restreindre les modifications hors bande du plan de contrôle. Conservez la définition IaC versionnée dans le contrôle de code source.
Pour éviter les incidents de sécurité, surveillez en permanence l’environnement cloud pour les menaces et les vulnérabilités. Utilisez Defender for Cloud, Microsoft Sentinel, Azure Monitor et d’autres outils SIEM et protection contre les menaces pour détecter les activités anormales. Ces outils peuvent automatiquement alerter les administrateurs de la sécurité et créer des tickets GitHub pour enquête et correction.
Cas d’usage potentiels
Les équipes centrales d’ingénierie de plateforme peuvent fournir aux équipes applicatives, de données et d’IA des workflows GitHub Actions réutilisables, des contrôles PaC et des stacks de déploiement Azure comme parcours de référence approuvés. GitHub Copilot aide les développeurs à créer des définitions d’infrastructure, des tests et des workflows de déploiement. Une action DevOps Sécurité Microsoft configurée valide la sécurité et la configuration de l’infrastructure avant le déploiement et signale les résultats à la sécurité DevOps dans Defender for Cloud. L’organisation peut accélérer la livraison de l’infrastructure tout en conservant les normes de gouvernance, de cohérence et de sécurité.
Les services financiers, les soins de santé, le secteur public ou les entreprises réglementées peuvent utiliser DevSecOps pour IaC pour automatiser le déploiement de l’infrastructure, l’application des stratégies, la validation de la sécurité et les rapports de conformité. Azure Policy, Defender for Cloud, Microsoft Sentinel et les piles de déploiement Azure permettent de maintenir les modifications d’infrastructure auditables, de réduire la dérive de configuration et de prendre en charge la conformité tout au long du cycle de vie de l’infrastructure. GitHub est la source de vérité faisant autorité pour toutes les modifications d’infrastructure et tous les contrôles de gouvernance.
Contributeurs
Microsoft gère cet article. Les contributeurs suivants ont écrit cet article.
Auteurs principaux :
- Vito Chin | Architecte de solution cloud senior
- Yee Shian Lee | Architecte de solution cloud senior
Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.
Étapes suivantes
- Considérez le langage ou le modèle IaC à utiliser. Bicep ou Terraform sur Azure sont des options.
- Configurez Sécurité Microsoft DevOps pour analyser votre référentiel de GitHub connecté.