Partager via


Sécuriser votre Azure DevOps

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Lorsque vous traitez des informations et des données, en particulier dans une solution cloud telle qu’Azure DevOps Services, la sécurité doit être votre priorité absolue. Bien que Microsoft garantit la sécurité de l’infrastructure cloud sous-jacente, il vous incombe de configurer la sécurité dans Azure DevOps. Cet article fournit une vue d’ensemble des configurations liées à la sécurité nécessaires pour protéger votre environnement Azure DevOps contre les menaces et les vulnérabilités.

Protéger votre réseau et vos données

La sécurisation de votre réseau est essentielle lorsque vous travaillez avec Azure DevOps pour protéger vos données et ressources contre les menaces potentielles et d’accès non autorisés. Implémentez des mesures de sécurité réseau et de protection des données pour vous assurer que seules les sources approuvées peuvent accéder à votre environnement Azure DevOps. Pour sécuriser votre réseau lorsque vous utilisez Azure DevOps, effectuez les actions suivantes :

Pour en savoir plus, consultez Meilleures pratiques en matière de gestion des applications.

Implémenter la Confiance Zéro

Adoptez des principes de confiance zéro dans vos processus DevOps pour vous assurer que chaque demande d’accès est soigneusement vérifiée, quelle que soit son origine. La confiance zéro fonctionne sur le principe de « jamais approuver, toujours vérifier », ce qui signifie qu’aucune entité, qu’elle soit à l’intérieur ou à l’extérieur du réseau, est approuvée par défaut. En implémentant Confiance Zéro, vous pouvez réduire considérablement le risque de violations de sécurité et vous assurer que seuls les utilisateurs et appareils autorisés peuvent accéder à vos ressources.

La confiance zéro permet de se protéger contre le mouvement latéral au sein du réseau, en s’assurant que même s’il existe une partie compromise du réseau, la menace est contenue et ne peut pas se propager. Pour plus d’informations, consultez le guide d’évaluation de la confiance zéro.

Respecter les normes du secteur

Assurez-vous que votre environnement Azure DevOps est conforme aux normes et réglementations du secteur qui protègent votre environnement et maintiennent la confiance avec vos utilisateurs.

  • Vérifiez la conformité aux normes du secteur : Azure DevOps est conforme aux différentes normes et réglementations du secteur, telles que ISO/IEC 27001, SOC 1/2/3 et RGPD. Assurez-vous que votre environnement respecte ces normes.
  • Appliquer des stratégies de conformité : Implémentez des stratégies de branche et des stratégies de conformité pour vos pipelines.
  • S'intégrer à la gouvernance des composants des CI/CD, qui offre les avantages suivants :
    • Détection des vulnérabilités de sécurité : vous avertit des vulnérabilités connues dans les composants open source.
    • Conformité des licences : garantit que les composants sont conformes aux stratégies de licence de votre organisation.
    • Application de la stratégie : garantit que seules les versions approuvées sont utilisées.
    • Visibilité avec le suivi : offre une visibilité sur les composants à travers les référentiels pour simplifier la gestion.

Contrôler et restreindre l’accès

Passez en revue toutes les stratégies de sécurité disponibles aux administrateurs pour restreindre et contrôler qui a accès à l’organisation. Maintenez le contrôle de l’organisation en empêchant la création inutile de projets.

Gérer les invités externes

L’accès invité externe peut présenter des risques de sécurité potentiels s’il n’est pas géré correctement. Réduisez ces risques et assurez-vous que les invités externes disposent du niveau d’accès approprié sans compromettre la sécurité de votre environnement.

  • Bloquer l'accès des invités externes : Désactivez la stratégie « Autoriser l'envoi d'invitations à n'importe quel domaine » pour empêcher l'accès des invités externes si cela n'est pas nécessaire d'un point de vue professionnel.
  • Utiliser des adresses email ou des UPN distincts : Utilisez des adresses email ou des noms principaux d’utilisateur (UPN) différents pour vos comptes personnels et professionnels afin d’éviter toute confusion entre vos comptes privés et professionnels.
  • Regrouper les utilisateurs invités externes : Placez tous les utilisateurs invités externes dans un seul et même groupe Microsoft Entra et gérez les autorisations pour ce groupe de manière appropriée. Supprimez les affectations directes afin de garantir que les règles du groupe s’appliquent à ces utilisateurs.
  • Réévaluer régulièrement les règles : Réévaluez régulièrement les règles sous l’onglet Règles de groupe de la page Utilisateurs. Prenez en compte toute modification de l’appartenance à un groupe dans Microsoft Entra ID susceptible d’avoir une incidence sur votre organisation. Microsoft Entra ID peut prendre jusqu’à 24 heures pour mettre à jour l’appartenance de groupe dynamique, et les règles sont automatiquement réévaluées toutes les 24 heures et chaque fois qu’une règle de groupe est modifiée.

Pour plus d'informations, voir Invités B2B dans Microsoft Entra ID.

Supprimer les utilisateurs inutiles

La suppression d’utilisateurs inactifs ou non autorisés de votre organisation permet de maintenir un environnement sécurisé et réduit le risque de violations de sécurité potentielles.

  • Supprimez directement les utilisateurs de compte Microsoft inactifs (MSA) : Supprimez directement les utilisateurs inactifs de votre organisation s’ils utilisent des contrats MSA. Vous ne pouvez pas créer de requêtes pour les éléments de travail attribués à des comptes MSA supprimés.
  • Désactiver ou supprimer les comptes d’utilisateur Microsoft Entra : Si vous êtes connecté à Microsoft Entra ID, désactivez ou supprimez le compte utilisateur Microsoft Entra tout en conservant le compte utilisateur Azure DevOps actif. Vous pouvez continuer à interroger l’historique des éléments de travail à l’aide de leur ID utilisateur Azure DevOps.
  • Révoquer des PAT utilisateur pour les administrateurs : Assurez-vous de la gestion sécurisée de ces jetons d’authentification critiques en examinant et révoquant régulièrement les paT d’utilisateurs existants.
  • Révoquer les autorisations spéciales accordées à des utilisateurs individuels : Auditez et révoquez toutes les autorisations spéciales accordées à des utilisateurs individuels afin de garantir le respect du principe du moindre privilège.
  • Réassigner le travail des utilisateurs supprimés : Avant de supprimer des utilisateurs, réattribuez leurs tâches aux membres actuels de l’équipe afin de répartir efficacement la charge de travail.

Autorisations d’étendue

Fournissez les autorisations minimales nécessaires et les niveaux d’accès pour garantir que seules les personnes et services autorisés peuvent accéder aux informations sensibles et effectuer des actions critiques. Cette pratique permet de réduire le risque d’accès non autorisé et de violations de données potentielles.

Passez régulièrement en revue et mettez à jour ces paramètres pour s’adapter aux changements de votre organisation, tels que les changements de rôle, les nouveaux employés ou les départs. L’implémentation d’un audit périodique des autorisations et des niveaux d’accès peut vous aider à identifier et à corriger toutes les différences, ce qui garantit que votre posture de sécurité reste robuste et alignée sur les meilleures pratiques.

En savoir plus sur les autorisations :

Pour garantir une gestion sécurisée et efficace des autorisations, limitez correctement les autorisations dans votre environnement Azure DevOps. Les autorisations d’étendue impliquent la définition et l’affectation du niveau d’accès approprié aux utilisateurs et aux groupes en fonction de leurs rôles et responsabilités. Cette pratique permet de réduire le risque d’accès non autorisé et de violations de données potentielles en garantissant que seules les personnes autorisées ont accès à des informations sensibles et à des actions critiques.

Pour étendre efficacement les autorisations, effectuez les actions suivantes :

  • Désactiver l’héritage : Éviter l’héritage des permissions et empêcher l’accès non souhaité. L’héritage peut accorder par inadvertance des autorisations aux utilisateurs qui ne doivent pas les avoir, en raison de sa nature d’autorisation par défaut. Gérez et définissez explicitement des autorisations pour vous assurer que seuls les utilisateurs prévus ont accès.
  • Environnements de segment : Utilisez des comptes Azure distincts pour différents environnements, tels que le développement, le test et la production, pour améliorer la sécurité et empêcher les conflits. Cette approche réduit le risque de conflits de ressources et de contamination des données entre les environnements et permet une meilleure gestion et l’isolation des ressources. Pour plus d’informations, consultez La zone d’atterrissage Azure.
  • Contrôler l’accès et garantir la conformité : Utilisez Azure Policy pour restreindre l’accès aux régions et services Azure inutilisés, en garantissant la conformité aux normes organisationnelles. Cette action permet d’appliquer les meilleures pratiques et de maintenir un environnement sécurisé en empêchant l’accès et l’utilisation non autorisés.
  • Implémenter le contrôle en fonction du rôle Azure (ABAC) : Utilisez ABAC avec des ressources correctement étiquetées pour limiter l’accès non autorisé. Cette action garantit que les autorisations d’accès sont accordées en fonction d’attributs spécifiques, ce qui améliore la sécurité en empêchant la création et l’accès non autorisés des ressources.
  • Utilisez des groupes de sécurité : Utilisez des groupes de sécurité pour gérer efficacement les autorisations pour plusieurs utilisateurs. Cette méthode simplifie l’octroi et la révocation de l’accès par rapport à l’attribution d’autorisations individuellement et garantit la cohérence et la gestion plus facile au sein de votre organisation.
    • Utilisez les groupes de sécurité Microsoft Entra ID, Active Directory ou Windows lorsque vous gérez un grand nombre d’utilisateurs.
    • Réduisez le risque de fuite d’informations sensibles et de déploiement de code non sécurisé en limitant l’accès aux projets et référentiels aux groupes de sécurité intégrés ou personnalisés.
    • Tirez parti des rôles intégrés et attribuez par défaut le rôle de Contributeur aux développeurs. Les administrateurs sont affectés au groupe de sécurité Administrateurs de projet pour les autorisations élevées, ce qui leur permet de configurer des autorisations de sécurité.
    • Conservez les groupes aussi petits que possible, ce qui limite l’accès.
    • Mettez en place un accès juste-à-temps avec un groupe Microsoft Entra Privileged Identity Management (PIM). Accordez des autorisations élevées uniquement si nécessaire, ce qui réduit le risque associé à l’accès permanent.

Se débarrasser des comptes de service

Historiquement, les comptes de service ont été utilisés avec des jetons d’accès personnels (PAT) pour créer des outils qui exécutent des processus et des services automatisés. Par conséquent, ils disposent souvent d’autorisations élevées. Avant de choisir de continuer à créer un compte de service, explorez s’il s’agit toujours de l’approche d’authentification appropriée pour vous.

  • Remplacez vos paTs par des jetons Microsoft Entra :Microsoft Entra tokens (jetons Entra) de courte durée (une heure) qui peuvent être utilisés à la place de la plupart des PAT. Les PAT sont populaires en raison de leur facilité d’utilisation, mais ils sont également un vecteur d’attaque populaire en raison de la facilité dans laquelle ils sont divulguées.
  • Lisez tous les mécanismes d’authentification disponibles avant de choisir celui-ci.
  • Utilisez plutôt des entités de service :les entités de service représentent l’identité d’une application Microsoft Entra et disposent de leurs propres autorisations qui définissent ce que l’application peut faire dans un locataire donné. Les principaux de service sont recommandées pour gérer les autorisations requises par l’application. Remplacez les PAT de tous les comptes de service par des jetons Microsoft Entra acquis pour le principal de service.
    • Allez un peu plus loin en utilisant l'authentification avec une identité managée si vous développez sur des ressources Azure. Les identités managées s’occupent de toutes les informations d’identification pour vous.
  • Utilisez les connexions de service : Les connexions de service vous permettent d'utiliser des principes de service dans un pipeline. Utilisez les connexions de service lorsque cela est possible pour se connecter en toute sécurité aux services sans passer directement des variables secrètes aux builds. Limiter les connexions à des cas d’usage spécifiques. Pour plus d’informations, consultez la section Connexions de service de portée dans cet article.
    • Authentifiez-vous auprès des ressources Azure à l’aide de la fédération d’identités de charge de travail avec un enregistrement d’application ou une identité gérée au lieu d’utiliser un enregistrement d’application avec un secret.

Alors qu’un compte de service reste utilisé :

  • Créer des comptes de service à usage unique : Chaque service doit disposer de son compte dédié pour réduire les risques. Évitez d’utiliser des comptes d’utilisateur standard comme comptes de service.
  • Identifier et désactiver les comptes de service inutilisés : Passez régulièrement en revue les comptes et identifiez ceux qui ne sont plus utilisés. Désactivez les comptes inutilisés avant d’envisager leur suppression.
  • Limiter les privilèges : Limitez les privilèges du compte de service au minimum nécessaire. Évitez les droits de connexion interactifs pour les comptes de service.
  • Utiliser des identités distinctes pour les lecteurs de rapports : Si vous utilisez des comptes de domaine pour les comptes de service, utilisez une identité différente pour les lecteurs de rapports afin d’isoler les autorisations et d’empêcher tout accès inutile.
  • Utiliser des comptes locaux pour les installations de groupe de travail : Lorsque vous installez des composants dans un groupe de travail, utilisez des comptes locaux pour les comptes utilisateur. Évitez les comptes de domaine dans ce scénario.
  • Surveillez l'activité des comptes de service : Mettez en œuvre l'audit et créez des flux d'audit pour surveiller l'activité des comptes de service.

Étendez les connexions de service.

Pour garantir un accès sécurisé et efficace aux ressources Azure, limitez correctement les connexions de service. Les connexions de service permettent à Azure DevOps de se connecter à des services et des ressources externes, et en définissant ces connexions, vous pouvez limiter l’accès uniquement aux ressources nécessaires et réduire le risque d’accès non autorisé.

  • Limiter l’accès : Limitez l’accès en définissant vos connexions de service Azure Resource Manager à des ressources et groupes spécifiques. N’accordez pas de droits de contributeur étendus sur l’ensemble de l’abonnement Azure.
  • Utilisez Azure Resource Manager : Authentifiez-vous auprès des ressources Azure à l’aide de la fédération d’identité de charge de travail avec une inscription d’application ou une identité managée au lieu d’utiliser une inscription d’application avec un secret. Pour plus d’informations, consultez Créer une connexion de service Azure Resource Manager qui utilise la fédération des identités de charge de travail.
  • Étendez les groupes de ressources : Assurez-vous que les groupes de ressources contiennent uniquement les machines virtuelles (VM) ou les ressources nécessaires au processus de construction.
  • Évitez les connexions de service classiques : Optez pour les connexions de service Azure Resource Manager modernes au lieu des connexions classiques, qui ne disposent pas d’options ciblées.
  • Utilisez des comptes de service d’équipe spécifiques à un usage particulier : Authentifiez les connexions aux services à l’aide de comptes de service d’équipe spécifiques afin de garantir la sécurité et le contrôle.

Pour plus d’informations, consultez Types de connexions de service courants.

Passer en revue les événements d’audit

L’audit peut être utilisé pour suivre les actions des utilisateurs, les modifications d’autorisations et les modèles d’utilisation au sein de votre organisation. Utilisez ces outils pour identifier et résoudre rapidement les incidents de sécurité potentiels.

  • Activer l’audit : Suivez et affichez les événements liés aux actions, autorisations, modifications et incidents de sécurité des utilisateurs.
  • Passez régulièrement en revue les journaux d’audit et les flux : Passez régulièrement en revue les journaux d’audit pour surveiller les activités des utilisateurs et détecter tout comportement suspect. Recherchez des modèles d’utilisation inattendus, en particulier par les administrateurs et d’autres utilisateurs. Cette action permet d’identifier les violations de sécurité potentielles et d’effectuer des actions correctives. En savoir plus sur les événements d’audit que nous suivons.
  • Configurer des alertes de sécurité : Configurez des alertes pour vous avertir des incidents de sécurité ou des violations de stratégie. Cette action garantit une réponse rapide aux menaces potentielles.

Sécuriser vos services

Pour garantir la sécurité et l’intégrité de vos services dans Azure DevOps, implémentez des mesures de sécurité pour chaque service. Ces mesures incluent la définition des autorisations, la gestion de l’accès et l’utilisation des fonctionnalités de sécurité propres à chaque service.

Automatiser l’analyse de la sécurité

Surveillez les vulnérabilités de code et de secret avec les outils de sécurité automatisés suivants :

  • Utilisez l’analyse et l’analyse du code : Utilisez des outils tels que Microsoft Defender pour analyser votre code pour détecter les vulnérabilités, les secrets et les configurations incorrectes.
  • Utilisez GitHub Advanced Security pour Azure DevOps : Identifiez les informations d’identification et les vulnérabilités dans votre code. Pour plus d’informations, consultez Configurer GitHub Advanced Security pour Azure DevOps.
  • Utilisez l’analyse des secrets natifs pour GitHub : Identifiez les secrets au sein du code à l’aide des fonctionnalités d’analyse natives de GitHub. Pour plus d'informations, consultez À propos de l'analyse des secrets.

Pour plus d’informations, consultez la vue d’ensemble de la sécurité avancée GitHub.

Automatiser l’administration de la sécurité avec des scripts PowerShell

Simplifiez les tâches de sécurité administratives à l’aide de scripts PowerShell pour automatiser la gestion des utilisateurs, l’audit et l’application des stratégies au sein de votre organisation Azure DevOps.

Scripts d’automatisation administrative disponibles

  • Audit de l’accès utilisateur : Auditer les autorisations utilisateur et identifier les risques de sécurité
  • Audit de sécurité de la connexion de service : Rechercher les problèmes de sécurité liés à la connexion
  • Gestion de la visibilité du projet : Automatiser les paramètres de projet public/privé
  • Gestion des utilisateurs et des groupes : Simplifier les processus de cycle de vie des utilisateurs

Pour obtenir des instructions détaillées sur l’implémentation, consultez Utiliser des scripts pour mettre à jour les paramètres de sécurité globaux.