vault CLI を通じて行えるようにします。
対応プラットフォーム
| プラットフォーム | サポート |
|---|---|
| Vault オープンソース | セルフホスト、最近のリリース |
| Vault Enterprise | ネームスペース対応 |
| HCP Vault Dedicated | ネームスペースを設定(デフォルト admin) |
前提条件
- 到達可能な Vault アドレス — サンドボックスは
VAULT_ADDRにネットワーク経由で接続します。ご自身のマシンではありません。localhostやプライベートアドレスではなく、パブリック DNS 名または HCP エンドポイントを使用してください。 - クレデンシャル — Vault トークン、または AppRole(
role_id+secret_id)。エージェントがクエリしたいパスへの読み取りアクセスを付与したポリシーが必要です。 - (Enterprise / HCP のみ) シークレットが存在するネームスペース。
セットアップ
デプロイ環境に合った認証方式を選択してください。AppRole はsecret_id を長期トークンの置き換えなしにローテーションできるため、本番環境で推奨されます。
- Token
- AppRole
CloudThinker に接続を追加する
Connections → HashiCorp Vault に移動し、以下を入力します:
- VAULT_ADDR:スキームとポートを含む Vault URL(例:
https://vault.example.com:8200) - VAULT_NAMESPACE:オープンソース Vault の場合は空白のまま。HCP(
admin)または Enterprise ネームスペースの場合は設定 - VAULT_AUTH_METHOD:Token
- VAULT_TOKEN:前のステップで取得したトークン
vault token lookup でトークンを検証し、Connected ステータスを表示します。接続詳細
| フィールド | 必須 | 備考 |
|---|---|---|
| VAULT_ADDR | 必須 | スキームを含む完全な URL(例:https://vault.example.com:8200) |
| VAULT_NAMESPACE | 任意 | HCP Vault Dedicated(admin)および Vault Enterprise のネームスペースデプロイのみ |
| VAULT_AUTH_METHOD | 必須 | token または approle |
| VAULT_TOKEN | Token 認証 | 認証方式が Token の場合に表示 |
| VAULT_ROLE_ID | AppRole | 認証方式が AppRole の場合に表示 |
| VAULT_SECRET_ID | AppRole | 認証方式が AppRole の場合に表示 |
必要な権限
Oliver がクエリする必要があるシークレットパスに対してread と list を付与するポリシーを、トークンまたは AppRole にアタッチしてください。Vault はデフォルトで拒否するため、Oliver がクレデンシャルに付与されたポリシーを超えることはできません。
エージェントの機能
Oliver のアクションはトークンまたは AppRole のポリシーによって制限されます。読み取り操作は自動的に実行されますが、Vault を変更する操作やリース発行が必要な操作は CloudThinker での承認が必要です。| 機能 | 説明 |
|---|---|
| シークレット読み取り | KV v1/v2 シークレットパスと値の読み取り・一覧表示 |
| ヘルス検査 | シール状態、マウント済みシークレットエンジン、認証メソッドの確認 |
| ポリシー監査 | ポリシー・監査デバイス・トークンメタデータの一覧表示と読み取り |
| 動的クレデンシャル | 短期のデータベースおよびクラウドクレデンシャルの生成 — 承認が必要 |
| シークレット書き込み | KV シークレットとバージョンの作成・更新・削除 — 承認が必要 |
| リース管理 | クレデンシャルリースの失効または更新 — 承認が必要 |
接続を確認する
プロンプト例
トラブルシューティング
サンドボックスから VAULT_ADDR に到達できない
サンドボックスから VAULT_ADDR に到達できない
vault CLI は CloudThinker のサンドボックス内で動作し、ご自身のマシン上ではありません。localhost・127.0.0.1・host.docker.internal はサンドボックス自体に解決され、dial tcp ... no such host または接続拒否で失敗します。VAULT_ADDR にはパブリック DNS 名または HCP Vault Dedicated エンドポイントを指定してください。ファイアウォールや VPN の背後にある Vault は、パブリックエンドポイント・許可されたエグレス・ネットワークブリッジのいずれかで公開する必要があります。VAULT_ADDR のスキームが誤っている
VAULT_ADDR のスキームが誤っている
vault にはスキームを含む完全な URL が必要です。vault.example.com:8200(スキームなし)は接続エラーになります。https://vault.example.com:8200、または開発モードのサーバーには http://... を使用してください。403 アクセス拒否
403 アクセス拒否
トークンまたは AppRole ポリシーが、要求されたパスへのアクセスを付与していません。
vault token lookup でポリシーを確認し、エージェントがクエリするパスをカバーしているか確認してください。たとえば kv/data/production/* を読み取るには、そのパスに capabilities = ["read", "list"] が必要です。HCP / Enterprise でネームスペースが必要
HCP / Enterprise でネームスペースが必要
HCP Vault Dedicated および Enterprise のマルチネームスペースデプロイでは
VAULT_NAMESPACE が必要です。HCP のデフォルトは admin です。HCP または Enterprise で no handler for route または permission denied が表示される場合は、ネームスペースが設定されているか確認してください。AppRole の secret_id が期限切れ
AppRole の secret_id が期限切れ
secret_id には TTL(secret_id_ttl)があります。期限切れになると、invalid secret_id で認証が失敗します。新しい secret_id を生成し、VAULT_SECRET_ID を更新して再接続してください:Vault がシールされている
Vault がシールされている
vault status に Sealed: true と表示され、操作が一切できません。Vault オペレーターがクラスターをアンシールする(vault operator unseal)必要があります。その後、エージェントは読み書きができるようになります。セキュリティ
- 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
- デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
- 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
- オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
- 本番環境では AppRole を推奨 — 長期トークンを置き換えることなく
secret_idをローテーションできます。 - 書き込み操作のゲート — クレデンシャルの発行と変更が常に人間の承認を経るよう、書き込みパスは承認制に保ってください。
関連
Oliver Agent
セキュリティとコンプライアンスエージェント
承認コントロール
書き込み操作を承認制でゲート