はじめに
開発サーバーの起動
開発モードでVaultを起動する
最終更新: 2026/2/17
開発サーバーの起動
Vaultの開発サーバーモードは、学習と検証のための簡易的な起動方法です。設定ファイル不要で、すぐにVaultを試すことができます。
本番環境での注意事項開発サーバーモード(
vault server -dev)は本番環境では絶対に使用しないでください。- すべてのデータはメモリ上に保存され、再起動時に失われます
- TLS/HTTPSが無効化されています
- ルートトークンが自動的に生成され、コンソールに表示されます
- 監査ログが無効化されています
- シールされていない状態で起動します
開発サーバーの起動
基本的な起動
vault server -dev
出力例:
==> Vault server configuration:
Api Address: http://127.0.0.1:8200
Cgo: disabled
Cluster Address: https://127.0.0.1:8201
Go Version: go1.21.0
Listener 1: tcp (addr: "127.0.0.1:8200", cluster address: "127.0.0.1:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
Log Level: info
Mlock: supported: true, enabled: false
Recovery Mode: false
Storage: inmem
Version: Vault v1.15.0
Version Sha: 9d0b54730d4980c5c368f8f2cc9f5d5f1e5f5e5e
==> Vault server started! Log data will stream in below:
WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory
and starts unsealed with a single unseal key. The root token is already
authenticated to the CLI, so you can immediately begin using Vault.
You may need to set the following environment variable:
$ export VAULT_ADDR='http://127.0.0.1:8200'
The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.
Unseal Key: lL8QEzFLhf5VvH8VqKJvKJvKJvKJvKJvKJvKJvKJvKJ=
Root Token: hvs.CAESIABcDeFgHiJkLmNoPqRsTuVwXyZ
Development mode should NOT be used in production installations!
重要な情報
開発サーバー起動時に表示される情報:
| 項目 | 説明 | 用途 |
|---|---|---|
| VAULT_ADDR | VaultサーバーのURL | 環境変数に設定 |
| Unseal Key | アンシールキー | 開発モードでは不要 |
| Root Token | ルートトークン | 認証に使用 |
環境変数の設定
Linux/macOS
新しいターミナルを開いて:
# Vaultサーバーのアドレスを設定
export VAULT_ADDR='http://127.0.0.1:8200'
# ルートトークンを設定(起動時に表示されたトークンを使用)
export VAULT_TOKEN='hvs.CAESIABcDeFgHiJkLmNoPqRsTuVwXyZ'
Windows(PowerShell)
# Vaultサーバーのアドレスを設定
$env:VAULT_ADDR = "http://127.0.0.1:8200"
# ルートトークンを設定
$env:VAULT_TOKEN = "hvs.CAESIABcDeFgHiJkLmNoPqRsTuVwXyZ"
接続の確認
ステータス確認
vault status
出力例:
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 1
Threshold 1
Version 1.15.0
Storage Type inmem
Cluster Name vault-cluster-abc123
Cluster ID 12345678-1234-1234-1234-123456789abc
HA Enabled false
重要なフィールド:
- Sealed:
false(アンシール状態) - Initialized:
true(初期化済み)
認証の確認
# 現在のトークン情報を表示
vault token lookup
出力例:
Key Value
--- -----
accessor abc123def456
creation_time 1704067200
creation_ttl 0s
display_name root
entity_id n/a
expire_time <nil>
explicit_max_ttl 0s
id hvs.CAESIABcDeFgHiJkLmNoPqRsTuVwXyZ
meta <nil>
num_uses 0
orphan true
path auth/token/root
policies [root]
ttl 0s
type service
開発サーバーのオプション
カスタムポートで起動
# ポート9200で起動
vault server -dev -dev-listen-address="127.0.0.1:9200"
環境変数も変更:
export VAULT_ADDR='http://127.0.0.1:9200'
カスタムルートトークンで起動
# 指定したルートトークンで起動
vault server -dev -dev-root-token-id="myroot"
環境変数の設定:
export VAULT_TOKEN='myroot'
初期データを投入して起動
# 初期データを含むファイルを指定
vault server -dev -dev-plugin-dir=./plugins
Web UIへのアクセス
UIの起動
ブラウザで以下のURLにアクセス:
http://127.0.0.1:8200/ui
ログイン
- Method:
Tokenを選択 - Token: 起動時に表示されたRoot Tokenを入力
- Sign Inをクリック
UIの主要機能
| セクション | 説明 |
|---|---|
| Secrets | シークレットの管理 |
| Access | 認証方法とポリシーの管理 |
| Policies | ポリシーの作成と編集 |
| Tools | ユーティリティツール |
開発サーバーの停止
正常な停止
開発サーバーを起動したターミナルで:
# Ctrl+C を押す
^C
==> Vault shutdown triggered
強制停止
# プロセスIDを確認
ps aux | grep vault
# プロセスを終了
kill <PID>
開発サーバーの特徴
メリット
✅ 即座に使用可能
- 設定ファイル不要
- 自動的に初期化とアンシール
- ルートトークンが自動生成
✅ 学習に最適
- シンプルな起動方法
- すぐに機能を試せる
- エラーが少ない
✅ 開発効率
- 再起動が高速
- データのクリーンアップが容易
デメリット
❌ データの永続性なし
- メモリ上にのみ保存
- 再起動でデータが消失
❌ セキュリティ機能の無効化
- TLS/HTTPS無効
- 監査ログ無効
- シール機能無効
❌ 本番環境に不適
- 高可用性なし
- パフォーマンス最適化なし
開発ワークフロー
典型的な開発フロー
# 1. 開発サーバーを起動
vault server -dev -dev-root-token-id="myroot"
# 2. 新しいターミナルで環境変数を設定
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN='myroot'
# 3. 機能を試す
vault kv put secret/myapp/config username=admin password=secret
# 4. 動作確認
vault kv get secret/myapp/config
# 5. 開発サーバーを停止(Ctrl+C)
# 6. 必要に応じて再起動(データはリセットされる)
vault server -dev -dev-root-token-id="myroot"
トラブルシューティング
ポートが既に使用されている
エラー:
Error initializing listener of type tcp: listen tcp 127.0.0.1:8200: bind: address already in use
解決策:
# 使用中のプロセスを確認
lsof -i :8200
# プロセスを終了
kill <PID>
# または別のポートで起動
vault server -dev -dev-listen-address="127.0.0.1:9200"
環境変数が設定されていない
エラー:
Error checking seal status: Get "https://127.0.0.1:8200/v1/sys/seal-status": http: server gave HTTP response to HTTPS client
解決策:
# VAULT_ADDRを確認
echo $VAULT_ADDR
# 正しく設定
export VAULT_ADDR='http://127.0.0.1:8200'
トークンが無効
エラー:
Error making API request.
Code: 403. Errors:
* permission denied
解決策:
# トークンを確認
echo $VAULT_TOKEN
# 正しいトークンを設定
export VAULT_TOKEN='hvs.CAESIABcDeFgHiJkLmNoPqRsTuVwXyZ'
# またはログイン
vault login <token>
次のステップ
開発サーバーが起動したら、最初のシークレットでVaultの基本操作を学びましょう。
開発サーバーの使い分け開発サーバーは学習と検証に最適です。本番環境への展開を検討する際は、本番環境のハードニングを参照してください。