secrets
Используйте openclaw secrets для управления SecretRefs и поддержания работоспособности активного снимка среды выполнения. Роли команд:
reload: RPC-вызов шлюза (secrets.reload), который повторно разрешает ссылки и заменяет снимок среды выполнения только при полном успехе (без записи конфигурации).audit: сканирование только для чтения хранилищ конфигурации, аутентификации, сгенерированных моделей и устаревших остатков на наличие открытого текста, неразрешенных ссылок и смещения приоритетов.configure: интерактивный планировщик для настройки провайдера, сопоставления целей и предварительной проверки (требуется TTY).apply: выполнение сохраненного плана (--dry-runтолько для проверки) с последующей очисткой целевых остатков открытого текста.
Рекомендуемый цикл оператора:
openclaw secrets audit --check
openclaw secrets configure
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
openclaw secrets audit --check
openclaw secrets reload
Примечание о кодах выхода для CI/ворот:
audit --checkвозвращает1при обнаружении проблем.- неразрешенные ссылки возвращают
2.
Связанные материалы:
- Руководство по секретам: Управление секретами
- Область учетных данных: Область учетных данных SecretRef
- Руководство по безопасности: Безопасность
Перезагрузка снимка среды выполнения
Повторно разрешите ссылки на секреты и атомарно замените снимок среды выполнения.
openclaw secrets reload
openclaw secrets reload --json
Примечания:
- Использует RPC-метод шлюза
secrets.reload. - Если разрешение не удалось, шлюз сохраняет последний известный исправный снимок и возвращает ошибку (без частичной активации).
- JSON-ответ включает
warningCount.
Аудит
Сканирование состояния OpenClaw на наличие:
- хранения секретов в открытом тексте
- неразрешенных ссылок
- смещения приоритетов (учетные данные
auth-profiles.json, перекрывающие ссылкиopenclaw.json) - остатков в сгенерированных
agents/*/agent/models.json(значенияapiKeyпровайдера и конфиденциальные заголовки провайдера) - устаревших остатков (записи устаревшего хранилища аутентификации, напоминания OAuth)
Примечание об остатках заголовков:
- Обнаружение конфиденциальных заголовков провайдера основано на эвристике имен (распространенные имена и фрагменты заголовков аутентификации/учетных данных, такие как
authorization,x-api-key,token,secret,passwordиcredential).
openclaw secrets audit
openclaw secrets audit --check
openclaw secrets audit --json
Поведение при выходе:
--checkзавершается с ненулевым кодом при обнаружении проблем.- неразрешенные ссылки завершаются с кодом ненулевого приоритета.
Основные моменты структуры отчета:
status:clean | findings | unresolvedsummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- коды обнаружений:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
Настройка (интерактивный помощник)
Интерактивное создание изменений провайдера и SecretRef, выполнение предварительной проверки и опциональное применение:
openclaw secrets configure
openclaw secrets configure --plan-out /tmp/openclaw-secrets-plan.json
openclaw secrets configure --apply --yes
openclaw secrets configure --providers-only
openclaw secrets configure --skip-provider-setup
openclaw secrets configure --agent ops
openclaw secrets configure --json
Поток:
- Сначала настройка провайдера (
add/edit/removeдля псевдонимовsecrets.providers). - Затем сопоставление учетных данных (выбор полей и назначение ссылок
{source, provider, id}). - В конце предварительная проверка и опциональное применение.
Флаги:
--providers-only: настроить толькоsecrets.providers, пропустить сопоставление учетных данных.--skip-provider-setup: пропустить настройку провайдера и сопоставить учетные данные с существующими провайдерами.--agent <id>: ограничить обнаружение целей и запись в хранилищеauth-profiles.jsonодним агентом.
Примечания:
- Требуется интерактивный TTY.
- Нельзя комбинировать
--providers-onlyс--skip-provider-setup. configureнацелен на поля, содержащие секреты, вopenclaw.json, а также наauth-profiles.jsonдля выбранной области агента.configureподдерживает создание новых сопоставленийauth-profiles.jsonнепосредственно в процессе выбора.- Каноническая поддерживаемая область: Область учетных данных SecretRef.
- Выполняет предварительное разрешение перед применением.
- Сгенерированные планы по умолчанию включают параметры очистки (
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJsonвсе включены). - Путь применения является односторонним для очищенных значений открытого текста.
- Без
--applyCLI все равно запроситApply this plan now?после предварительной проверки. - С
--apply(и без--yes) CLI запрашивает дополнительное необратимое подтверждение.
Примечание по безопасности провайдера exec:
- Установки Homebrew часто предоставляют символические ссылки на бинарные файлы в
/opt/homebrew/bin/*. - Устанавливайте
allowSymlinkCommand: trueтолько при необходимости для доверенных путей менеджера пакетов и сочетайте это сtrustedDirs(например,["/opt/homebrew"]). - В Windows, если проверка ACL недоступна для пути провайдера, OpenClaw завершается с ошибкой. Только для доверенных путей установите
allowInsecurePath: trueдля этого провайдера, чтобы обойти проверки безопасности пути.
Применение сохраненного плана
Примените или выполните предварительную проверку плана, созданного ранее:
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run
openclaw secrets apply --from /tmp/openclaw-secrets-plan.json --json
Детали контракта плана (разрешенные пути целей, правила валидации и семантика сбоев):
Что apply может обновить:
openclaw.json(цели SecretRef + добавление/удаление провайдеров)auth-profiles.json(очистка целей провайдера)- устаревшие остатки
auth.json - известные ключи секретов
~/.openclaw/.env, чьи значения были перенесены
Почему нет резервных копий для отката
secrets apply намеренно не создает резервные копии для отката, содержащие старые значения открытого текста. Безопасность обеспечивается строгой предварительной проверкой + атомарным применением с восстановлением в памяти при сбое по возможности.
Пример
openclaw secrets audit --check
openclaw secrets configure
openclaw secrets audit --check
Если audit --check все еще сообщает о находках открытого текста, обновите оставшиеся указанные пути целей и повторно запустите аудит.