Vaultとは

Vaultとは

HashiCorp Vaultの概要と主要な特徴
最終更新: 2026/4/13

Vaultとは

HashiCorp Vault(以降、Vault)は、シークレット(機密情報)を安全に管理するための統合プラットフォームです。パスワード、APIキー、証明書、暗号化キーなど、あらゆる種類の機密情報を一元管理し、アクセス制御と監査を提供します。

Vaultが解決する課題

現代のアプリケーション開発では、以下のような課題に直面します:

1. シークレットの分散管理

課題:

  • 設定ファイルにパスワードをハードコーディング
  • 環境変数に機密情報を保存
  • 複数のシステムに認証情報が散在
  • バージョン管理システムに機密情報がコミットされるリスク

Vaultの解決策:

  • すべてのシークレットを一元管理
  • 暗号化された安全なストレージ
  • APIベースの動的なシークレット取得

2. アクセス制御の複雑さ

課題:

  • 誰がどのシークレットにアクセスできるか管理が困難
  • 細かい権限設定ができない
  • アクセス履歴の追跡が難しい

Vaultの解決策:

  • ポリシーベースのアクセス制御
  • 多様な認証方法のサポート
  • 完全な監査ログ

3. シークレットのライフサイクル管理

課題:

  • パスワードの定期的なローテーションが困難
  • 使用されなくなったシークレットの削除漏れ
  • 有効期限の管理が煩雑

Vaultの解決策:

  • 動的シークレットの自動生成と失効
  • リース(有効期限)の自動管理
  • シークレットのバージョン管理

Vaultの主要な特徴

1. セキュアなシークレットストレージ

Vaultは、すべてのシークレットを暗号化して保存します。

# シークレットの保存
vault kv put secret/myapp/config \
  username=admin \
  password=supersecret

# シークレットの取得
vault kv get secret/myapp/config

特徴:

  • 保存時の暗号化(Encryption at Rest)
  • 転送時の暗号化(TLS/HTTPS)
  • メモリ内でも暗号化

2. 動的シークレット

Vaultは、必要に応じてシークレットを動的に生成します。

従来の方法:

アプリケーション → 固定のDBパスワード → データベース

Vaultを使用:

アプリケーション → Vault → 一時的なDBパスワード生成 → データベース
                    ↓
                有効期限後に自動失効

メリット:

  • シークレットの有効期限を短く設定可能
  • 漏洩時の影響を最小化
  • 自動的なローテーション

3. データ暗号化サービス

Vaultは、暗号化機能をサービスとして提供します。

# データの暗号化
vault write transit/encrypt/my-key \
  plaintext=$(echo "secret data" | base64)

# データの復号化
vault write transit/decrypt/my-key \
  ciphertext=vault:v1:8SDd3WHDOjf7mq69CyCqYjBXAiQQAVZRkFM13ok481zoCmHnSeDX9vyf7w==

用途:

  • アプリケーションデータの暗号化
  • 暗号化キーの一元管理
  • 暗号化処理のオフロード

4. リース(有効期限)とリニューアル

すべてのシークレットには有効期限(リース)が設定されます。

# シークレットの取得(リース付き)
vault read database/creds/my-role

Key                Value
---                -----
lease_id           database/creds/my-role/2f6a614c-4aa2-7b19-24b9-ad944a8d4de6
lease_duration     1h
lease_renewable    true
password           A1a-BbC2cD3d
username           v-token-my-role-x4xd9n8ut92dxv93kd9j-1487604208

特徴:

  • 自動的な有効期限管理
  • リース更新(Renewal)のサポート
  • 失効(Revocation)の即座な実行

5. 多様な認証方法

Vaultは、様々な認証方法をサポートしています。

認証方法用途特徴
Token基本的な認証シンプルで汎用的
Username/Password人間のユーザー直感的で使いやすい
AppRoleアプリケーション自動化に適している
KubernetesK8s環境サービスアカウント連携
AWSAWS環境IAMロール連携
LDAP/AD企業環境既存のディレクトリ統合

詳細は認証方法の概要をご覧ください。

6. 詳細なアクセス制御

ポリシーを使用して、きめ細かいアクセス制御を実現します。

# 読み取り専用ポリシー
path "secret/data/myapp/*" {
  capabilities = ["read", "list"]
}

# 管理者ポリシー
path "secret/data/myapp/*" {
  capabilities = ["create", "read", "update", "delete", "list"]
}

詳細はポリシーの構文をご覧ください。

7. 完全な監査ログ

すべての操作が監査ログに記録されます。

{
  "time": "2024-01-15T10:30:45.123456Z",
  "type": "response",
  "auth": {
    "client_token": "hmac-sha256:...",
    "display_name": "token-user",
    "policies": ["default", "myapp-read"]
  },
  "request": {
    "operation": "read",
    "path": "secret/data/myapp/config"
  },
  "response": {
    "data": {
      "data": "hmac-sha256:..."
    }
  }
}

詳細は監査ログをご覧ください。

Vaultのアーキテクチャ

基本構成

┌─────────────────────────────────────────┐
│         クライアント(CLI/API)          │
└─────────────────┬───────────────────────┘
                  │ HTTPS/TLS
┌─────────────────▼───────────────────────┐
│            Vault Server                  │
│  ┌─────────────────────────────────┐   │
│  │      認証・認可エンジン          │   │
│  └─────────────────────────────────┘   │
│  ┌─────────────────────────────────┐   │
│  │    シークレットエンジン          │   │
│  │  - KV (Key-Value)               │   │
│  │  - Database                     │   │
│  │  - AWS                          │   │
│  │  - PKI                          │   │
│  └─────────────────────────────────┘   │
│  ┌─────────────────────────────────┐   │
│  │      ストレージバックエンド       │   │
│  │  (暗号化されたデータ)            │   │
│  └─────────────────────────────────┘   │
└─────────────────────────────────────────┘

シール/アンシール

Vaultは起動時に「シール」された状態で開始します。

シール状態:

  • すべてのデータが暗号化されている
  • APIリクエストを受け付けない
  • 暗号化キーがメモリにロードされていない

アンシール状態:

  • 暗号化キーがメモリにロードされている
  • APIリクエストを処理できる
  • シークレットへのアクセスが可能
# Vaultのステータス確認
vault status

# アンシール(複数のキーが必要)
vault operator unseal <key1>
vault operator unseal <key2>
vault operator unseal <key3>
Unseal Keyの管理Unseal Keyは安全な場所に保管し、絶対に公開しないでください。これらのキーが漏洩すると、Vaultのすべてのデータにアクセスされる可能性があります。

Vaultの利用形態

Vaultには3つの利用形態があり、それぞれ異なる機能とサポートレベルを提供します。

1. Vault OSS(オープンソース版)

概要:

  • 無料で利用可能
  • コミュニティサポート
  • 基本的なシークレット管理機能をすべて利用可能

主な機能:

  • ✅ セキュアなシークレットストレージ
  • ✅ 動的シークレット生成
  • ✅ データ暗号化サービス
  • ✅ 多様な認証方法
  • ✅ ポリシーベースのアクセス制御
  • ✅ 監査ログ
  • ✅ 高可用性(HA)構成

適している環境:

  • 小規模から中規模の環境
  • 開発・テスト環境
  • 単一組織での利用
  • コスト重視のプロジェクト

2. Vault Enterprise(有償版)

概要:

  • 商用サポート付き
  • エンタープライズ向けの高度な機能
  • SLA保証

OSS版に加えて利用可能な機能:

マルチテナンシー

  • Namespaces - 組織・チーム単位での完全な分離

高可用性とスケーラビリティ

  • Performance Replication - 複数リージョンでの読み取りスケーリング
  • Disaster Recovery Replication - 災害対策のためのレプリケーション
  • Performance Standby Nodes - 読み取りリクエストを処理するスタンバイノード

高度なセキュリティとガバナンス

  • Sentinel Policies - ポリシーアズコードによる高度な制御
  • Control Groups - 承認ワークフローの実装
  • HSM Auto-Unseal - ハードウェアセキュリティモジュールとの統合
  • FIPS 140-2準拠 - 政府・金融機関向けのコンプライアンス
  • Seal Wrap - 追加の暗号化層

エンタープライズ統合

  • Transform Secrets Engine - データ変換・トークン化・マスキング
  • Key Management Secrets Engine (KMSE) - 外部KMSとの統合
  • Automated Snapshots - 自動バックアップとスケジュール設定
  • MFA Enterprise Features - 高度な多要素認証

サポートとSLA

  • 24/7商用サポート
  • SLA保証
  • 優先的なバグ修正
  • アップグレード支援

適している環境:

  • 大規模エンタープライズ環境
  • マルチテナント環境
  • グローバル展開
  • 厳格なコンプライアンス要件
  • ミッションクリティカルなシステム

3. HCP Vault(マネージドサービス)

概要:

  • HashiCorp Cloud Platformで提供されるマネージドサービス
  • インフラ管理不要
  • 自動アップデート

特徴:

  • ✅ フルマネージド
  • ✅ 自動スケーリング
  • ✅ 自動バックアップ
  • ✅ 高可用性構成が標準
  • ✅ Enterprise機能を含む

適している環境:

  • クラウドネイティブ環境
  • 運用負荷を最小化したい場合
  • 迅速な導入が必要な場合

エディションの比較

以下の表は、Vault OSS、Vault Enterprise、HCP Vaultの機能比較を示しています。

機能・選用比較マトリクス

カテゴリ機能OSSEnterpriseHCP Vault
可用性とスケールクラスタ高可用性
パフォーマンス・レプリケーション
ディザスタリカバリ
ガバナンスとマルチテナントNamespaces
(論理的分離)
Sentinel
(Policy as Code)
高度なデータ保護KMIP&Transform(FPE)
エンジン
インフラ運用自動アンシール
バージョンアップとスナップショット手動手動自動

凡例:

  • ● : 完全サポート
  • ▲ : 限定的サポート(クラウドKMSのみ)
  • 空欄 : サポートなし

各機能の詳細説明

可用性とスケール

クラスタ高可用性

  • すべてのエディションで利用可能
  • アクティブ/スタンバイ構成による高可用性を実現
  • 自動フェイルオーバー機能

パフォーマンス・レプリケーション 🆕 Enterprise

  • 複数リージョンでの読み取りスケーリング
  • グローバル展開時のレイテンシ削減
  • 読み取り専用レプリカの配置

ディザスタリカバリ 🆕 Enterprise

  • 災害対策のためのレプリケーション
  • 自動フェイルオーバーとフェイルバック
  • RPO(目標復旧時点)の最小化

ガバナンスとマルチテナント

Namespaces(論理的分離) 🆕 Enterprise

  • 組織・チーム単位での完全な分離
  • マルチテナント環境のサポート
  • 独立したポリシーと認証設定

Sentinel(Policy as Code) 🆕 Enterprise

  • ポリシーアズコードによる高度な制御
  • 条件付きロジックの実装
  • ビジネスルールの強制

高度なデータ保護

KMIP&Transform(FPE)エンジン 🆕 Enterprise

  • Key Management Interoperability Protocol対応
  • Format Preserving Encryption(形式保持暗号化)
  • データ変換・トークン化・マスキング機能

インフラ運用

自動アンシール

  • OSS/Enterprise: クラウドKMS(AWS KMS、Azure Key Vault、GCP KMS)による自動アンシール
  • Enterprise: HSM(Hardware Security Module)による自動アンシール
  • HCP Vault: 完全自動化(管理不要)

バージョンアップとスナップショット

  • OSS/Enterprise: 手動でのバージョンアップとバックアップ
  • HCP Vault: 自動バージョンアップと自動スナップショット
本ガイドについて本ガイドでは、Vault OSS版とEnterprise版の両方の機能を紹介しています。Enterprise版専用の機能には、明示的に「Enterprise版」と記載しています。

次のステップ

Vaultの概要を理解したら、次は主要な概念でVaultの基本的な用語と概念を学びましょう。

学習のヒントVaultは多機能なツールですが、まずは基本的なKVシークレットの管理から始めることをお勧めします。段階的に機能を追加していくことで、無理なく習得できます。
© 2026 IBM Corporation. Licensed under CC BY 4.0.