Ressources de pipeline

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

Azure Pipelines offre une sécurité qui va au-delà de la protection du fichier YAML et du code source. Quand les pipelines YAML s’exécutent, l’accès aux ressources passe par un système de vérifications. Les vérifications peuvent interrompre ou même faire échouer une exécution de pipeline afin de sécuriser les ressources. Un pipeline peut accéder à deux types de ressources, protégées et ouvertes.

Ressources protégées

Vos pipelines ont souvent accès aux secrets. Par exemple, pour signer votre build, vous avez besoin d’un certificat de signature. Pour déployer sur un environnement de production, vous avez besoin des informations d’identification de cet environnement. Azure Pipelines nécessite le rôle Administrateur lors de l’ouverture de l’accès à une ressource à tous les pipelines pour toutes les ressources protégées, à l’exception des environnements. Pour Les environnements, vous aurez besoin du rôle Créateur . En savoir plus sur la protection des ressources.
Dans Azure Pipelines, les éléments suivants sont considérés comme des ressources protégées dans les pipelines YAML :

Une ressource est « protégée » quand :

  • Elle est accessible à des utilisateurs spécifiques et à des pipelines spécifiques au sein du projet. Elle n’est pas accessible aux utilisateurs et aux pipelines en dehors d’un projet.
  • Vous pouvez exécuter d’autres vérifications manuelles ou automatisées chaque fois qu’un pipeline YAML utilise une de ces ressources. Pour en savoir plus sur les ressources protégées, consultez À propos des ressources de pipeline.

Protection des ressources de dépôt

Les dépôts peuvent éventuellement être protégés. Au niveau de l’organisation ou du projet, vous pouvez choisir de limiter l’étendue du jeton d’accès Azure Pipelines aux dépôts mentionnés. Dans ce cas, Azure Pipelines ajoute deux protections supplémentaires :

  • Le jeton d’accès donné à l’agent pour l’exécution des travaux a uniquement accès aux dépôts explicitement mentionnés dans la section resources du pipeline.
  • Les dépôts ajoutés au pipeline doivent être autorisés par une personne ayant un accès de contributeur sur le dépôt la première fois que le pipeline utilise le dépôt.

Ce paramètre est activé par défaut pour toutes les organisations créées après mai 2020. Les organisations créées auparavant doivent l’activer dans Paramètres de l’organisation.

Ressources ouvertes

Toutes les autres ressources d’un projet sont considérées comme des ressources ouvertes. Les ressources ouvertes sont les suivantes :

  • Artifacts
  • Pipelines
  • Plans de test
  • Éléments de travail

Pour connaître les pipelines spécifiques qui peuvent accéder aux ressources spécifiques, consultez la section sur les projets.

Autorisations utilisateur

La première ligne de défense pour les ressources protégées sont les autorisations utilisateur. En général, veillez à accorder des autorisations uniquement aux utilisateurs qui en ont besoin. Toutes les ressources protégées ont un modèle de sécurité similaire. Un membre du rôle utilisateur pour une ressource peut :

  • Supprimer les approbateurs et les vérifications configurés sur cette ressource
  • Accorder l’accès à d’autres utilisateurs ou pipelines pour utiliser cette ressource

Capture d’écran des autorisations utilisateur sur les pipelines

Autorisations de pipeline

Quand vous utilisez des pipelines YAML, les autorisations utilisateur ne sont pas suffisantes pour sécuriser vos ressources protégées. Vous pouvez facilement copier le nom d’une ressource protégée (par exemple, une connexion de service pour votre environnement de production) et l’inclure dans un autre pipeline. Les autorisations de pipeline protègent contre cette copie. Pour chacune des ressources protégées, vérifiez que vous avez désactivé l’option permettant d’accorder l’accès à « tous les pipelines ». À la place, accordez explicitement l’accès à des pipelines spécifiques auxquels vous faites confiance.

Capture d’écran des autorisations de pipeline

Vérifications

Dans le code YAML, une combinaison d’autorisations utilisateur et de pipeline n’est pas suffisante pour sécuriser entièrement vos ressources protégées. Les autorisations de pipeline sur les ressources sont accordées à l’ensemble du pipeline. Rien n’empêche un adversaire de créer une autre branche dans votre dépôt, d’injecter du code malveillant et d’utiliser le même pipeline pour accéder à cette ressource. Même sans intention malveillante, la plupart des pipelines ont besoin d’une autre paire d’yeux sur les changements (en particulier pour le pipeline lui-même) avant le déploiement en production. Les vérifications vous permettent de mettre en pause l’exécution du pipeline tant que certaines conditions ne sont pas remplies :

  • Vérification d’approbation manuelle. Chaque exécution qui utilise une ressource protégée par un projet doit attendre votre approbation manuelle avant de continuer. La protection manuelle vous permet de réviser le code et de vérifier qu’il vient de la branche appropriée.
  • Vérification de branche protégée. Si vous avez des processus de révision de code manuels pour certaines de vos branches, vous pouvez étendre cette protection aux pipelines. Configurez une vérification de branche protégée sur chacune de vos ressources. Cela empêche automatiquement votre pipeline de s’exécuter par-dessus les branches utilisateur.
  • Vérification de ressource protégée Vous pouvez ajouter des vérifications aux environnements, aux connexions de service, aux dépôts, aux groupes de variables, aux pools d’agents, aux groupes de variables et aux fichiers sécurisés afin de spécifier des conditions qui doivent être remplies pour qu’une étape d’un pipeline puisse consommer une ressource. En savoir plus sur les vérifications et approbations.

Capture d’écran de la configuration des vérifications

Étapes suivantes

Ensuite, voyez comment regrouper les ressources dans une structure de projet.