Skip to content
acceptedAudienceSécuritéOpsAudit banqueOwner@platform-opsDernière revue2026-05-21

ADR-0008 — Doppler source de vérité secrets + External Secrets pour K8s

Status : Accepted Date : 2026-03 (rétroactif) Deciders : équipe plateforme Nex Tickets :

Contexte

Au démarrage, les secrets (DB passwords, API keys providers, clés Firebase) étaient distribués manuellement via .env et K8s secrets. Limitations :

  • Pas de source unique : .env.local, secret K8s, snippet partagé en chat — drift garanti.
  • Rotation impossible sans toucher chaque environnement à la main.
  • Pas d’audit des accès secrets.
  • Risque de fuite (.env poussé par erreur, copie en clair dans un canal Slack).

Décision

  1. Doppler est la source de vérité unique des secrets pour tous les environnements (dev, stg, prd).
  2. Projet Doppler : paywithnex. Configs : dev, stg, prd.
  3. Local : développeurs utilisent doppler run -- ou récupèrent un .env.local ponctuel (non versionné).
  4. CI : le pipeline GitLab pull les secrets via doppler CLI au moment du job.
  5. K8s : External Secrets Operator synchronise Doppler → K8s secrets dans les namespaces nex-staging et nex-production (Helm release external-secrets 0.14.4).
  6. Aucun secret ne vit dans Git, dans des images Docker, ou dans des fichiers de config K8s versionnés.

Conséquences

Positives

  • Source unique, audit des accès Doppler, rotation centralisée.
  • Onboarding dev : un seul accès Doppler à provisionner.
  • K8s manifests propres (uniquement les ExternalSecret CRDs).
  • Compatible avec les exigences ISO 27001 et SOC 2 sur la gestion des secrets.

Négatives / risques

  • Dépendance Doppler — panne Doppler = impossibilité de récupérer un secret. Mitigation : External Secrets cache les valeurs dans K8s, redémarrage de pods OK pendant la panne.
  • Coût Doppler.
  • Risque de mauvais scope (un dev ayant accès prd par erreur) — à mitiger par RBAC Doppler strict.

Alternatives écartées

  • AWS Secrets Manager — fonctionnel mais ergonomie moins fluide pour les devs, pas d’UI partagée multi-environnement.
  • HashiCorp Vault self-hosted — coût opérationnel élevé (HA, backups, rotation), pas le bon niveau de maturité plateforme.
  • K8s sealed-secrets — gestion des clés de scellement complexe, pas de UI.

Suivi

Nex — Plateforme fintech CEMAC