Passbolt
Mise à jour :
Passbolt est un gestionnaire de mot de passe centralisé open-source qui peut se
positionner comme alternative à Vault dans un environnement Devops.
En effet, il offre même dans sa Communauty Edition une CLI
et une API JSON. À souligner, cette application est made in Europe
puisque
l’éditeur est basé au Luxembourg.
Le code est disponible sur github ↗ et a été entièrement audité par Cure53 ↗, une société de cybersécurité indépendante basée en Allemagne. Les rapports sont librement accessibles sur cette page ↗.
Présentation de Passbolt Communoty Edition
On retrouve également dans cette version CE :
- la gestion des utilisateurs et groupes,
- le partage des mots de passe,
- un bon générateur de mots de passe offrant un niveau de complexité suffisant,
- une politique de rotation des mots de passe,
- la gestion de favoris,
- une fonction de recherche,
- des notifications par email,
- l’import/export keypass,
- des extensions de navigateur : chrome, firefox, edge,
- l’application mobile
- une interface en français
Par contre, pour accéder par exemple à l’authentification multi-facteur, les journaux d’activités ou encore le support LDAP, il faudra se tourner soit vers la version PRO pour 30€ par mois pour 10 utilisateurs, soit vers la version cloud pour 9€ par mois pour 3 utilisateurs (puis 3€ par utilisateurs supplémentaires) mais sans le support LDAP.
Je vous propose de voir comment tester cette solution de gestion de mots de passe dans sa version CE.
Test de Passbolt
Il existe plein de méthodes pour tester Passbolt
sans se prendre la tête. Il
est par exemple possible d’utiliser une machine Vagrant
, le Vagrantfile
est
fourni, en utilisant un script Bash
qui se charge de tout installer. Il est
aussi possible d’utiliser une ou des image(s) Docker ou de faire l’installation
manuellement ↗ via un package
disponible pour la majorité des distributions. Il existe aussi des images
distroless
, bien pratique si vous faites le choix de l’installer dans un cluster
Kubernetes
Je vais tester la première solution.
Pour récupérer le Vagrantfile c’est par là ↗.
Avant de le lancer un petit coup d’œil au contenu du Vagrantfile :
Difficile de faire plus simple non ? Mais je vais changer de box de base, car
les bento
ne fournit pas d’images pour libvirt
. Donc, ce sera plutôt une
generic/debian11
.
C’est parti :
Efficace. Merci Jean Christophe Vassort ↗
Je clique que le lien et il me propose direct d’installer l’extension Chrome.
Suivant, le mot de passe admin un kit de récupération, un jeton composé de trois lettres + une couleur et hop, c’est prêt. Je crée un premier mot de passe.
Je crée un premier mot de passe en cliquant sur [Créer].
Accès aux mots de passe depuis un playbook Ansible
Tout est bien documenté et en conséquence je m’appuie sur le
billet ↗
du même auteur du VagrantFile
.
On installe le rôle depuis ansible-galaxy
et le module python
py-passbolt :
Récupérons les informations nécessaires à la connexion au serveur passbolt
. Il
faut dans le profil utilisateur puis dans le menu [Inspecteur de clé] et cliquer
sur [Privé].
Nous allons chiffrer les données avec Ansible-Vault. Pour cela, on va aussi
créer un fichier de mot de passe nommé vault_pass
et une configuration Ansible
dont voici le contenu :
On encode les informations
On crée l’inventaire :
On y met ce contenu :
Maintenant le playbook qu’on example-playbook.yml
:
Allez on teste :
Cool, on a nos infos. Pour récupérer directement un champ, il suffit d’ajouter le nom du champ après le lookup :
Il y a quelques exemples dans le playbook ↗ fourni par JC.
Utilisation de la CLI go-passbolt
Maintenant, on teste la CLI de passbolt. Le code se trouve ici ↗.
Installons le package debian, d’autres sont disponibles, sur ma machine :
Maintenant configurons l’accès :
Maintenant récupérons notre user/mdp :
Vraiment sympa ce gestionnaire de mots de passe centralisé. Une belle alternative à Vault pour la gestion des mots de passes. Reste plus qu’à créer une stack sur AWS ou GCP avec de la redondance en utilisant Terraform par exemple, ou le monter dans un cluster kubernetes.