Infisicalのような秘密管理ツールをセルフホストすることで、敏感なデータをよりコントロールでき、セルフホスト環境のベストプラクティスに沿った運用が可能です。 このガイドでは、Dockerを使用してVPSにInfisicalをインストールする手順を説明します。サーバーの準備、Dockerの設定、そしてデプロイのセキュリティ対策をカバーします。
なぜInfisicalをセルフホストするのか?
Infisicalは、APIキーやトークンなどの機密データを安全に保存するためのオープンソースの秘密管理プラットフォームです。自分でホスティングすることで、サードパーティサービスへの依存を排除し、セキュリティを向上させ、環境を完全にコントロールできます。
前提条件
- LinuxディストリビューションのVPS(推奨:Ubuntu 22.04 LTS)
- ドメイン名(任意ですがSSL用に推奨)
- 基本的なLinuxコマンドラインスキル
- VPSでのrootまたはsudoアクセス
- VPSにDockerとDocker Composeをインストール済み
VPSプロバイダーの選択
コストパフォーマンスと信頼性を考慮して、以下のプロバイダーがおすすめです。
| プロバイダー | 価格(月額) | アフィリエイトリンク |
|---|---|---|
| Contabo VPS | 5.99 EUR | Contabo VPS |
| Hetzner Cloud | 4.15 EUR | Hetzner Cloud |
| DigitalOcean | 6 USD | DigitalOcean |
| Vultr | 6 USD | Vultr |
| Linode | 5 USD | Linode |
全VPSの比較は /en/best/ で確認できます。
ステップ1:VPS環境のセットアップ
VPSにログインする
ssh ユーザー名@VPSのIPアドレス
システムの更新
sudo apt update && sudo apt upgrade -y
DockerとDocker Composeをインストール
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
インストール確認:
docker --version
docker-compose --version
ステップ2:Infisical用のDocker Composeファイル準備
Infisical用のディレクトリを作成します。
mkdir ~/infisical && cd ~/infisical
docker-compose.ymlを作成します:
version: '3'
services:
infisical:
image: infisical/infasical:latest
container_name: infisical
ports:
- "3000:3000"
environment:
- NODE_ENV=production
- PORT=3000
volumes:
- infisical_data:/app/data
restart: unless-stopped
volumes:
infisical_data:
*注意:必要に応じて、イメージを公式レジストリの最新安定版に置き換えてください。
ステップ3:Infisicalを起動
コンテナを起動します。
docker-compose up -d
動作確認:
docker ps
Infisicalコンテナが稼働していることが表示されるはずです。
ステップ4:ドメインとSSLの設定(任意)
セキュリティ向上のためにドメインとSSL証明書を設定します。Nginxをリバースプロキシとして利用し、CertbotでSSLを取得します。
Nginxをインストール
sudo apt install -y nginx
Nginxの設定
/etc/nginx/sites-available/infisicalに以下の設定を作成:
server {
listen 80;
server_name your.domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
リンクを作成し、有効化します:
sudo ln -s /etc/nginx/sites-available/infisical /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
HTTPSをCertbotで有効化
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your.domain.com
プロンプトに従いSSL証明書の設定を完了します。
ステップ5:Infisicalを利用
https://your.domain.com にブラウザからアクセスします。初期設定として管理者アカウントの作成が必要です。
シークレットの追加
Web UIまたはCLIから追加可能です。お好みのワークフローに合わせて使用してください。
セルフホスティングInfisicalと他の選択肢の比較表
| 機能 | セルフホストInfisical | 管理された秘密管理サービス |
|---|---|---|
| コントロール | データと環境を完全にコントロール | サードパーティに管理されているため制限あり |
| 価格 | VPSコストは4.15 EUR〜6 USD/月 | 通常サブスクリプション型で高め |
| カスタマイズ性 | Dockerやサーバー設定で高度にカスタマイズ可能 | 制限されたカスタマイズオプション |
| セキュリティ | ユーザー設定次第、非常にセキュアにできる | コンプライアンスは高いがユーザーコントロールは少なめ |
| メンテナンス | ユーザーがアップデート、バックアップ、セキュリティ対策を担当 | 管理者が維持・管理を行う |
よくある質問(FAQs)
VPSでInfisicalを最新状態に保つにはどうしたらいいですか?
最新のDockerイメージをプルし、コンテナを再起動します。
docker-compose pull
docker-compose up -d
必要に応じてcronジョブやCI/CDパイプラインを活用しましょう。
セルフホストのInfisicalを安全に保つためのベストプラクティスは?
SSL証明書によるHTTPSの導入、firewall(iptablesやufw)の制限、必要に応じたポートの変更、二要素認証の有効化、定期的なバックアップが重要です。
逆プロキシの背後でInfisicalを動作させることは可能ですか?
はい、NginxやTraefikの後ろに配置することでセキュリティ向上とSSL終端が可能です。適切に設定すれば、安全かつシームレスなアクセスが実現します。必要に応じて複数サービス用のルートもカスタマイズできます。
最後に
VPS上でInfisicalをセルフホストすれば、開発者やホメラボ愛好者に適した堅牢でプライベートな秘密管理ソリューションとなります。Dockerを使ったセットアップはわかりやすく、セキュリティ対策も標準的なベストプラクティスを踏襲しています。常にアップデートとバックアップを心がけて、安全で安定した運用を続けましょう。
その他のセルフホストツールや設定については、/en/best/ をご覧ください。また、r/selfhostedやawesome-selfhostedのコミュニティもぜひご参加ください。