【2026年版】Vaultwardenのインストールと日本語化:Dockerで構築する最強のパスワード管理
目次
「共有のパスワードは、総務の『黒いノート』に書いてあります」 「このサービスのログインPWは、いつもの『会社名+設立年』です」
笑い話のようですが、これこそが中小企業のリアルなセキュリティ現場です。 入退社があるたびにパスワードを変更しなければならないのに、面倒だからそのまま放置する。あるいは、社員が個人で契約したサービスのパスワードは誰も把握しておらず、退職と共にアクセス不能になる。 そして極め付けは、メールやチャットで平然とやり取りされる平文のパスワード。
「パスワード管理ツールを入れたい」と経営層に提案しても、「1Password」や「LastPassword」のようなサブスクリプション費用(月額数百円×人数)が壁となり、「Excelで管理すればいいだろう」と却下される。 そんな 「コストとセキュリティの板挟み」に悩む一人情シスへの最適解が、OSSである『Vaultwarden』です。
Vaultwardenは、世界的に評価の高いパスワード管理ツール「Bitwarden」のサーバーサイドを、Rust言語で軽量に再実装した互換プロジェクトです。本家Bitwardenの公式クライアント(ブラウザ拡張、スマホアプリ)をそのまま利用でき、かつライセンス費用ゼロで、自社管理のセキュアなパスワード保管庫を構築できます。
1. なぜ「Excel管理」と「ブラウザ保存」がダメなのか
技術的な構築に入る前に、なぜ現状の運用が破綻しているのかを言語化しましょう。経営層への説得材料として使ってください。
Excel管理の限界:同期と権限の欠如
- 同時編集が怖い: 誰かが開いていると「読み取り専用」になり、更新が競合する。
- コピペミス: セルを選択してコピーする際に余計なスペースが入る。
- 権限分離不能: 「経理部のパスワード」と「全社員用Wi-Fiパスワード」を同じファイルに書けば、アクセス権限を分けられない。シートを分けてもファイル自体へのアクセス権は一つ。
ブラウザ保存の罠:シャドーITの温床
- 端末依存: Chromeに保存したパスワードは、個人のGoogleアカウントに紐づきます。会社のアカウントだとしても、そのPCが壊れたら、あるいは退職時にログアウトされたら、組織としての資産(パスワード)は消滅します。
- 流出リスク: マルウェアの多くは、ブラウザに保存されたパスワードファイルを真っ先に狙います。
Vaultwarden (Bitwarden) が解決すること
- ゼロ知識アーキテクチャ: サーバー上には「暗号化されたデータ」しか保存されません。たとえサーバー管理者のあなたであっても、マスターパスワードを知らない限り中身を見ることはできません。
- 組織(Organization)機能: 「経営層」「開発部」「全社員」といったグループを作成し、フォルダごとに「誰に見せるか」を制御できます。
- デバイスフリー: PC、Mac、iPhone、Android、Linux。あらゆるデバイスで同期されます。
Vaultwardenのインストール:Docker Composeによる構築手順
それでは、実際に構築していきます。 Vaultwardenは非常に軽量で、Raspberry Piのような低スペックマシンでも数人の組織なら余裕で動作します。
前提条件:
- DockerおよびDocker ComposeがインストールされたLinuxサーバー
- 必須: SSL/TLS環境(独自ドメイン + Let’s Encrypt等)。
- 重要: Bitwardenクライアントは、セキュリティ上の理由から HTTPS 以外の接続を拒否します。ローカルIPであっても http では動作しません。必ずHTTPS化してください。
ディレクトリ構成
vaultwarden/
├── docker-compose.yml
└── .env
docker-compose.yml
今回は、リバースプロキシ(Caddy)を含めた構成例を紹介します。Caddyを使うと、Let’s Encryptの証明書取得・更新を全自動で行ってくれるため、SSL運用の手間がゼロになります。
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- WEBSOCKET_ENABLED=true # 即時同期のためにWebSocketを有効化
- SIGNUPS_ALLOWED=true # 初期登録時はtrue、運用開始後はfalse推奨
- ADMIN_TOKEN=secure_admin_token_here_change_me # 管理画面用トークン(必ず変更!)
- INVITATIONS_ALLOWED=true # 招待制にする場合
volumes:
- ./vw-data:/data
networks:
- vault-net
caddy:
image: caddy:2
container_name: caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- vault-net
volumes:
caddy_data:
caddy_config:
networks:
vault-net:
driver: bridge
Caddyfile
同ディレクトリに Caddyfile という名前のファイルを作成します。
your-domain.com {
encode gzip
# Vaultwardenへのリバースプロキシ設定
reverse_proxy vaultwarden:80 {
# WebSocket対応ヘッダー
header_up X-Real-IP {remote_host}
}
}
※ your-domain.com は実際に使用するドメインに書き換えてください。
起動手順
# 1. コンテナ起動
docker compose up -d
# 2. ログ確認
docker compose logs -f
起動して数秒で、CaddyがSSL証明書を取得し、https://your-domain.com でアクセス可能になるはずです。
3. 初期設定と運用の勘所
日本語化について
Vaultwarden(Bitwarden互換)のWeb UIは、標準で 日本語に対応しています。
通常はブラウザの言語設定を自動検出して日本語になりますが、もし英語のままの場合は、ログイン画面の「Settings」またはログイン後の「設定」から言語を手動で「日本語」に変更可能です。
ただし、管理者用ダッシュボード(/admin)だけは英語のみとなりますが、日常的な運用でそこを頻繁に触る必要はないため、実運用上の支障はありません。
アカウント作成と招待
トップページから「アカウント作成」を行い、最初のユーザー(管理者)を作ります。
その後、docker-compose.yml の SIGNUPS_ALLOWED=false に変更して再起動することを強くお勧めします。誰でもアカウントを作れる状態を避けるためです。
以降のユーザー追加は、管理者画面(/admin)からの「招待(Invitation)」機能を使います。
SMTP設定(パスワード忘れ対策はできないが、招待に必須)
Vaultwardenでは、 マスターパスワードを忘れた場合、復旧は不可能です(ゼロ知識証明のため)。 しかし、ユーザー招待メールを送ったり、管理者がログイン通知を受け取るためにSMTP設定は必須です。GmailのSMTPや、Amazon SESなどを設定しましょう。
.env または docker-compose.yml に以下を追加:
- SMTP_HOST=smtp.gmail.com
- [email protected]
- SMTP_PORT=587
- SMTP_SSL=true
- [email protected]
- SMTP_PASSWORD=your-app-password
バックアップは命
パスワードデータが消えたら会社が止まります。
/vw-data ディレクトリ(特に db.sqlite3 と rsa_key* ファイル)は、絶対に消えないようにバックアップしてください。
簡単なシェルスクリプトで、S3などに毎日転送する仕組みを作るのが良いでしょう。
#!/bin/bash
# Simple Backup Script
tar czf /backup/vw-backup-$(date +%F).tar.gz /path/to/vaultwarden/vw-data
# ここにrcloneなどでクラウドへアップロードするコマンドを追加
4. 中小企業における「パスワード共有」の運用ルール
ツールを入れただけでは解決しません。 「誰が」「どのパスワードを」「どう扱うか」のルールが必要です。
ルール1:マスターパスワードは「長文(パスフレーズ)」にする
マスターパスワードだけは、Vaultwardenに保存できません(鍵そのものだからです)。
そして、これが破られたら全て終わりです。
「P@ssword123」のような複雑な文字列ではなく、「Tokyo Sky Tree Is Very High 2024」のような、覚えやすく総当たりに強い パスフレーズを推奨しましょう。
ルール2:個人領域と組織コレクションを使い分ける
- 個人領域: 自分の社用メール、個人指名のチャットアカウントなど、他人と共有しなくていいもの。
- 組織(コレクション): AWSのルートアカウント、共有Twitter、Wi-Fiパスワードなど。
これらを混同しないよう指導します。特に退職時、個人領域にある「実は共有が必要だったパスワード」が道連れになるのを防ぐため、業務で使うものは最初から「組織」に入れる癖をつけさせます。
ルール3:2要素認証 (2FA) の強制
マスターパスワードが漏れた時の最後の砦です。 Vaultwardenは、Google AuthenticatorなどのTOTPアプリに加え、YubiKey(WebAuthn)にも対応しています。 全社員にスマホアプリでの2FA設定を強制し、管理者はYubiKeyを持つ。これが最低ラインです。
5. まとめ
パスワード管理は、セキュリティの「一丁目一番地」です。 高価なAIセキュリティツールやEDRを入れる前に、足元の「admin/admin」を撲滅するのが先決です。
Vaultwardenは、その強力な機能と利便性で、社員の「面倒くさい」という心理的ハードルを下げることができます。 「パスワードを覚えなくていい」「自動入力でログインが1秒で終わる」という 体験の向上こそが、セキュリティツール定着の鍵です。
今日から、Excelのパスワード台帳をゴミ箱に捨て、セキュアで快適なパスワード管理ライフを始めましょう。
AIへの確認用プロンプト
この記事の内容を自社に適用する際のリスクや運用フローを具体化するために、以下のプロンプトをAI(ChatGPTやClaudeなど)に入力して相談してみてください。
あなたはセキュリティと運用設計に強いITコンサルタントです。
現在、私の会社(社員数30名)ではパスワードをExcelで管理していますが、記事を参考にOSSの「Vaultwarden」への移行を検討しています。
経営層に対し、コストメリットだけでなく「セキュリティリスクの低減」を論理的に説明し、かつ現場社員がスムーズに移行できるための導入計画を作成したいと考えています。
以下の点についてアドバイスください。
1. **リスク評価 **: 自社サーバー(Docker)でパスワードを管理することの「新たなリスク(可用性、攻撃対象化)」と、それに対する具体的な緩和策(バックアップ、IP制限以外に何があるか)。
2. **移行ステップ **: 現在のExcelに散らばったパスワードを、どのように整理・分類してVaultwardenの「Organization(組織)」や「Collection」に落とし込むべきか。推奨されるフォルダ構造の例。
3. **緊急時対応 **: もしVaultwardenのサーバーがダウンした場合、業務を止めないための「BCP(事業継続計画)」としてのオフラインアクセス確保の手法。
プロの視点で、具体的かつ実践的な回答をお願いします。