Vault SecretRef
バンドルされた Vault Plugin を使用すると、OpenClaw は Gateway の起動時およびリロード時に、HashiCorp Vault からexec SecretRef を解決できます。OpenClaw は Vault への参照を設定に保存し、解決された値をメモリ内のシークレットスナップショットに保持します。解決された API キーを openclaw.json に書き戻すことはありません。
すでに Vault を運用している場合や、モデルプロバイダーのキーを OpenClaw の設定ファイル外に保存したい場合に使用します。SecretRef のランタイムモデルについては、シークレット管理を参照してください。
始める前に
必要なもの:- バンドルされた
vaultPlugin を利用できる OpenClaw - 到達可能な Vault サーバー
- OpenClaw が解決するシークレットパスへの読み取りアクセス権を持つクライアントトークンを生成できる Vault 認証
- Gateway を起動する環境には、
VAULT_ADDRと、VAULT_TOKEN、VAULT_TOKEN_FILEを伴うOPENCLAW_VAULT_AUTH_METHOD=token_file、または設定済みの JWT/Kubernetes ログインのいずれかが必要
openclaw vault コマンドを実行する前に、バンドルされた Plugin を有効にします。
プロバイダーキーを Vault に保存する
OpenClaw のデフォルトはsecret にマウントされた KV v2 で、Vault 開発サーバーの例と一致します。本番環境の Vault では、SecretRef ID を作成する前に、OPENCLAW_VAULT_KV_MOUNT を実際の KV マウントパスに設定してください。OpenClaw のデフォルトでは、次の SecretRef ID:
Gateway から Vault を利用可能にする
コンテナ化されていないローカル Gateway では、OpenClaw を起動するのと同じシェルで Vault の設定をエクスポートします。デフォルトの認証方式では、VAULT_TOKEN から Vault クライアントトークンを読み取ります。
jwt の Vault ロールを使用します。
kubernetes を使用します。これは Pod として稼働する Gateway を対象としています。デフォルトのマウントは kubernetes、デフォルトの JWT ファイルは標準のサービスアカウントトークンパスです。
auth/kubernetes 以外の場所にマウントしている場合にのみ、OPENCLAW_VAULT_AUTH_MOUNT を設定します。サービスアカウントトークンがカスタムパスに投影される場合にのみ、OPENCLAW_VAULT_JWT_FILE を設定します。
任意の設定:
openclaw vault status が VAULT_TOKEN を出力することはありません。トークン、トークンファイル、JWT ファイルが設定されているかどうかのみを報告します。
SecretRef プランを生成して適用する
OpenRouter のモデルプロバイダー API キーを Vault にマッピングするプランを作成します。--allow-exec を使用します。
Gateway がまだ実行されていない場合は、openclaw secrets reload を実行する代わりに、プランを適用した後で通常どおり起動します。
さらにプロバイダーキーを設定する
組み込みのショートカット:--provider-key を使用します。
--provider-key <provider=id> は、models.providers.<provider>.apiKey に SecretRef を書き込みます。カスタムプロバイダーでは、プロバイダーの baseUrl、api、または models の設定は作成されないため、先にそれらを設定してください。
既知の SecretRef ターゲットパスには、--target <path=id> を使用します。
openclaw.json に適用されます。既存の auth-profiles.json ターゲットには、auth-profiles:<agentId>:<path> を使用します。
ターゲットパスは、登録済みの OpenClaw SecretRef ターゲットである必要があります。setup コマンドは、OpenClaw に任意の名前付きシークレットを作成しません。シークレットストアは引き続き Vault であり、OpenClaw はサポート対象の設定フィールドにのみ SecretRef を保存します。
SecretRef ID の形式
Vault SecretRef ID は次の規則を使用します。
返される Vault フィールドは文字列である必要があります。
KV v1 では、次のように設定します。
providers/openrouter/apiKey は次を読み取ります。
OpenClaw が保存する内容
Vault setup プランを適用すると、Plugin が管理するプロバイダーが保存されます。コンテナとマネージドデプロイ
コンテナ化された Gateway でも、同じ Plugin と SecretRef 設定を使用します。コンテナには次のものを渡す必要があります。VAULT_ADDR- いずれか 1 つの認証ソース:
VAULT_TOKENOPENCLAW_VAULT_AUTH_METHOD=token_fileとVAULT_TOKEN_FILEOPENCLAW_VAULT_AUTH_METHOD=jwtとOPENCLAW_VAULT_AUTH_MOUNT、OPENCLAW_VAULT_AUTH_ROLE、およびOPENCLAW_VAULT_JWT_FILEOPENCLAW_VAULT_AUTH_METHOD=kubernetesとOPENCLAW_VAULT_AUTH_ROLE。必要に応じてOPENCLAW_VAULT_AUTH_MOUNTまたはOPENCLAW_VAULT_JWT_FILEを上書き
- 任意の
VAULT_NAMESPACE、OPENCLAW_VAULT_KV_MOUNT、およびOPENCLAW_VAULT_KV_VERSION
OPENCLAW_VAULT_AUTH_METHOD=kubernetes を優先してください。Vault がクラスターを汎用 JWT/OIDC 発行者として扱うよう設定されている場合にのみ、OPENCLAW_VAULT_AUTH_METHOD=jwt を使用します。どちらの方法も、Kubernetes Secret に長期間有効な Vault トークンを保存するより適切です。Vault Agent サイドカーまたはインジェクターを使用するデプロイでは、代わりに token_file を使用できます。
マルチテナントの Vault 構成では、テナントのルーティングを Vault ポリシーとデプロイ設定に保持します。OpenClaw では、固定のマウント、ロール、またはパスは必要ありません。各 Gateway 環境で独自の OPENCLAW_VAULT_KV_MOUNT、OPENCLAW_VAULT_AUTH_ROLE、および SecretRef ID を設定できます。1 つの共有 Gateway で異なる Vault ユーザーを同時に解決する必要がある場合は、異なる認証環境をラップする手動設定の exec プロバイダーを使用するか、個別の Vault 環境変数を持つ Gateway 環境にテナントを分割してください。