Automatiser l'export de son coffre-fort Bitwarden
Vous souhaitez effectuer des backups de votre coffre-fort Bitwarden ? Cet article est fait pour vous ! Une image Docker qui a été build par mes soins vous permettra de sauvegarder votre coffre-fort au cas où la plateforme SaaS est indisponible.
Présentation
Afin de stocker vos mots de passes dans un endroit sécurisé, les gestionnaires de mots de passes sont un très bon compromis et Bitwarden en est l'un des meilleurs.
Je vous laisse regarder d'autres articles sur la présentation de Bitwarden, car ce n'est pas le but de cet article, je vais uniquement vous présenter un moyen d'effectuer des sauvegardes de votre coffre-fort.
Comme la plupart des outils possédant une API, Bitwarden dispose de sa CLI afin de permettre d’interagir avec l'API plus facilement. Voici le projet Github officiel de la CLI :
La sauvegarde
En utilisant les fonctionnalités présentes dans la CLI, j'ai pu créer un script Bash qui effectue un export du coffre-fort Bitwarden en un format JSON
. Voici le projet Gitlab crée par mes soins qui stocke le code source de mon script Bash d'export ainsi que de mon image Docker
Voici également le lien de l'image Docker que je publie chaque semaine en suivant les nouvelles versions de la CLI Bitwarden grâce à une CI présente sur le projet Gitlab :
Cette image Docker exécute un script Bash qui effectue les actions suivantes :
- Synchronisation de la CLI vers le serveur
Bitwarden.com
(afin d'avoir une version du coffre-fort à jour) - Export
JSON
du coffre-fort Bitwarden dans le volume mentionné dans le.env
- Garde 14 jours de rétention de l'export
JSON
en supprimant tous les fichiersexport-bitwarden-*.json
dans le répertoire monté en volume Docker
Voici un exemple de fichier JSON
généré grâce à l'export :
J'ai fais en sorte de rendre compatible l'image Docker avec les architectures ARM pour pouvoir l'utiliser sur votre Raspberry PI !
Prérequis
- Aller dans les clés de son compte Bitwarden
2. Cliquer sur "Voir les clés API" et récupérer le client_id
, le client_secret
3. Modifier les variables d'environnements dans le fichier .env :
# Credentials
client_id_bitwarden=CLIENT_ID
client_secret_bitwarden=CLIENT_SECRET
masterpassword_bitwarden=MASTER_PASSWORD
# Directory of backup destination
VOLUME_DEST_EXPORT=YOUR_DIRECTORY_DEST
Déploiement
Docker-Compose
git clone https://gitlab.com/dynops/bitwarden-export.git
cd bitwarden-export
docker-compose up
Docker Run
docker run --rm -td \
-e client_id_bitwarden="CLIENT_ID" \
-e client_secret_bitwarden="CLIENT_SECRET" \
-e masterpassword_bitwarden='MASTER_PASSWORD' \
-v <VOLUME_DEST_EXPORT>:/export \
anomyn/bw-export
Voici les 2 types de déploiement possibles : Docker-Compose ou Docker Run.
Après cela, le conteneur ira créer l'export JSON
dans le répertoire monté en volume Docker.
Il est donc conseillé d'orchestrer l'exécution de ce conteneur quotidiennement, comme le nom de l'export correspond à la date du jour.
En espérant que cet article vous aura plu afin de sécuriser d'avantage vos données 😉