Vault SecretRefs
内置的 Vault 插件允许 OpenClaw 在 Gateway 网关启动和重新加载时从 HashiCorp Vault 解析exec SecretRefs。OpenClaw 将 Vault 引用存储在配置中,将解析后的值保留在内存中的密钥快照中,并且不会将解析后的 API 密钥写回 openclaw.json。
如果你已经在运行 Vault,或希望将模型提供商密钥存放在 OpenClaw 配置文件之外,请使用此功能。有关 SecretRef 运行时模型,请参阅密钥管理。
开始之前
你需要:- 具有可用内置
vault插件的 OpenClaw - 可访问的 Vault 服务器
- 能够生成客户端令牌的 Vault 身份验证,该令牌对 OpenClaw 应解析的密钥路径具有读取权限
- 启动 Gateway 网关的环境必须包含
VAULT_ADDR,以及VAULT_TOKEN、带有VAULT_TOKEN_FILE的OPENCLAW_VAULT_AUTH_METHOD=token_file,或已配置的 JWT/Kubernetes 登录方式之一
openclaw vault 命令前,请启用内置插件:
在 Vault 中存储提供商密钥
OpenClaw 默认使用挂载在secret 的 KV v2,这与 Vault 开发服务器示例一致。对于生产环境中的 Vault,请在创建 SecretRef ID 前,将 OPENCLAW_VAULT_KV_MOUNT 设置为实际的 KV 挂载路径。使用 OpenClaw 默认设置时,此 SecretRef ID:
让 Gateway 网关能够访问 Vault
对于未容器化的本地 Gateway 网关,请在启动 OpenClaw 的同一 shell 中导出 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,因为 Vault 插件通过 OpenClaw 管理的 exec SecretRef 提供商进行解析。
如果 Gateway 网关尚未运行,请在应用计划后正常启动它,而不是运行 openclaw secrets reload。
配置更多提供商密钥
内置快捷选项:--provider-key:
--provider-key <provider=id> 都会将 SecretRef 写入 models.providers.<provider>.apiKey。对于自定义提供商,它不会创建该提供商的 baseUrl、api 或 models 设置;请先配置这些设置。
对任何已知的 SecretRef 目标路径使用 --target <path=id>:
openclaw.json。对现有 auth-profiles.json 目标使用 auth-profiles:<agentId>:<path>。目标路径必须是已注册的 OpenClaw SecretRef 目标。setup 命令不会在 OpenClaw 中创建任意命名的密钥;Vault 仍是密钥存储,而 OpenClaw 只在受支持的配置字段中存储 SecretRefs。
SecretRef ID 格式
Vault SecretRef ID 使用以下约定:
返回的 Vault 字段必须是字符串。
对于 KV v1,请设置:
providers/openrouter/apiKey 会读取:
OpenClaw 存储的内容
应用 Vault 设置计划会存储由插件管理的提供商:容器和托管部署
容器化的 Gateway 网关仍使用相同的插件和 SecretRef 配置。容器必须接收:VAULT_ADDR- 一种身份验证来源:
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 sidecar 或注入器部署可以改用 token_file。
对于多租户 Vault 设置,请在 Vault 策略和部署配置中保留租户路由。OpenClaw 不要求固定的挂载点、角色或路径:每个 Gateway 网关环境都可以设置自己的 OPENCLAW_VAULT_KV_MOUNT、OPENCLAW_VAULT_AUTH_ROLE 和 SecretRef ID。如果一个共享 Gateway 网关必须同时为不同的 Vault 用户解析密钥,请使用手动配置的 exec 提供商来封装不同的身份验证环境,或将租户拆分到具有独立 Vault 环境变量的不同 Gateway 网关环境中。