Mise à jour : 21 juillet 2025

Lecture : 8 min

Séparation des tâches et conformité avec GitLab : le guide

Maintenez la conformité sans compromettre la rapidité de développement grâce à votre plateforme DevSecOps.

Découvrez dans cet article les différentes façons de garantir la séparation des tâches ainsi que la sécurité et conformité logicielle continue avec la plateforme DevSecOps de GitLab. Avant de commencer, définissons tout d'abord ces deux concepts clés.

Qu’est-ce que la conformité ?

La conformité désigne le fait de respecter les directives et les spécifications définies par votre entreprise ou par un organisme réglementaire. Elle permet de préserver l'éthique de l'entreprise, d'appliquer des règles d'utilisation appropriées, de respecter les normes de sécurité et plus largement, de protéger les utilisateurs.

Il s'agit d'un aspect fondamental, car les manquements peuvent entraîner des sanctions juridiques et financières importantes. En plus d'assurer la conformité, les équipes DevSecOps doivent également conjuguer vélocité de développement soutenue, simplicité, visibilité et contrôle.

Qu’est-ce que la séparation des tâches ?

La séparation des tâches vise à confier une tâche à plusieurs acteurs afin de limiter les risques d'erreurs et de prévenir les activités malveillantes. Cela signifie que chaque tâche ne peut être effectuée que par les rôles les plus adaptés.

Prenons un exemple avec plusieurs rôles, chacun doté d'un objectif spécifique :

  • Un développeur est responsable de la création de nouvelles fonctionnalités.

  • Un responsable de la conformité est chargé de créer et d'imposer l'utilisation d'un pipeline CI/CD.

  • Un ingénieur en sécurité applicative a pour mission d'approuver les merge requests comportant des vulnérabilités.

En tenant compte de cette répartition des rôles, nous nous assurons qu'un développeur ne puisse pas modifier un pipeline CI/CD en cours d'exécution. Cette tâche est en effet réservée au responsable de la conformité, qui veille à ce que seul le code conforme puisse être fusionné sans nécessiter d'approbation supplémentaire.

L'ingénieur en sécurité applicative, quant à lui, est chargé de vérifier et d'approuver le code comportant des vulnérabilités. Il met en place les mesures d'atténuation appropriées afin d'éviter toute mauvaise surprise lorsque le code atteint l'environnement de production. Dans ce scénario, les équipes de développement ne peuvent pas fusionner le code tant que les exigences de conformité et de sécurité ne sont pas satisfaites.

Règles de sécurité

GitLab met à disposition de ses utilisateurs des règles de sécurité qui permettent aux équipes de sécurité d'exiger l'exécution de scans de sécurité conformément à une configuration spécifique, pour garantir que les scans n'ont pas été modifiés ou désactivés.

Les règles de sécurité peuvent être associées à des frameworks de conformité spécifiques et, dans ce cas, votre projet intègre des exigences de conformité plus strictes et nécessite une supervision supplémentaire. Ce label de conformité peut être créé dans Sécurisation > Centre de conformité > Frameworks au niveau de votre groupe principal.

Label du framework de conformité

Remarque : les labels de conformité ne peuvent être attribués qu'à des projets du groupe principal dans lequel ils sont créés.

Il existe trois types de règles : les règles d'exécution des scans, les règles d'approbation des merge requests et les règles d'exécution des pipelines.

  • Règles d'exécution des scans : elles exigent l'exécution de scans de sécurité à une fréquence prédéfinie ou à chaque pipeline du projet.

  • Règles d'approbation des merge requests : elles permettent de définir les mesures à prendre en fonction des résultats des scans, par exemple d'exiger l'approbation de l'équipe de sécurité avant tout merge.

  • Règles d'exécution des pipelines : elles imposent l'exécution de certains jobs CI/CD pour les projets concernés.

Vous pouvez les configurer dans l'Éditeur de règle de GitLab en suivant quelques étapes simples.

Règle d'exécution des scans

  1. Accédez à Sécurité et conformité > Politiques.

  2. Créez une nouvelle règle en cliquant sur le bouton Nouvelle règle.

  3. Sélectionnez Exécution des scans.

  4. Créez une règle. Dans cet exemple, nous créons une règle qui exige qu'un SAST soit configuré pour qu'un pipeline puisse s'exécuter.


name: force_sast

description: 'require sast to run'

enabled: true

rules:

- type: pipeline branches: - main actions:

- scan: sast

  1. Soumettez la règle en créant une merge request, puis fusionnez-la.

L'ensemble des modifications apportées à la règle d'exécution des scans sont appliquées par le biais d'un job en arrière-plan qui s'exécute toutes les 10 minutes. Patientez le temps nécessaire pour que les modifications prennent effet après leur commit.

  1. Essayez ensuite d'exécuter votre pipeline. Celui-ci ne s'exécutera que si le SAST est correctement défini dans le fichier YAML.

Remarque : vous pouvez également forcer l'exécution d'un SAST à intervalles réguliers. Consultez la documentation dédiée aux règles d'exécution des scans pour en savoir plus.

Règle d'approbation des merge requests

  1. Accédez à Sécurisation > Politiques.

  2. Créez une nouvelle règle en cliquant sur le bouton Nouvelle règle.

  3. Sélectionnez Règle d'approbation des merge requests.

  4. Définissez la portée de la règle.

  5. Créez une règle.

Création d'une règle d'approbation des merge requests

  1. Ajoutez l'action à effectuer.

Mise à jour de la séparation des tâches - image 2

Remarque : la règle d'approbation des merge requests est appliquée en fonction des règles que vous avez définies. Si celles-ci ne sont pas valides ou inexploitables, GitLab exige alors une approbation manuelle. Pour éviter ce blocage automatique, vous pouvez modifier le champ « Comportement par défaut en cas d'erreur » et le régler sur open.

Mise à jour de la séparation des tâches - image 3

  1. Soumettez votre règle d'approbation en créant une merge request, puis en la fusionnant.

  2. Créez ensuite une merge request distincte contenant des vulnérabilités.

  3. Vérifiez que la règle d'approbation des merge requests s'applique en consultant votre merge request.

Règle d'exécution des pipelines

Pour configurer une règle d'exécution des pipelines, vous devez d'abord créer un projet contenant les fichiers CI que vous souhaitez exécuter. Assurez-vous de limiter l'accès à l'équipe de sécurité et/ou à l'administrateur pour garantir la séparation des tâches.

Nous avons créé un projet intitulé « Conformité et déploiement », qui contient le fichier YAML que nous souhaitons appliquer.

  1. Accédez à Sécurisation > Politiques.

  2. Cliquez sur le bouton Nouvelle règle pour créer une nouvelle règle.

  3. Sélectionnez Règle d'exécution des pipelines.

  4. Définissez la portée de la règle.

  5. Ajoutez l'action à effectuer.

Création d'une règle d'exécution des pipelines

  1. Ajoutez des conditions.

  2. Créez une merge request pour soumettre cette règle, puis fusionnez-la.

  3. Essayez ensuite d'exécuter votre pipeline. Les étapes et les jobs spécifiques à cette règle s'afficheront alors dans votre pipeline.

Tableau de bord de gestion des audits et de la conformité

La conformité implique également de s'assurer qu'elle est réellement appliquée dans vos groupes/projets. GitLab dispose d'une fonctionnalité d'événements d'audit et de rapports de conformité pour vous assister dans ce processus.

La fonctionnalité d'événements d'audit permet aux propriétaires et administrateurs de GitLab de suivre les événements importants, tels que des actions précises effectuées par certains membres de l'équipe et l'heure à laquelle elles se sont produites.

Fonctionnalité d'événements d'audit de GitLab

Elle enregistre différents types d'actions par groupe et par projet, comme indiqué dans la documentation dédiée à la fonctionnalité d'événements d'audit. Vous pouvez accéder à cette fonctionnalité dans Sécurité et conformité > Événements d'audit.

Voici quelques exemples :

  • Un utilisateur a été ajouté à un projet ainsi qu’à ses autorisations.

  • Les autorisations d'un utilisateur affecté à un projet ont été modifiées.

  • Une variable CI/CD du projet a été ajoutée, supprimée, ou son statut de protection a été modifié.

  • Un utilisateur a été ajouté à un groupe ainsi qu’à ses autorisations.

  • Le nom ou le chemin d'accès d'un groupe a été modifié.

Les événements d'audit peuvent également être envoyés à un point de terminaison HTTP à l'aide du streaming d'événements d'audit. Découvrez comment mettre en œuvre le streaming des événements d'audit dans cette vidéo.

La fonctionnalité de respect des normes vous permet de suivre l'activité des merge requests d'un groupe. Elle fournit une vue d'ensemble de tous les projets du groupe.

Fonctionnalité de respect des normes dans GitLab

Grâce à ce rapport, vous pouvez :

  • Obtenir un aperçu des dernières merge requests pour chaque projet.

  • Vérifier si les merge requests ont été approuvées, et par qui.

  • Identifier les auteurs des merge requests.

  • Afficher le dernier résultat du pipeline CI/CD pour chaque merge request.

Le rapport de respect des normes est accessible dans le groupe principal en accédant à Sécurisation > Centre de conformité, puis en cliquant sur l'onglet Respect des normes.


Merci de votre intérêt pour cet article ! Découvrez plus d'informations sur la séparation des tâches au sein de GitLab sur cette page.

Votre avis nous intéresse

Cet article de blog vous a plu ou vous avez des questions ou des commentaires ? Partagez vos réflexions en créant un sujet dans le forum de la communauté GitLab.
Share your feedback

Plus de 50 % des entreprises du classement Fortune 100 font confiance à GitLab

Commencez à livrer des logiciels de meilleurs qualité plus rapidement

Découvrez comment la plateforme DevSecOps intelligente

peut aider votre équipe.