Infrastructure, cloud et DevOps · Avancé

Gérer les secrets et les clés

En une ligne : Un secret dans le dépôt de code est un secret qui a fuité — même si le dépôt est privé, et même si vous l'avez supprimé après.

Où les stocker

Dans un magasin de secrets géré qui injecte des valeurs à l'exécution, avec des permissions par service et par environnement, et avec une journalisation des accès. Les variables d'environnement sont un mécanisme de transport, pas un lieu de stockage.

Rotation périodique

Chaque secret a besoin d'un processus de rotation qu'on peut exécuter en minutes. Cela est nécessaire quand quelqu'un part, lors d'une fuite suspectée, et de façon routinière. Si la rotation exige un temps d'arrêt, elle ne sera pas faite quand il le faudra.

Prenez en charge deux clés actives en parallèle pendant un moment bref, pour que la rotation soit fluide.

Prévenir une fuite à l'avance

Un scanner de secrets dans le processus de build et un hook avant de sauvegarder un changement, pour qu'un secret soit bloqué avant d'entrer dans l'historique. S'il est déjà entré — supposez qu'il a fuité, changez immédiatement, et seulement ensuite nettoyez l'historique.

Pour aller plus loin

Séparez absolument les secrets par environnement. Une clé de production accessible depuis un environnement de développement annule le sens de la séparation, et c'est ainsi que se produisent la plupart des fuites internes — pas malicieusement, mais via un script accidentellement pointé vers la mauvaise adresse.