ADR-0013 : Vaultwarden comme gestionnaire de mots de passe d’équipe
| Statut | Accepté |
| Date | 2025-11 |
| Décideurs | Équipe Edukit (dev + ops) |
| Périmètre | Gestion des mots de passe et credentials de l’équipe |
Contexte
L’équipe Edukit manipule de nombreux mots de passe et credentials : tokens d’accès Proxmox, clés SSH, mots de passe de bases de données, credentials Keycloak… Sans outil dédié, ces informations finissent dans des fichiers partagés, des messages Slack ou des emails - ce qui est risqué et difficile à gérer.
Il faut un gestionnaire de mots de passe d’équipe qui :
- stocke les credentials de façon chiffrée ;
- permette de les partager entre membres de l’équipe avec des droits par périmètre ;
- soit gratuit ou peu coûteux.
Décision
Utiliser Vaultwarden (implémentation open source compatible avec l’application Bitwarden) comme gestionnaire de mots de passe d’équipe.
- Vaultwarden est hébergé chez Fartcorp, qui assure son exploitation et sa disponibilité.
- Les membres de l’équipe accèdent aux mots de passe via le client Bitwarden (application de bureau, extension navigateur) connecté à cette instance.
- Les credentials sont organisés en collections par périmètre (Proxmox, bases de données, Keycloak, réseau…) avec des droits d’accès par groupe - chacun ne voit que ce dont il a besoin.
Vaultwarden est un outil de gestion de mots de passe pour l’équipe, pas un mécanisme d’injection automatique de secrets dans les applications. Les Kubernetes Secrets et variables d’environnement des services sont gérés séparément.
Conséquences
Bénéfices
- Compatible Bitwarden : Vaultwarden implémente la même API que le serveur Bitwarden officiel. Tous les clients Bitwarden fonctionnent - pas besoin d’un client spécifique.
- Gratuit : Vaultwarden est open source (AGPLv3). Bitwarden Teams, l’alternative SaaS, coûte par utilisateur.
- Partage structuré : les collections et les groupes permettent de donner accès uniquement à ce dont chaque personne a besoin.
- Hébergement délégué : Fartcorp s’occupe de l’exploitation, des mises à jour et de la disponibilité - pas de charge opérationnelle pour l’équipe.
- Proposé par un prestataire expérimenté : la recommandation vient d’un prestataire qui l’a déjà déployé, ce qui réduit le risque de mise en œuvre.
Coûts et limites
- Projet communautaire, non audité par Bitwarden : le serveur Bitwarden officiel fait l’objet d’audits de sécurité annuels. Vaultwarden est un projet open source communautaire - il faut surveiller les mises à jour de sécurité publiées par Fartcorp.
- Dépendance à Fartcorp : la disponibilité de l’outil dépend de l’hébergeur. Si l’instance est inaccessible, l’équipe ne peut plus consulter les credentials.
- Pas d’injection automatique : Vaultwarden n’est pas intégré avec Kubernetes. Quand un Kubernetes Secret doit être créé ou mis à jour, un opérateur le fait manuellement en lisant la valeur dans Vaultwarden.
Alternatives écartées
- HashiCorp Vault : outil de référence pour la gestion de secrets en environnement cloud-native. Il peut injecter des secrets directement dans Kubernetes, gérer la rotation automatique, jouer le rôle d’autorité de certification… Mais son installation et son opération sont bien plus complexes (cluster dédié, procédure de déverrouillage au démarrage). Ce niveau de complexité n’est pas justifié pour un usage de gestionnaire de mots de passe d’équipe.
- Bitwarden (SaaS officiel) : fonctionnellement identique à Vaultwarden, mais avec un coût par utilisateur. Écarté pour des raisons de coût.
- Fichiers
.envpartagés : souvent utilisé dans les petites équipes au démarrage, mais sans chiffrement, sans traçabilité et sans contrôle d’accès. Pas adapté à une infrastructure en production.
Références
- Documentation OPS : Templates Proxmox cloud-init - liste les entrées Vaultwarden
vmservice-proxmox-api-tokenetvmservice-proxmox-ssh. - ADR-0010 : ArgoCD déploie les services Edukit via GitOps.