Comment sécuriser le pipeline CI/CD lui-même ?
Réponse courte
Traitez le pipeline comme une infrastructure de production : il détient les identifiants pour livrer le code et atteindre la prod, donc le compromettre contourne tous les contrôles en aval. Durcissez-le avec des runners isolés et éphémères ; des tokens à privilège minimal et courte durée (fédération OIDC au lieu de secrets à longue durée) ; des branches protégées et une config de pipeline revue ; des actions tierces épinglées par empreinte ; et une journalisation d'audit complète. Le pipeline est une cible de premier ordre, pas de la tuyauterie.
Un pipeline CI/CD détient les clés du royaume : il peut lire toutes vos sources, construire et signer des artefacts, et déployer en production. Si un attaquant possède le pipeline, chaque scanner et barrière en aval est sans objet. Vous le défendez donc comme la production.
Isolez et rendez les runners éphémères
Les runners de build exécutent du code arbitraire — y compris, sur les dépôts publics, du code provenant de pull requests non fiables. Utilisez des runners éphémères détruits après chaque job pour que rien ne persiste entre les builds, et isolez-les de votre réseau interne et les uns des autres. N'exécutez jamais de builds de PR non fiables avec des identifiants privilégiés.
Identifiants à privilège minimal et courte durée
Le plus grand gain est d'éliminer les secrets à longue durée. Au lieu de stocker une clé cloud permanente dans la CI, utilisez la fédération OIDC : le pipeline présente un token à courte durée et à portée de charge de travail que le fournisseur cloud échange contre des identifiants temporaires. Les tokens doivent avoir une portée étroite (ce job, ces ressources, lecture vs écriture) et expirer vite, pour qu'un token fuité soit quasiment sans valeur.
Protégez la définition du pipeline
La config du pipeline est du code avec accès à la production. Mettez-la sous branches protégées avec revue requise, pour que personne ne puisse ajouter discrètement une étape qui exfiltre des secrets. Épinglez les actions/plugins tiers à une empreinte de commit (pas un tag modifiable) — une action non épinglée peut être repointée vers du code malveillant qui s'exécute avec les permissions de votre pipeline. C'est exactement ainsi que de vrais incidents de chaîne d'approvisionnement se sont déroulés.
Auditez tout
Journalisez qui a déclenché quoi, quels identifiants ont été utilisés, et ce qui a été déployé. Vous ne pouvez pas détecter ni enquêter sur un abus de pipeline que vous n'avez pas enregistré.
Ce que recherchent les recruteurs
Ils veulent que vous cadriez le pipeline comme une cible de premier ordre, que vous meniez avec l'OIDC et le privilège minimal plutôt que les secrets stockés, et que vous mentionniez les runners éphémères et les dépendances épinglées — les contrôles derrière les récentes compromissions CI/CD réelles.
Questions de suivi probables
- Pourquoi préférer la fédération OIDC au stockage de clés cloud à longue durée dans la CI ?
- Quel est le risque d'une action CI tierce non épinglée ?
- Comment une pull request malveillante peut-elle abuser d'un runner mal configuré ?