HashiCorp Vault

HASHICORP VAULT
読み: ハシコープ ヴォルト

読み: ハシコープ ヴォルト

Vaultとは機密情報の一元管理

HashiCorp Vaultはマルチクラウドとオンプレミスの両方に対応するシークレット管理ツールで、APIキー、データベースパスワード、証明書などの機密情報を一元的に管理する。動的シークレットの生成や暗号化サービスの提供など、単なるパスワード保管庫を超えた機能を持つ。

かんたんに言うと

使い捨てのパスワードをその場で発行し、用が済んだら自動で無効化してくれるセキュリティ管理人である。金庫の中身を一元管理しつつ、誰がいつ何を取り出したかを全て記録する。

散らばった機密情報を一箇所に集約するHashiCorp Vaultの位置づけ

アプリケーションが扱う機密情報は増え続けている。データベース接続文字列、外部APIの認証トークン、SSL証明書、SSH鍵。これらが設定ファイルや環境変数にバラバラに散らばっていると、管理が破綻する。
Vaultはこれらを一箇所に集約し、統一的なAPIでアクセスを提供する。2015年にHashiCorpがオープンソースとして公開して以来、TerraformやConsulと並んでインフラ管理の定番ツールとなった。なお、2023年にライセンスがMPL 2.0からBSL 1.1(Business Source License)に変更されており、商用利用の条件が変わっている点には注意が必要である。オープンソースコミュニティからはOpenBaoというフォークも生まれた。
エンタープライズ版のVault Enterpriseと、マネージドサービスのHCP Vaultも提供されており、自前で運用するか管理を任せるかを選べる。

動的シークレットと従来方式の違い

Vaultの最大の特徴は動的シークレットの生成にある。
従来の方式では、データベースのパスワードを一度作ったら、それを複数のアプリケーションで使い回す。パスワードが漏洩したとき、どのアプリケーションから漏れたのか特定できない。変更するにも全アプリの設定を同時に書き換える必要があり、現実的には「面倒だから変えない」という運用に陥りやすい。
Vaultの動的シークレットは、アプリケーションがアクセスを要求するたびに新しい認証情報を生成し、一定時間後に自動で失効させる。あるアプリケーションに発行したパスワードが漏れても、他のアプリケーションには影響しない。被害範囲を最小化できる構造となっている。
ただし、動的シークレットを有効にするにはVaultとデータベースの間にプラグインの設定が必要で、初期の構築コストはそれなりにかかる。

Encryption as a Serviceと監査ログ

Vaultにはトランジット暗号化エンジンと呼ばれる機能がある。アプリケーション側に暗号化ロジックを持たせず、VaultのAPIに平文を投げると暗号文が返ってくる。復号も同様にAPIを叩くだけである。
この設計の利点は、暗号鍵をアプリケーション開発者が触らなくて済む点にある。鍵の管理は全てVault側で完結するため、鍵の漏洩リスクが構造的に下がる。
監査ログも見逃せない。誰がいつどのシークレットにアクセスしたかが全て記録される。セキュリティインシデントの調査で「いつ、誰が、何を見たか」をトレースできるかどうかは、事後対応の速度を左右する。

<a href="/ai-glossary/aws-secrets-manager/">AWS Secrets Manager</a>との比較

AWS Secrets Managerとの比較は現場でよく議論になる。
Secrets ManagerはAWSのマネージドサービスであり、サーバーの管理が不要でIAMとの統合も自然に行える。AWS環境に閉じたシステムであれば、導入の手間はVaultより少ない。
一方、VaultはAWSに限らずGCP、Azure、オンプレミスの全てに対応する。動的シークレットの生成や暗号化サービスなど、Secrets Managerにはない機能も備えている。
コストの構造も異なる。Secrets Managerはシークレット数とAPI呼び出し回数に応じた従量課金。Vaultのオープンソース版はソフトウェア自体は無料だが、運用するサーバーのインフラ費用と管理工数がかかる。マネージドのHCP Vaultを選ぶと月額費用が発生する。
結局のところ、単一クラウドで完結するならSecrets Manager、マルチクラウドや高度なシークレット管理が必要ならVaultという棲み分けになる。

AI開発基盤での活用と運用上の注意

AI開発基盤では、学習パイプラインが複数のクラウドサービスにまたがることが珍しくない。学習データはS3、モデルのデプロイはGKE、推論APIはAzureといった構成の場合、各サービスの認証情報をVaultで一元管理する意義は大きい。
DevOpsチームがCI/CDパイプラインにVaultを組み込み、デプロイ時に動的シークレットを取得する設計にすれば、認証情報がパイプラインの設定ファイルに残ることもない。
運用上の最大の注意点はVault自体の可用性である。Vaultが落ちると、全てのアプリケーションがシークレットを取得できなくなる。HA構成の設計と、Unseal鍵の管理体制を事前に決めておくことが欠かせない。

当社の見解

当社はAIの安全運用のために3層防御を設計・実装している。万が一インシデントが発生しても数分以内に復旧できるバックアップ体制を持つ。実際にAIが暴走してテスト環境を停止させた経験があり、その教訓から「失敗を防ぐ」だけでなく「失敗しても戻せる」設計が本質だと確信している。加えて、AIは事実でないことを断定する。この前提で事実/推測の強制分離とファクトチェックを実装した。安全性は仕組みで担保するものだ。

同じ失敗を二度としないAIエージェント

今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。

当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。

古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。

相談する