Брокер секретов 1Password
Встроенный плагинonepassword предоставляет агентам единый инструмент с управлением политиками для
чтения заданного набора полей 1Password. По умолчанию он отключён и
не выполняет никаких действий, пока не будет указан plugins.entries.onepassword.config.
Это инструмент агента, а не провайдер SecretRef. Он не внедряет переменные
окружения и не разрешает секреты конфигурации OpenClaw.
Модель безопасности
- Только аутентификация с помощью сервисной учётной записи. Токен хранится в локальном файле
учётных данных и никогда не принимается в
openclaw.json. - Только заданный реестр. Агенты могут перечислять настроенные идентификаторы, но плагин никогда не просматривает содержимое хранилища 1Password.
- Политика
auto,approveилиdenyдля каждого идентификатора. - Разрешения имеют срок действия. Кэшированное значение никогда не обходит текущую политику.
- Каждая попытка доступа записывается в общее состояние SQLite OpenClaw. Строки аудита содержат указанную причину; не включайте в причины конфиденциальные данные. Брокер никогда не копирует полученное значение или сервисный токен в строку аудита.
- После завершения текущего выполнения инструмента механизм сохранения транскрипта,
принадлежащий OpenClaw, заменяет успешно полученное значение
getотредактированными метаданными. - Во время этого выполнения значение доступно модели. Если модель скопирует его в последующий вызов инструмента или ответ, такая отдельная запись не обрабатывается перехватчиком сохранения этого плагина. Используйте узкие политики и не просите модель повторять значение.
- При каждом промахе кэша плагин однократно вызывает
op. Он не повторяет запросы при ограничении частоты или других сбоях.
Перед началом работы
Вам потребуются:- CLI 1Password (
op), установленный на хосте Gateway - сервисная учётная запись 1Password с доступом к выбранным элементам
- отдельный файл токена сервисной учётной записи
OPENCLAW_STATE_DIR, замените ~/.openclaw этим каталогом.
Плагин однократно предупреждает, если файл токена доступен группе или
другим пользователям для чтения либо записи.
Настройка зарегистрированных секретов
Добавьте конфигурацию плагина вopenclaw.json:
field принимает одну метку
или идентификатор поля, не должен содержать запятую и по умолчанию имеет значение credential.
Значение vault на уровне элемента переопределяет хранилище по умолчанию. В opBin можно указать абсолютный
путь к исполняемому файлу op; в противном случае плагин разрешает op из PATH.
Названия элементов не должны начинаться с дефиса.
Использование инструмента агента
Имя инструмента —onepassword.
Выведите зарегистрированные идентификаторы:
reason обязателен, не должен быть пустым и ограничен 300 символами.
Успешный запрос get возвращает значение, настроенный идентификатор, название элемента и
метку поля.
Уровни политик и подтверждения
auto: немедленно получить значение и зарегистрировать запрос в журнале аудита.deny: заблокировать запрос и зарегистрировать его в журнале аудита.approve: использовать неистёкшее постоянное разрешение или запросить у человека однократное разрешение, постоянное разрешение либо отказ.
grantTtlHours, по умолчанию — через 720 часов.
Если подтверждение не получено или истекло время ожидания, запрос отклоняется; максимальное время
ожидания подтверждения составляет 600 секунд. Плагин хранит до 1 024 постоянных разрешений; при
достижении этого предела самое старое разрешение удаляется, и его агент должен подтвердить следующий доступ.
Срок хранения во внутреннем кэше по умолчанию составляет 300 секунд, а его размер ограничен настроенным
реестром идентификаторов. Чтобы отключить кэш, задайте для cacheTtlSeconds значение 0. Политика проверяется
перед каждым поиском в кэше, а попадания в кэш регистрируются в журнале аудита. Перезагрузка конфигурации во время выполнения
вступает в силу на каждой границе проверки политики и выполнения; отключение плагина либо
удаление, запрет или переназначение идентификатора аннулирует ожидающие разрешения и
кэшированные значения.
Просмотр состояния и истории аудита
Покажите готовность и статистику реестра:op и по какому пути,
количество зарегистрированных элементов и количество элементов для каждой политики. Она никогда не читает и не выводит
токен или секретные значения.
Покажите 50 последних строк аудита:
Поведение CLI 1Password
При каждом промахе кэша выполняетсяop item get с настроенными элементом, хранилищем и точным
селектором поля, выводом JSON, ограниченным временем ожидания и --cache=false. Дочерний процесс
получает только это поле, а не весь элемент. В окружении дочернего процесса присутствуют только
OP_SERVICE_ACCOUNT_TOKEN и HOME.
Плагин выполняет одну попытку. Ошибки RATE_LIMITED следует обрабатывать ожиданием
перед последующим запросом агента; плагин не создаёт автоматический цикл повторных
попыток. Другие стабильные коды ошибок позволяют различать отсутствие токенов или исполняемых файлов, отсутствие
элементов или полей, сбои аутентификации, превышение времени ожидания и другие сбои op.