Automatiser l'export de son coffre-fort Bitwarden

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 :

GitHub - bitwarden/cli: The command line vault (Windows, macOS, & Linux).
The command line vault (Windows, macOS, & Linux). Contribute to bitwarden/cli development by creating an account on GitHub.

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

Matthieu Calasin / bitwarden-export · GitLab
GitLab.com

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 :

Docker

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 fichiers export-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

  1. 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 😉