Activer DevSecOps avec Azure et GitHub

DevSecOps, parfois appelé Secure DevOps, s’appuie sur les principes de DevOps, mais place la sécurité au cœur du cycle de vie global des applications. Ce concept est appelé « sécurité shift-left » : la sécurité est déplacée en amont, c’est-à-dire qu’elle ne concerne plus seulement la production, mais englobe les phases précoces de planification et de développement. Chaque équipe et chaque personne travaillant sur une application sont tenues de prendre en compte la sécurité.

Microsoft et GitHub offrent des solutions vous permettant d’avoir une plus grande confiance dans le code que vous exécutez en production. Ces solutions inspectent votre code, permettent d’en assurer la traçabilité jusqu’aux éléments de travail et offrent des insights sur les composants tiers utilisés.

Sécuriser votre code avec GitHub

Les développeurs peuvent utiliser des outils d’analyse du code qui analysent rapidement et automatiquement le code dans un dépôt GitHub pour rechercher les failles de sécurité et les erreurs de programmation.

Vous pouvez analyser le code pour rechercher, trier et hiérarchiser les correctifs pour les problèmes existants. L’analyse du code empêche également les développeurs d’introduire de nouveaux problèmes. Vous pouvez planifier des analyses pour des jours et des heures spécifiques, ou déclencher des analyses quand un événement spécifique se produit dans le dépôt, comme une poussée (push). Vous pouvez également suivre les dépendances de votre dépôt et recevoir des alertes de sécurité quand GitHub détecte des dépendances vulnérables.

Suivez votre travail avec Azure Boards

Les équipes peuvent utiliser le service web Azure Boards pour gérer les projets logiciels. Azure Boards offre un ensemble complet de fonctionnalités, notamment une prise en charge native de Scrum et Kanban, des tableaux de bord personnalisables et des rapports intégrés.

Générer et déployer des conteneurs avec Azure Pipelines

Intégrez facilement des clusters Azure Pipelines et Kubernetes. Vous pouvez utiliser les mêmes documents YAML pour générer des pipelines multiphases en tant que code pour l’intégration continue et la livraison continue.

Azure Pipelines intègre le suivi des métadonnées dans vos images conteneur avec les codes de hachage de commit et les numéros de problème issus d’Azure Boards, ce qui vous permet d’inspecter vos applications avec confiance.

La possibilité de créer des pipelines de déploiement avec des fichiers YAML et de les stocker dans le contrôle de code source contribue à resserrer la boucle de rétroaction entre les équipes de développement et des opérations, qui s’appuient sur des documents clairs et lisibles.

Exécuter et déboguer des conteneurs avec Bridge to Kubernetes

Le développement d’une application Kubernetes peut s'avérer difficile. Vous avez besoin des fichiers de configuration Docker et Kubernetes. Vous devez trouver comment tester votre application localement et interagir avec d'autres services dépendants. Vous devrez peut-être développer et tester plusieurs services à la fois et avec une équipe de développeurs.

Bridge to Kubernetes vous permet d’exécuter et de déboguer du code sur votre ordinateur de développement tout en étant toujours connecté à votre cluster Kubernetes avec le reste de votre application ou de vos services. Vous pouvez tester votre code de bout en bout, atteindre des points d’arrêt dans le code s’exécutant dans le cluster et partager un cluster de développement entre les membres de l’équipe sans interférence.

Assurer la sécurité des conteneurs avec Microsoft Defender pour les conteneurs et Azure Policy

Microsoft Defender pour les conteneurs est une solution cloud native dédiée à la sécurisation de vos conteneurs.

Gérer les identités et l’accès avec la Plateforme d’identités Microsoft

La plateforme d’identités Microsoft est une évolution de la plateforme de développement Azure Active Directory (Azure AD). Elle permet aux développeurs de générer des applications qui connectent toutes les identités Microsoft et obtiennent des jetons pour appeler des API Microsoft, comme Microsoft Graph, ou des API que des développeurs ont créées.

Azure AD B2C fournit une identité entreprise-client en tant que service. Vos clients utilisent leurs identités de compte local, d’entreprise ou de réseau social par défaut pour bénéficier d’un accès par authentification unique à vos applications et API.

La gestion des accès aux ressources cloud est une fonction critique pour toute organisation utilisant le cloud. Le contrôle d’accès en fonction du rôle Azure (RBAC Azure) permet de gérer les utilisateurs ayant accès aux ressources Azure, les modes d’utilisation des ressources par ces derniers et les zones auxquelles ils ont accès.

Vous pouvez utiliser la Plateforme d’identités Microsoft pour l’authentification avec vos autres outils DevOps et ainsi bénéficier de la prise en charge native dans Azure DevOps et des intégrations à GitHub Enterprise.

Actuellement, un cluster Azure Kubernetes Service ou AKS (plus précisément, le fournisseur cloud Kubernetes) nécessite une identité pour créer des ressources supplémentaires telles que des équilibreurs de charge et des disques managés dans Azure. Cette identité peut être une identité gérée ou un principal de service. Si vous utilisez un principal de service, vous devez en fournir un ; sinon, AKS en crée un en votre nom. Si vous utilisez une identité managée, elle est automatiquement créée pour vous par AKS. Pour les clusters qui utilisent des principaux de service, le principal de service doit finalement être renouvelé pour que le cluster continue de fonctionner. La gestion des principaux de service ajoute de la complexité : c’est pourquoi il est plus facile d’utiliser à la place des identités managées. Les mêmes exigences d’autorisation s’appliquent aux principaux de service et aux identités managées.

Les identités managées correspondent essentiellement à un wrapper autour des principaux de service, ce qui simplifie leur gestion.

Gérer les clés et les secrets avec Azure Key Vault

Azure Key Vault peut être utilisé pour stocker les jetons, mots de passe, certificats, clés API et autres secrets et en contrôler l’accès de manière sécurisée. La centralisation du stockage des secrets d’application dans Key Vault vous permet de contrôler leur distribution. Key Vault réduit considérablement les risques de fuite accidentelle des secrets. Quand vous utilisez Key Vault, les développeurs d’application n’ont plus besoin de stocker les informations de sécurité dans leur application. Ceci évite d’avoir à inclure ces informations dans le code. Considérons l’exemple d’une application ayant besoin de se connecter à une base de données. Dans ce cas, plutôt que d’inclure la chaîne de connexion dans le code de l’application, vous pouvez simplement la stocker en toute sécurité dans Key Vault.

Surveiller vos applications

Avec Azure Monitor, vous pouvez surveiller votre application et votre infrastructure en temps réel en identifiant les problèmes liés à votre code ainsi que les anomalies et activités suspectes potentielles. Azure Monitor s’intègre aux pipelines de mise en production dans Azure Pipelines, permettant l’approbation automatique de portes de qualité ou la restauration de version en fonction des données de surveillance.

Apprenez à surveiller vos applications et votre infrastructure à l’aide d’Azure Application Insights et d’Azure Monitor.

Construisez la bonne architecture

La sécurité est l’un des aspects les plus importants de toute architecture. La sécurité fournit des garanties de confidentialité, d’intégrité et de disponibilité contre les attaques délibérées et les abus sur vos données et systèmes importants. La perte de ces assurances peut avoir un impact négatif sur vos activités et vos revenus commerciaux, ainsi que sur la réputation de votre organisation dans la place de marché.