Vaultwarden パスワードマネージャーをセルフホスト:ドメイン、登録の停止、チームでの共有、バックアップ
Zenavo のテンプレートで Vaultwarden を自分のサーバーにデプロイし、HTTPS のドメインを設定します。登録が済んだら一般登録を停止し、メールを設定して同僚を招待し、Bitwarden クライアントを接続して、バックアップとアップグレードに備える方法を説明します。
この記事は English、简体中文、繁體中文、Español、Bahasa Indonesia でもお読みいただけます。
Vaultwarden はオープンソースのパスワードマネージャーのサーバーで、Bitwarden の公式クライアントと互換性があります。ブラウザ拡張機能、デスクトップアプリ、スマートフォンアプリ、コマンドラインツールから、そのまま接続できます。Rust で書かれていてメモリ使用量がとても小さいため、小さなサーバー1台でチーム全体をまかなえます。
パスワード保管庫を自分のサーバーに置けば、データが第三者のクラウドを経由しません。その代わり、ドメイン、登録の可否、バックアップ、アップグレードはすべて自分で管理することになります。この記事では、Zenavo の Vaultwarden テンプレートを使って、デプロイからバックアップまでを順に説明します。
Vaultwarden はコミュニティのプロジェクトで、Bitwarden 社とは関係ありません。
Vaultwarden をデプロイする
まず Zenavo に Linux サーバーを接続し、Vaultwarden テンプレートを開いて、サーバーを選んでデプロイします。
現在のテンプレートの設定は次のとおりです。
| 設定 | 値・用途 |
|---|---|
| イメージ | vaultwarden/server:latest |
| HTTP ポート | 80 |
| 永続ボリューム | /data。SQLite データベース、添付ファイル、Send のファイル、ログイン用の鍵、管理画面で保存した設定がすべてここにあります |
テンプレートには環境変数があらかじめ設定されていません。以下の手順で追加していきます。
先にドメインを設定し、それから登録する
Vaultwarden のウェブ版はブラウザの暗号化 API を使うため、HTTPS でしか利用できません。そのため、アカウントを登録する前にドメインを設定してください。
vaultwarden サービスの ネットワーク タブで、ポート 80 にドメイン(例:vault.example.com)を割り当てます。DNS にサーバーを指す A レコードを追加し、HTTPS が有効になるのを待ちます。手順はドメインと HTTPS をご覧ください。
次に、変数 タブで次の変数を追加します。
DOMAIN=https://vault.example.com
保存したら再起動します。DOMAIN は、実際にアクセスするアドレスと(https:// も含めて)完全に一致している必要があります。メール内のリンクや、クライアントの一部の機能がこの値に依存しています。
アカウントを作成し、登録を停止する
https://vault.example.com を開いて アカウントの作成 をクリックし、メールアドレスとマスターパスワードを設定します。
マスターパスワードは復元できません。 Vaultwarden は暗号化されたデータしか保存しておらず、サーバーの管理者でも復号できません。マスターパスワードを忘れると保管庫全体を失うことになります。安全な場所に記録しておくか、クライアントの生体認証によるロック解除を普段の入口として使ってください。
テンプレートの初期状態では、誰でも登録できます。チームのメンバー全員が登録を終えたら、変数 に次の変数を追加します。
SIGNUPS_ALLOWED=false
保存して再起動します。以降は、組織から招待された人だけが参加できます(INVITATIONS_ALLOWED は初期状態で有効です)。会社のメールアドレスだけ登録を許可したい場合は、登録を有効にしたまま SIGNUPS_DOMAINS_WHITELIST=example.com を使う方法もあります。
メールを設定する(同僚の招待に必要)
メンバーの招待、メールアドレスの確認、新しいデバイスからのログイン通知には、メールの送信が必要です。変数 に SMTP サービスの設定を追加します。
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_FROM=vault@example.com
SMTP_USERNAME=SMTP のユーザー名
SMTP_PASSWORD=SMTP のパスワード
ポート 465 を使うメールプロバイダーの場合は、SMTP_SECURITY を force_tls に変更します。保存して再起動します。変数の値は Zenavo で暗号化して保存され、チームの閲覧者(オブザーバー)には表示されません。
チームでの共有:組織とコレクション
ウェブ版で 新しい組織 をクリックして組織を作成し、用途ごとに コレクション を作ります(例:「サーバー」「外部サービスのアカウント」「経理」)。共有したいアイテムをコレクションに入れ、メンバーを招待して、それぞれがアクセスできるコレクションを指定します。
メンバーが招待を承認したあと、組織の管理者がメンバー一覧でもう一度 承認(確認) する必要があり、それが済むと相手に共有内容が表示されます。これは暗号鍵を交換するための手順で、正常な動作です。
Bitwarden クライアントを接続する
Bitwarden のクライアントはどれも、ログイン画面で接続先のサーバーを選べます。
- ログイン画面でサーバー(または「ログイン先」)の項目を探し、セルフホスト を選びます。
- サーバー URL に
https://vault.example.comを入力します。 - 自分のメールアドレスとマスターパスワードでログインします。
ブラウザ拡張機能、デスクトップアプリ、スマートフォンアプリは、暗号化された保管庫のコピーをローカルにキャッシュします。サーバーが一時的に止まっていても、既存のアイテムは閲覧できます。
管理画面(任意)
Vaultwarden には /admin の管理画面があり、ユーザーの確認、アカウントの削除、設定の変更ができます。ADMIN_TOKEN を設定していない間は無効になっています。普段は無効のままにしておき、必要なときだけ有効にすることをおすすめします。
有効にする場合も、平文のパスワードをそのまま使わないでください。vaultwarden サービスの コマンド パネルで次を実行します。
/vaultwarden hash
指示に従ってパスワードを2回入力すると、$argon2id$ で始まる文字列が出力されます。この文字列全体を ADMIN_TOKEN の値として保存し、再起動したら、先ほど入力したパスワードで https://vault.example.com/admin にログインします。
注意:管理画面で保存した設定は /data/config.json に書き込まれ、同じ名前の環境変数を上書きします。あとで変数を変更しても反映されない場合は、まず管理画面でも同じ設定をしていないか確認してください。
バックアップ
サーバーのデータはすべて /data ボリュームにあります。vaultwarden サービスの バックアップと復元 タブで、このボリュームをバックアップします。
- 誰も使っていない時間帯を選び、プロジェクトを停止します(ボリュームのバックアップには、プロジェクトが停止している必要があります)。
- バックアップを作成し、完了したらプロジェクトを起動します。この数分間も、クライアントはローカルのキャッシュを読めます。
- バックアップを1つダウンロードして、手元に保管します。
バックアップファイルには暗号化された保管庫だけでなく、添付ファイルやログイン用の鍵も含まれます。パスワードと同じように厳重に管理してください。また、各メンバーが定期的にウェブ版の ツール → 保管庫のエクスポート で暗号化された JSON をエクスポートし、サーバーに依存しない2つ目のコピーとして持っておくことをおすすめします。
バックアップは、復元して中身を確認するまでは信頼できません。バックアップを新しいプロジェクトに復元し、ログインしてアイテムがそろっていることを確認しておきましょう。
アップグレード
テンプレートは latest タグを使っているため、再デプロイのたびに新しいバージョンが取得される可能性があります。長く使う場合は、サービスの 設定 にある ソース で、イメージを vaultwarden/server:1.37.5 のような固定バージョンに変更してください(バージョンはリリースページで確認してください)。アップグレードの前にはバックアップを取り、リリースノートを読んでからバージョンを変更してください。
よくある質問
ウェブページが開かない、または安全な接続が必要だと表示される場合は?
ウェブ版は HTTPS でしか使えません。ドメインが割り当てられ、証明書が有効になっていて、https:// でアクセスしていることを確認してください。
登録を停止したあと、メンバーを追加するには? 組織から相手を招待してください。SMTP を設定していれば、相手に招待メールが届きます。SMTP を設定していない場合は、招待されたメールアドレスでウェブ版から直接登録できます。
マスターパスワードを忘れた場合は? 復元はできません。サーバーには復号に使えるものが何もないためです。そのアカウントを削除して登録し直すしかなく、元のアイテムは失われます。保管庫を定期的にエクスポートしておくべき理由はここにあります。
スマートフォンでリアルタイムに同期されない場合は?
ウェブ版とデスクトップ版は WebSocket でリアルタイムに同期します。スマートフォンアプリのプッシュ通知を使うには、bitwarden.com/host でインストール ID とキーを取得し、PUSH_ENABLED=true、PUSH_INSTALLATION_ID、PUSH_INSTALLATION_KEY を設定します。設定しない場合、スマートフォンアプリはアプリを開いたときや下に引っ張って更新したときに同期します。
どのくらいのサーバーが必要ですか? Vaultwarden 自体のメモリ使用量は通常数十 MB 程度です。ほかのアプリと小さなサーバーを共有しても問題ありません。
まずは Vaultwarden テンプレートから始めましょう。最初にドメインを設定し、アカウントを登録したら一般登録を停止して、最後にバックアップの体制を整えてください。
コーディングエージェントが読む内容です(https://zenavo.app/ja-JP/blog/self-host-vaultwarden.md)。
Markdown を読み込めませんでした。直接開いてください: https://zenavo.app/ja-JP/blog/self-host-vaultwarden.md