Vaultwarden: 自宅で安全にパスワードを管理するBitwarden互換サーバー

## はじめに

Vaultwardenは、**Rust**で記述されたBitwarden Client APIと互換性のあるオープンソースのパスワードマネージャーサーバーです。公式Bitwardenサービスよりもリソース消費が少なく、自宅サーバーで安全にパスワードを管理したいユーザーに最適なソリューションを提供します。公式のBitwardenクライアント（デスクトップ、モバイル、ブラウザ）と完全に互換性があるため、既存のワークフローをそのまま維持できます。

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">自宅でホストできるBitwarden互換パスワードマネージャー「Vaultwarden」を動かしてみた！<br>普通に使いやすい！<br>これは会社にも是非導入したい <a href="https://t.co/lt8Ve97BqT">https://t.co/lt8Ve97BqT</a> <a href="https://t.co/yvXQb3Lx43">pic.twitter.com/yvXQb3Lx43</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1855291100208230549?ref_src=twsrc%5Etfw">November 9, 2024</a></blockquote> 

## 🎯 主要機能

Vaultwardenは、Bitwarden Client APIのほぼ完全な実装を提供し、以下の機能を備えています。

* **個人用Vault**: パスワード、クレジットカード情報、メモなどの個人情報の安全な保管。
* **Send**: セキュアなパスワード共有機能。
* **添付ファイル**: パスワードエントリへのファイル添付機能。
* **ウェブサイトアイコン**: ウェブサイトのファビコン表示機能。
* **個人APIキー**:  **API**経由でのVaultwardenへのアクセスを制御するためのキー。
* **組織管理**:  組織アカウント、コレクション、パスワード共有、メンバーロール、グループ、イベントログ、管理者パスワードリセット、ディレクトリコネクタ、ポリシー管理など、大規模なチームでのパスワード管理をサポートします。
* **多要素認証(MFA)/二要素認証(2FA)**: **Authenticatorアプリ**, **メール**, **FIDO2 WebAuthn**, **YubiKey**, **Duo**など、様々な認証方法をサポートし、セキュリティを強化します。
* **緊急アクセス**: 緊急時に指定したユーザーにVaultへのアクセスを許可する機能。
* **Vaultwarden管理バックエンド**: サーバーの管理、設定変更を行うための管理画面。
* **修正版Web Vaultクライアント**:  コンテナにバンドルされたWeb Vaultクライアント。


## 💻 技術スタック

* **プログラミング言語**: Rust
* **データベース**: SQLite (デフォルト) 、PostgreSQL、MySQL
* **コンテナ化**: Docker, Podman
* **パッケージマネージャー**: Cargo


## 🚀 ユースケース

* **個人**:  自分のパスワードを安全に管理したい個人ユーザー。
* **家族**: 家族でパスワードを共有したい家庭。
* **小規模組織**:  従業員間でのパスワード管理を簡素化したい小規模組織。
* **開発者**:  **Bitwarden API**を利用したアプリケーション開発のテスト環境として。


## 📦 インストール方法

Vaultwardenは主に**Docker**または**Podman**イメージを使用してインストールします。**ghcr.io**, **docker.io**, **quay.io**からイメージを取得できます。コミュニティが提供するパッケージも存在しますが、最新バージョンや設定方法が異なる可能性があります。


## 🔧 使用方法

### Docker/Podman CLIによるインストール

```bash
docker pull vaultwarden/server:latest
docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 80:80 \
  vaultwarden/server:latest
```

`/vw-data/` ディレクトリは永続的なデータ保存に使用されます。必要に応じてパスを変更してください。`docker`を`podman`に置き換えることでPodmanを使用することもできます。


### Docker Composeによるインストール

`docker-compose.yml`ファイルを作成し、以下の設定でVaultwardenコンテナを実行します。

```yaml
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vw.domain.tld"
    volumes:
      - ./vw-data/:/data/
    ports:
      - 80:80
```

**HTTPS**の使用を強く推奨します。**Let's Encrypt**などの**SSL証明書**を取得するか、**mkcert**などのツールで自己署名証明書を生成して設定してください。**リバースプロキシ**を使用することも可能です。


## 📈 パフォーマンスと特徴

* **軽量**: 公式Bitwardenサーバーと比較してリソース消費が少なく、低スペックのサーバーでも動作します。
* **セキュリティ**: **Rust**の高い安全性と、多要素認証のサポートにより、高いセキュリティレベルを実現します。
* **オープンソース**: ソースコードが公開されており、自由に修正・再配布できます。
* **コミュニティサポート**: 活発なコミュニティがあり、サポートが受けやすいです。


## 🌟 まとめ

Vaultwardenは、安全で手軽にパスワードを管理できる自己ホスト型のBitwarden互換サーバーです。**Rust**による高い信頼性と、**Docker**による容易な導入、そして豊富な機能により、個人から小規模組織まで幅広いユーザーに適したソリューションと言えます。ただし、データ損失のリスクを理解し、定期的なバックアップを実施することが重要です。


## リポジトリ

https://github.com/Sunwood-ai-labs/vaultwarden-docker-compose

## 原点

https://github.com/dani-garcia/vaultwarden


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>