1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【HashiCorp Vault】HCP Vault DedicatedでAWS上にクラスタを作成する方法

Posted at

1. はじめに

HashiCorp Vault は、安全なシークレット管理・暗号化・アクセス制御を統合的に提供できる人気のツールです。
その中でも HCP Vault Dedicated は、HashiCorp が提供するフルマネージド版の Vault で、
インフラ構築や運用の負担を大幅に減らしつつ、エンタープライズレベルのセキュリティを利用できます。

本記事では、HCP Vault Dedicated のクラスタを ゼロから作成 し、
CLI から接続・シークレットを登録する手順までを、画面キャプチャとコマンド例を交えて解説します。
初めての方でも、この手順に沿って進めれば 1時間以内に構築、初期アクセス確認完了 を目指せます。

ℹ️ HCP Vault Dedicated の詳細については、公式ドキュメント もあわせてご覧ください。

2. HCP Vault Dedicatedの概要

Vault Enterprise(自己管理型)と HCP Vault Dedicated(フルマネージド型)の機能差異については、以下の公式ドキュメントに記載があります。

Self-managed vs HCP Vault Dedicated cluster(HashiCorp公式)

以下の表は、上記公式ドキュメントの内容をもとに、AI翻訳を利用して日本語化したものです。
正確な情報や最新の仕様については、必ず原文をご確認ください。

項目 Self-Managed Vault Enterprise(自己管理型Vault Enterprise) HCP Vault Dedicated(フルマネージドVault)
デプロイ先 任意のインフラ(オンプレミス、任意のクラウド環境) HashiCorpが管理するクラウド(現在はAWSおよびAzureで提供)
運用管理 インストール、構成、アップグレード、パッチ適用、監視、アラートをお客様が実施 HashiCorpがインストール、構成、アップグレード、パッチ適用、監視、アラートを実施
高可用性(HA) お客様が設計・構築・維持 標準でマルチAZ構成の高可用性クラスタを提供
スケーラビリティ お客様がノード追加や構成変更を管理 HashiCorpがクラスターのスケーリングを自動管理
セキュリティパッチ お客様が適用 HashiCorpが自動的に適用
バックアップと復旧 お客様が管理 HashiCorpが自動バックアップと復旧を管理
ネットワーク接続 任意(VPC、オンプレミスLAN、VPNなど) パブリック接続、またはプライベート接続(VPCピアリング、Transit Gatewayなど)
サポート Vault Enterprise契約に含まれるHashiCorpサポート サービス利用料金に含まれるHashiCorpサポート
課金 Vault Enterpriseライセンス費用 + インフラコスト HCP Vault Dedicatedの利用料金(時間単位または月額)

3. HCP Vault Dedicated構築の前提条件

HCP Vault Dedicatedのクラスタを作成する前に、以下の準備を行ってください。

3.1 必要なアカウント

  • HCPアカウントHashiCorp Cloud Platform
    • トライアル環境では、無料で500$のクレジットあり
    • クレジットカード登録が必要な場合あり(プランによる)
  • AWSまたはAzureアカウント
    • 今回はVault DedicatedをPublic接続で構成します。Public接続で試すだけの場合は不要です
    • ただし、以下のケースでは必要になります:
      • AWS Secrets Engineで動的IAMクレデンシャルを発行する場合
      • VaultからAWSリソース(例:RDS、S3など)にアクセスする場合
      • Private接続(VPC PeeringやTransit Gateway利用)を行う場合

3.2 CLIツールのインストール

Vault CLIのインストール方法については、以下の記事で詳しく解説しています。
お使いの環境(Mac / Linux / Windows)に合わせてインストールしてください。
👉 Vault CLIのインストール方法まとめ(Qiita)

3.3 ネットワーク要件

  • Public接続:簡単に構築可能(検証用)
  • Private接続:本番利用。AWSの場合はVPC PeeringまたはTransit Gatewayを利用

4. 検証用クラスタ環境作成手順

ここからは、検証用の Development Tier(最小構成) を利用して、HCP Vault Dedicated のクラスタを Public接続 で構築します。
Development Tier の最小構成は作成直後から Public Endpoint が有効になっており、追加の設定なしでインターネット経由からアクセス可能です。
本番利用には向きませんが、初期検証や学習用途では最も簡単かつ低コストで試せる構成です。

  1. ブラウザで HCP Cloudポータル にアクセスし、ログインします。
    ログイン後、サービス一覧から Vault Dedicated を選択します。

  2. Create Cluster ボタンをクリックします。
    image.png

  3. クラウドプロバイダ を選択します。AWS または Azure が選択可能です(今回は AWS を選択)。
    ※Public 接続の動作検証のみであれば、AWS アカウントは不要です。
    image.png

  4. Vault Tier を選択します。DevelopmentEssentialsStandard から選択可能です(今回は Development を選択)。
    選択した Tier の料金は以下を参照してください:
    HashiCorp Vault Pricing

  5. Cluster size を選択します。

    • Development Tier の場合は Extra Small 固定です。
    • Essentials 以上の場合は、3つのスペックから選択可能です。
      image.png
  6. ネットワーク ID を指定します(今回はデフォルトの hvn を使用)。

    • 3〜36文字の一意の文字列である必要があります
    • 使用可能な文字:英小文字、数字、ハイフン(-
    • 先頭は文字、末尾は文字または数字である必要があります
  7. リージョン を選択します(例:ap-northeast-1 東京)。
    image.png

  8. ネットワーク構成 の CIDR ブロックを指定します(今回はデフォルトの 172.25.16.0/20 を使用)。
    注意事項:

    • HVN と VPC の CIDR ブロックが重複している場合、接続できません。接続予定の VPC に重複がないことを確認してください。
    • デフォルトの HVN CIDR ブロック値は、AWS VPC のデフォルト CIDR(172.31.0.0/16)と重複しません。
      ただし、本番環境で使用する場合はデフォルトではなくカスタム値の利用を推奨します。
    • CIDR ブロック値は RFC1918 アドレス空間(10.*.*.*192.168.*.*172.[16-31].*.*)内のプライベート IPv4 CIDR である必要があります。
    • CIDR ブロック値は、目的の CIDR 範囲の最初の IP アドレスである必要があります。
    • CIDR ブロックのサイズは /16/25 の範囲である必要があります。
      image.png
  9. Cluster ID を指定します(例:vault-cluster)。

    • 3〜36文字の一意の文字列である必要があります
    • 使用可能な文字:英小文字、数字、ハイフン(-
    • 先頭は文字、末尾は文字または数字である必要があります
    • 作成後は変更できません
  10. Templates を選択します。

    • Start from scratch(推奨):完全に空のクラスタを作成し、必要な設定を自分で行います
    • Encryption:サンプルの暗号鍵・ポリシー・認証方式が事前に設定されたクラスタ
    • Key-value secrets:サンプルのシークレット・ポリシー・認証方式が事前に設定されたクラスタ
    • PKI:サンプルのルート証明書・ポリシー・認証方式が事前に設定されたクラスタ
      ※今回は Start from scratch を選択しま
  11. 設定内容を確認し、Create Cluster をクリックします。
    image.png

  12. 5-10分ほど待ちます。
    image.png

  13. Vault Clusterが完成です。
    image.png


5. クラスタへの接続確認(Admin Tokenを利用)

現行の HCP Vault Dedicated UI で、Admin Token を必要に応じて生成し、そのトークンでCLIやGUIからアクセスします。

Development Tier(Public接続)では、作成直後からPublic Endpointが有効になっているため、IP制限をしていなければすぐにアクセス可能です。


5.1 Admin Tokenの生成

  1. HCPポータルで対象のVault Dedicatedクラスタの詳細ページを開きます。

  2. 画面右側の 「Quick actions」 セクションから 「New admin token」 - **「Generate token」をクリックします。
    image.png

  3. 自動的にトークンがコピーされます。


5.2 GUIからのアクセス確認

  1. ブラウザで Public Cluster URL にアクセスします。
    例:https://vault-cluster-public-xxxxxx.hashicorp.cloud:8200

  2. ログイン画面で、先ほど生成した Admin Token を貼り付けて 「Sign In」 をクリックします。
    image.png

  3. VaultのWeb UIが表示されれば接続成功です。
    image.png


5.3 CLIからの接続確認

  1. ターミナルで以下の環境変数を設定します。
    export VAULT_ADDR="https://vault-cluster-public-xxxxxx.hashicorp.cloud:8200"
    export VAULT_TOKEN="<生成したAdmin Token>"

  2. ステータスの確認
    vault status コマンドを実行し、クラスタの状態を確認します

$ vault status
Key                      Value
---                      -----
Seal Type                awskms
Recovery Seal Type       shamir
Initialized              true
Sealed                   false
Total Recovery Shares    1
Threshold                1
Version                  1.19.8+ent
Build Date               2025-08-05T18:49:00Z
Storage Type             raft
Cluster Name             2xxxxxx5-4dec-4131-978f-7xxxxxxxxx6a
Cluster ID               dxxxxxx3-5553-c7d6-61d9-8xxxxxxxxx90
Removed From Cluster     false
HA Enabled               true
HA Cluster               https://172.xx.xx.xx:8201
HA Mode                  active
Active Since             2025-09-09T11:17:40.229375513Z
Raft Committed Index     6878
Raft Applied Index       6878
Last WAL                 2793
  1. KV Secrets Engine v2 の有効化
    vault secrets enable コマンドで、KV Secrets Engine v2 を /secret パスに有効化します。
$ vault secrets enable -path=secret kv-v2
Success! Enabled the kv-v2 secrets engine at: secret/
  1. サンプルデータの登録
    vault kv put コマンドを使って、secret/myapp/config にユーザー名とパスワードを登録します。
$ vault kv put secret/myapp/config username="admin" password="P@ssw0rd!"
====== Secret Path ======
secret/data/myapp/config

======= Metadata =======
Key                Value
---                -----
created_time       2025-09-09T21:14:27.589062616Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1
  1. 登録内容の取得
    vault kv get コマンドで登録済みのシークレットを取得します。
$ vault kv get secret/myapp/config
====== Secret Path ======
secret/data/myapp/config

======= Metadata =======
Key                Value
---                -----
created_time       2025-09-09T21:14:27.589062616Z
custom_metadata    <nil>
deletion_time      n/a
destroyed          false
version            1

====== Data ======
Key         Value
---         -----
password    P@ssw0rd!
username    admin

以上で今回の動作検証は終わりです。


Public接続は簡単に試せますが、本番環境ではセキュリティやネットワーク制御のため Private接続 が推奨されます。
次のステップとして、以下のような構成を試してみると良いでしょう。

  • Private接続(VPC PeeringまたはTransit Gateway)
    → Vaultへのアクセスを特定のVPCやオンプレミス環境のみに制限
  • IP Allowlistの設定
    → Public接続の場合もアクセス元IPを制限可能
  • 認証方式の追加(OIDC, AWS IAM Auth, AppRoleなど)
    → Admin Token以外の安全なアクセス方法を導入

6. 最後に

今回は、Development Tier(最小構成)+Public接続 でHCP Vault Dedicatedを構築し、CLIとGUIからシークレットの登録・取得までを行いました。
次のステップとして、以下のような構成を試してみたいと思います。

  • Private接続(VPC PeeringまたはTransit Gateway)
    → Vaultへのアクセスを特定のVPCやオンプレミス環境のみに制限
  • IP Allowlistの設定
    → Public接続の場合もアクセス元IPを制限可能
  • 認証方式の追加(OIDC, AWS IAM Auth, AppRoleなど)
    → Admin Token以外の安全なアクセス方法を導入
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?