Date de publication : 16 octobre 2026
Temps de lecture : 9 min
Renforcez la sécurité des identifiants en limitant l'accès aux secrets utilisés lors du build aux jobs qui en ont besoin et en fournissant les secrets d'exécution depuis le même store. En disponibilité générale dans GitLab 19.5.

Les identifiants sont souvent créés dans les environnements de développement locaux des ingénieurs, puis copiés dans des variables CI/CD sans portée définie afin d'assurer le bon fonctionnement des pipelines. Stockée sous forme de valeur brute plutôt que de référence à un secret à portée limitée, une clé de signature est accessible à tous les jobs du pipeline, qu'il soit compromis ou non.
Mettre en place un coffre-fort autonome réduit cette exposition, mais exige de répercuter chaque modification apportée aux membres du projet, aux branches protégées et aux environnements de production. Lorsque le coffre-fort n'est plus synchronisé, un pipeline échoue ou le compte de service d'un agent conserve un accès dont il n'a plus besoin.
GitLab Secrets Manager renforce la sécurité des identifiants sans nécessiter un second modèle d'autorisations. Il est désormais en disponibilité générale dans GitLab 19.5 pour les abonnements GitLab Premium et GitLab Ultimate sur GitLab.com et GitLab Self-Managed, et le sera prochainement pour GitLab Dedicated. Basé sur OpenBao, il stocke les identifiants de build et d'exécution sous les mêmes autorisations et avec la même piste d'audit que votre code. Les équipes plateforme peuvent proposer aux équipes de développement un accès en libre-service aux secrets, tandis que les équipes sécurité disposent d'identifiants limités aux jobs qui les utilisent, ainsi que de l'identifiant du pipeline et du job à chaque lecture CI/CD.
« GitLab Secrets Manager nous permet de centraliser les secrets dans le CI/CD, Kubernetes et l'Infrastructure as Code sans avoir à déployer plusieurs coffres-forts ni à gérer des points d'intégration distincts. Il renforce également la sécurité de notre chaîne d'approvisionnement en limitant l'accès aux identifiants à certains utilisateurs et pipelines. » - Jeremy Nauta, Software Architect, OneTrust
Les agents peuvent effectuer des actions imprévisibles ; les équipes sécurité doivent donc considérer chaque job comme si ses agents allaient utiliser n'importe quel identifiant à leur portée. GitLab Secrets Manager restreint ce périmètre grâce au contexte dont dispose déjà GitLab pour chaque job : son projet, la branche sur laquelle il s'exécute, si cette branche est protégée et l'environnement qu'il cible.
Un développeur déclare le secret dont un job a besoin via le mot-clé secrets: dans le fichier .gitlab-ci.yml, et GitLab injecte la valeur uniquement dans les jobs qui la déclarent et entrent dans son champ d'application. Les conditions de portée acceptent des caractères génériques sur la branche et l'environnement, et se combinent : une règle peut ainsi exiger une branche protégée et un environnement de production/* avant qu'un job reçoive l'identifiant.
À l'intérieur du job, GitLab écrit la valeur dans un fichier temporaire et n'expose que son chemin d'accès, ce qui limite son exposition dans les sous-processus, les crash dumps et les données de télémétrie. GitLab masque la valeur dans les job logs et la supprime à la fin du job. Contrairement à une variable CI/CD, un secret n'est jamais lisible dans la configuration de votre projet. OpenBao chiffre les secrets au repos avec AES-256-GCM, de sorte qu'une copie de la base de données des secrets ne contient que du texte chiffré. Les jobs récupèrent les valeurs directement depuis OpenBao avec des jetons à durée de vie limitée associés à l'identité de chaque job, ce qui permet d'éviter que les secrets en clair ne se retrouvent dans l'application GitLab.
Découvrez comment démarrer avec GitLab Secrets Manager :
Lorsque le paquet npm axios a été compromis, un avis du SANS a recommandé aux équipes de « partir du principe que toutes les variables d'environnement des systèmes affectés avaient été exfiltrées » et d'étendre leurs investigations aux runners CI/CD et à l'infrastructure de build. Les équipes de réponse aux incidents ont dû déterminer quels identifiants chaque job affecté pouvait lire, comment en bloquer l'accès et quelles exécutions les avaient consultés.
Avec GitLab Secrets Manager, lorsqu'un job exécute une dépendance compromise, l'exposition se limite aux secrets que ce job a déclarés et était autorisé à lire. Pour remédier à ce type d'incident, il suffit de révoquer et de remplacer l'identifiant compromis, de mettre à jour la valeur dans GitLab Secrets Manager et d'auditer ce job pendant que les autres pipelines continuent de fonctionner. GitLab Secrets Manager vous permet de définir un rappel de rotation lors de la création d'un secret. Les identifiants dynamiques seront bientôt disponibles et fourniront un accès éphémère sans rotation manuelle.
GitLab transmet chaque événement de création, de lecture, de mise à jour et de suppression de secret vers vos destinations d'événements d'audit et enregistre les modifications dans la piste d'audit. Chaque lecture de pipeline inclut les identifiants du pipeline et du job, qui sont liés au commit, à l'utilisateur déclencheur et à la merge request, le cas échéant. Les équipes de réponse aux incidents et les auditeurs peuvent remonter d'une lecture jusqu'à la modification qui en est à l'origine, sans avoir à corréler les logs d'un système CI, d'un coffre-fort et d'un fournisseur d'identité. Les événements d'audit ne contiennent jamais les valeurs des secrets.
À mesure que les agents prennent en charge davantage de tâches, les équipes plateforme reçoivent de plus en plus de demandes concernant des pipelines et des comptes de service nécessitant des identifiants. Lorsque ces demandes s'accumulent, les équipes ont tendance à recourir à des autorisations générales et à des secrets partagés.
GitLab Secrets Manager utilise l'espace de nommage de GitLab comme limite d'isolation. Les projets héritent des secrets définis dans les groupes qui leur sont supérieurs ; vous ne définissez donc une information d'identification partagée qu'une seule fois. Les propriétaires accordent des autorisations de lecture, d'écriture et de suppression à des utilisateurs spécifiques ou à des rôles par défaut, en utilisant le même modèle d'appartenance que celui qui régit le code. Supprimez une personne ou le compte de service d'un agent d'un projet, et l'accès de cette identité aux secrets du projet prend fin.
Les équipes de développement accèdent aux secrets via les droits d'accès au projet dont ils disposent déjà. Lorsqu'une référence à un secret est rompue, ils la corrigent dans la même merge request que le code, sans avoir besoin d'un deuxième dépôt, d'un approbateur ou d'un ticket d'accès. Avec un identifiant géré à portée de main, moins de secrets se retrouvent dans des variables CI/CD trop larges, des fichiers locaux ou le dépôt.
Kubernetes, Terraform et les scripts disposent souvent de stores de secrets distincts, chacun avec son propre modèle d'accès et ses propres logs. GitLab Secrets Manager alimente les outils d'exécution à partir du même store que les pipelines, sous les mêmes autorisations et la même piste d'audit :
.tfvars et les variables CI/CD.Chaque outil d'exécution s'authentifie à l'aide d’un compte de service ou d'un jeton d'accès, et cette identité nécessite une appartenance au projet ainsi qu'une autorisation de lecture explicite pour le secret. GitLab émet alors un jeton distinct, valable cinq minutes, que l'outil utilise pour le récupérer.
L'usine logicielle gouvernée de GitLab connecte le code, les pipelines, les paquets et les secrets sur une seule plateforme, avec un modèle d'identité et un historique uniques de la façon dont une modification a été déployée en production. GitLab Dependency Firewall détermine quels paquets entrent dans un pipeline, GitLab Secrets Manager limite les identifiants auxquels le pipeline peut accéder, et GitLab Artifact Central gouverne ce que vous livrez.
GitLab Secrets Manager prend en charge deux des cinq étapes du GitLab Security Standard, le framework de GitLab permettant aux agents de gagner en autonomie : pour l'étape Authorize, il lie chaque job aux secrets que son identité et sa portée autorisent ; pour l'étape Respond, il transmet chaque événement CRUD.
La protection contre la publication de secrets bloque les commits contenant des identifiants avant qu'ils n'atteignent le dépôt, tandis que la détection des secrets identifie ceux qui se trouvent déjà dans votre code et votre historique. GitLab Duo Agent Platform trie les résultats de ces analyses et signale les faux positifs potentiels, afin que votre équipe ne révoque, ne renouvelle et n'audite que les véritables fuites.
Les intégrations existantes de GitLab pour HashiCorp Vault, AWS Secrets Manager, Azure Key Vault et Google Cloud Secret Manager continuent de fonctionner aux côtés de GitLab Secrets Manager, ce qui vous permet de migrer à votre propre rythme.
GitLab Secrets Manager est un module d'extension payant pour les abonnements GitLab Premium et GitLab Ultimate, facturé via GitLab Credits : 1 crédit par secret stocké par mois et 1 crédit par 2 500 opérations de lecture. Un contrat de licence entreprise est disponible pour les environnements air-gapped.
Pour identifier les premiers identifiants à migrer, exécutez l'outil d'audit des secrets pour les variables CI/CD, qui signale les variables susceptibles de contenir des identifiants. Un workflow de migration pour les variables CI/CD est en cours de développement.
Vous avez des suggestions ou des retours ? Partagez-les dans le ticket dédié à GitLab Secrets Manager.
Commencez votre essai gratuit
de 30 jours
Aucune carte de crédit requise.
Cet article de blog vous a plu ? Vous avez des questions ou des retours ? Donnez votre avis en créant un nouveau sujet sur le forum de la communauté GitLab.
Faites-nous part de vos commentairesCommencez à développer plus rapidement dès aujourd'hui
Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.