SecretRef для Vault
Встроенный плагин Vault позволяет OpenClaw разрешатьexec SecretRef из
HashiCorp Vault при запуске и перезагрузке Gateway. OpenClaw хранит ссылки Vault
в конфигурации, сохраняет разрешённые значения в снимке секретов в памяти
и не записывает разрешённые API-ключи обратно в openclaw.json.
Используйте этот вариант, если вы уже используете Vault или хотите хранить ключи поставщиков
моделей вне файлов конфигурации OpenClaw. О модели выполнения SecretRef см.
Управление секретами.
Перед началом
Вам потребуется:- OpenClaw с доступным встроенным плагином
vault - доступный сервер Vault
- аутентификация Vault, позволяющая получить клиентский токен с доступом на чтение путей секретов, которые должен разрешать OpenClaw
- среда, запускающая Gateway, должна содержать
VAULT_ADDRи либоVAULT_TOKEN, либоOPENCLAW_VAULT_AUTH_METHOD=token_fileвместе сVAULT_TOKEN_FILE, либо настроенный вход через JWT/Kubernetes
openclaw vault:
Сохранение ключа поставщика в Vault
По умолчанию OpenClaw использует KV v2, смонтированный вsecret, как в примерах
с сервером разработки Vault. Для рабочего сервера Vault перед созданием идентификаторов SecretRef
задайте для OPENCLAW_VAULT_KV_MOUNT фактический путь монтирования KV. При стандартных настройках
OpenClaw этот идентификатор SecretRef:
Предоставление Gateway доступа к Vault
Для локального Gateway, работающего без контейнера, экспортируйте настройки Vault в той же оболочке, из которой запускается OpenClaw. Стандартный метод аутентификации считывает клиентский токен Vault изVAULT_TOKEN:
jwt:
kubernetes. Он предназначен для
Gateway, работающих как Pod; стандартная точка монтирования — kubernetes, а стандартный файл JWT
находится по обычному пути токена сервисной учётной записи:
OPENCLAW_VAULT_AUTH_MOUNT, только если аутентификация Kubernetes смонтирована в Vault
не в auth/kubernetes. Задавайте OPENCLAW_VAULT_JWT_FILE, только если токен сервисной
учётной записи проецируется по нестандартному пути.
Необязательные настройки:
openclaw vault status никогда не выводит VAULT_TOKEN; команда сообщает только,
заданы ли токен, файл токена и файл JWT.
Создание и применение плана SecretRef
Создайте план, сопоставляющий API-ключ поставщика моделей OpenRouter с Vault:--allow-exec, поскольку плагин Vault выполняет разрешение через управляемого OpenClaw
поставщика SecretRef типа exec.
Если Gateway ещё не запущен, после применения плана запустите его обычным способом
вместо выполнения openclaw secrets reload.
Настройка дополнительных ключей поставщиков
Встроенные сокращения:--provider-key:
--provider-key <provider=id> записывает SecretRef в
models.providers.<provider>.apiKey. Для пользовательских поставщиков команда не создаёт
настройки поставщика baseUrl, api или models; сначала настройте их.
Используйте --target <path=id> для любого известного целевого пути SecretRef:
openclaw.json. Используйте
auth-profiles:<agentId>:<path> для существующих целей auth-profiles.json.
Целевой путь должен быть зарегистрированной целью SecretRef в OpenClaw. Команда настройки
не создаёт произвольные именованные секреты в OpenClaw: хранилищем секретов остаётся Vault,
а OpenClaw сохраняет SecretRef только в поддерживаемых полях конфигурации.
Формат идентификатора SecretRef
Идентификаторы Vault SecretRef используют следующее соглашение:
Возвращаемое поле 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 настроена аутентификация Kubernetes для кластера. Используйте
OPENCLAW_VAULT_AUTH_METHOD=jwt, только если Vault настроен так, чтобы считать кластер
обычным издателем JWT/OIDC. Оба варианта лучше, чем долгоживущий токен Vault
в секрете Kubernetes. Развёртывания с дополнительным контейнером Vault Agent или инжектором
могут вместо этого использовать token_file.
В мультитенантных конфигурациях Vault задавайте маршрутизацию арендаторов в политике Vault
и конфигурации развёртывания. OpenClaw не требует фиксированных точки монтирования, роли или пути:
каждая среда Gateway может задавать собственные OPENCLAW_VAULT_KV_MOUNT,
OPENCLAW_VAULT_AUTH_ROLE и идентификаторы SecretRef. Если один общий Gateway должен одновременно разрешать
данные разных пользователей Vault, используйте вручную настроенных поставщиков exec, оборачивающих
разные среды аутентификации, либо разделите арендаторов между средами Gateway
с отдельными переменными окружения Vault.