openclaw secrets
Використовуйте openclaw secrets для керування SecretRef і підтримання активного знімка runtime у здоровому стані.
Ролі команд:
reload: gateway RPC (secrets.reload), який повторно розв’язує ref і замінює знімок runtime лише за повного успіху (без запису конфігурації).audit: сканування лише для читання конфігурації/auth/згенерованих сховищ моделей і застарілих залишків на наявність plaintext, нерозв’язаних ref та дрейфу пріоритетів (exec ref пропускаються, якщо не встановлено--allow-exec).configure: інтерактивний планувальник для налаштування provider, зіставлення цілей і preflight (потрібен TTY).apply: виконати збережений план (--dry-runлише для валідації; сухий запуск типово пропускає перевірки exec, а режим запису відхиляє плани з exec, якщо не встановлено--allow-exec), а потім очистити цільові залишки plaintext.
exec SecretRef/provider, передавайте --allow-exec і в командах dry-run, і в командах apply із записом.
Примітка про коди виходу для CI/перевірок:
audit --checkповертає1, якщо є знахідки.- нерозв’язані ref повертають
2.
- Посібник із секретів: Керування секретами
- Поверхня облікових даних: Поверхня облікових даних SecretRef
- Посібник із безпеки: Безпека
Перезавантажити знімок runtime
Повторно розв’язати посилання secret ref і атомарно замінити знімок runtime.- Використовує gateway RPC-метод
secrets.reload. - Якщо розв’язання завершується помилкою, gateway зберігає знімок останнього відомого коректного стану та повертає помилку (без часткової активації).
- Відповідь JSON містить
warningCount.
--url <url>--token <token>--timeout <ms>--json
Аудит
Сканувати стан OpenClaw на наявність:- зберігання секретів у plaintext
- нерозв’язаних ref
- дрейфу пріоритетів (облікові дані в
auth-profiles.json, що затіняють ref уopenclaw.json) - залишків у згенерованому
agents/*/agent/models.json(значення providerapiKeyі чутливі заголовки provider) - застарілих залишків (записи в застарілому сховищі auth, нагадування OAuth)
- Виявлення чутливих заголовків provider базується на евристиці назв (поширені назви та фрагменти заголовків auth/облікових даних, як-от
authorization,x-api-key,token,secret,passwordіcredential).
--checkзавершується з ненульовим кодом, якщо є знахідки.- нерозв’язані ref завершуються ненульовим кодом із вищим пріоритетом.
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- коди знахідок:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
Configure (інтерактивний помічник)
Інтерактивно створити зміни provider і SecretRef, виконати preflight і, за бажання, застосувати:- Спочатку налаштування provider (
add/edit/removeдля псевдонімівsecrets.providers). - Далі зіставлення облікових даних (вибір полів і призначення ref
{source, provider, id}). - Наприкінці preflight і, за бажання, apply.
--providers-only: налаштувати лишеsecrets.providers, пропустити зіставлення облікових даних.--skip-provider-setup: пропустити налаштування provider і зіставити облікові дані з наявними provider.--agent <id>: обмежити виявлення цілей і записи вauth-profiles.jsonодним сховищем агента.--allow-exec: дозволити перевірки exec SecretRef під час preflight/apply (може виконувати команди provider).
- Потрібен інтерактивний TTY.
- Не можна поєднувати
--providers-onlyіз--skip-provider-setup. configureнацілюється на поля, що містять секрети, уopenclaw.json, а також наauth-profiles.jsonдля вибраної області агента.configureпідтримує створення нових зіставленьauth-profiles.jsonбезпосередньо в потоці вибору.- Канонічна підтримувана поверхня: Поверхня облікових даних SecretRef.
- Перед apply виконується preflight-розв’язання.
- Якщо preflight/apply містить exec ref, залишайте
--allow-execувімкненим для обох кроків. - Згенеровані плани типово вмикають параметри очищення (
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJsonусі ввімкнені). - Шлях apply є односпрямованим для очищених значень plaintext.
- Без
--applyCLI все одно ставить запитанняApply this plan now?після preflight. - Із
--apply(і без--yes) CLI запитує додаткове незворотне підтвердження. --jsonвиводить план + звіт preflight, але команда все одно потребує інтерактивного TTY.
- Установлення через Homebrew часто відкривають доступ до символьних посилань на бінарні файли в
/opt/homebrew/bin/*. - Встановлюйте
allowSymlinkCommand: trueлише за потреби для довірених шляхів менеджера пакетів і поєднуйте це зtrustedDirs(наприклад["/opt/homebrew"]). - У Windows, якщо перевірка ACL недоступна для шляху provider, OpenClaw завершується за принципом fail closed. Лише для довірених шляхів установіть
allowInsecurePath: trueдля цього provider, щоб обійти перевірки безпеки шляху.
Застосувати збережений план
Застосувати або виконати preflight для раніше згенерованого плану:--dry-runвалідує preflight без запису файлів.- Перевірки exec SecretRef типово пропускаються під час dry-run.
- Режим запису відхиляє плани, що містять exec SecretRef/provider, якщо не встановлено
--allow-exec. - Використовуйте
--allow-exec, щоб увімкнути перевірки/виконання exec provider у будь-якому режимі.
apply:
openclaw.json(цілі SecretRef + upsert/delete provider)auth-profiles.json(очищення цілей provider)- залишки застарілого
auth.json - відомі секретні ключі в
~/.openclaw/.env, значення яких було мігровано
Чому немає резервних копій для відкату
secrets apply навмисно не записує резервні копії для відкату, що містять старі значення plaintext.
Безпека забезпечується суворим preflight + майже атомарним apply із best-effort відновленням у пам’яті в разі збою.
Приклад
audit --check і далі повідомляє про знахідки plaintext, оновіть решту вказаних цільових шляхів і повторно запустіть аудит.