openclaw secrets
openclaw secrets를 사용해 SecretRef를 관리하고 활성 런타임 스냅샷을 정상 상태로 유지하세요.
명령 역할:
reload: ref를 다시 해석하고 전체 성공 시에만 런타임 스냅샷을 교체하는 gateway RPC(secrets.reload)입니다(config 쓰기 없음).audit: 평문, 해석되지 않은 ref, 우선순위 드리프트를 대상으로 구성/auth/생성된 모델 저장소와 레거시 잔여물을 읽기 전용으로 검사합니다(--allow-exec가 설정되지 않으면 exec ref는 건너뜀).configure: 공급자 설정, 대상 매핑, 사전 점검을 위한 대화형 플래너입니다(TTY 필요).apply: 저장된 계획을 실행합니다(검증 전용은--dry-run; dry-run은 기본적으로 exec 검사를 건너뛰고, 쓰기 모드는--allow-exec가 설정되지 않으면 exec가 포함된 계획을 거부함). 이후 대상 평문 잔여물을 스크럽합니다.
exec SecretRef/공급자가 포함되어 있다면 dry-run과 실제 쓰기 apply 명령 모두에 --allow-exec를 전달하세요.
CI/게이트용 종료 코드 참고:
audit --check는 항목이 발견되면1을 반환합니다.- 해석되지 않은 ref는
2를 반환합니다.
- Secrets 가이드: Secrets Management
- 자격 증명 표면: SecretRef Credential Surface
- 보안 가이드: Security
런타임 스냅샷 다시 로드
secret ref를 다시 해석하고 런타임 스냅샷을 원자적으로 교체합니다.- gateway RPC 메서드
secrets.reload를 사용합니다. - 해석에 실패하면 gateway는 마지막으로 알려진 정상 스냅샷을 유지하고 오류를 반환합니다(부분 활성화 없음).
- JSON 응답에는
warningCount가 포함됩니다.
--url <url>--token <token>--timeout <ms>--json
감사
OpenClaw 상태에서 다음을 검사합니다:- 평문 secret 저장소
- 해석되지 않은 ref
- 우선순위 드리프트(
auth-profiles.json자격 증명이openclaw.jsonref를 가림) - 생성된
agents/*/agent/models.json잔여물(공급자apiKey값 및 민감한 공급자 헤더) - 레거시 잔여물(레거시 auth 저장소 항목, OAuth 알림)
- 민감한 공급자 헤더 감지는 이름 휴리스틱 기반입니다(일반적인 auth/자격 증명 헤더 이름과
authorization,x-api-key,token,secret,password,credential같은 조각).
--check는 항목이 발견되면 0이 아닌 값으로 종료합니다.- 해석되지 않은 ref는 더 높은 우선순위의 0이 아닌 종료 코드를 사용합니다.
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- finding 코드:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
구성(대화형 도우미)
공급자 및 SecretRef 변경 사항을 대화형으로 빌드하고, 사전 점검을 실행한 뒤, 선택적으로 적용합니다:- 먼저 공급자 설정(
secrets.providers별칭에 대해add/edit/remove) - 다음으로 자격 증명 매핑(필드 선택 후
{source, provider, id}ref 할당) - 마지막으로 사전 점검 및 선택적 적용
--providers-only:secrets.providers만 구성하고 자격 증명 매핑은 건너뜁니다.--skip-provider-setup: 공급자 설정을 건너뛰고 자격 증명을 기존 공급자에 매핑합니다.--agent <id>:auth-profiles.json대상 검색 및 쓰기를 하나의 agent 저장소 범위로 제한합니다.--allow-exec: 사전 점검/apply 중 exec SecretRef 검사를 허용합니다(공급자 명령을 실행할 수 있음).
- 대화형 TTY가 필요합니다.
--providers-only와--skip-provider-setup은 함께 사용할 수 없습니다.configure는openclaw.json의 secret 보유 필드와 선택한 agent 범위의auth-profiles.json을 대상으로 합니다.configure는 picker 흐름에서 새auth-profiles.json매핑을 직접 생성하는 것을 지원합니다.- 정식 지원 표면: SecretRef Credential Surface.
- 적용 전에 사전 점검 해석을 수행합니다.
- 사전 점검/apply에 exec ref가 포함되면 두 단계 모두에서
--allow-exec를 유지하세요. - 생성된 계획은 기본적으로 스크럽 옵션(
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJson모두 활성화됨)을 사용합니다. - 스크럽된 평문 값에 대한 apply 경로는 단방향입니다.
--apply없이도 CLI는 사전 점검 후Apply this plan now?를 계속 묻습니다.--apply를 사용할 때(--yes없음) CLI는 되돌릴 수 없는 추가 확인을 요청합니다.--json은 계획 + 사전 점검 보고서를 출력하지만, 이 명령은 여전히 대화형 TTY가 필요합니다.
- Homebrew 설치는 종종
/opt/homebrew/bin/*아래의 심볼릭 링크 바이너리를 노출합니다. - 신뢰된 패키지 관리자 경로에 필요할 때만
allowSymlinkCommand: true를 설정하고,trustedDirs(예:["/opt/homebrew"])와 함께 사용하세요. - Windows에서 공급자 경로에 대한 ACL 검증을 사용할 수 없으면 OpenClaw는 fail-closed로 동작합니다. 신뢰된 경로에 한해, 해당 공급자에
allowInsecurePath: true를 설정해 경로 보안 검사를 우회할 수 있습니다.
저장된 계획 적용
이전에 생성한 계획을 적용하거나 사전 점검합니다:--dry-run은 파일을 쓰지 않고 사전 점검을 검증합니다.- exec SecretRef 검사는 dry-run에서 기본적으로 건너뜁니다.
- 쓰기 모드는
--allow-exec가 설정되지 않으면 exec SecretRef/공급자가 포함된 계획을 거부합니다. - 어느 모드에서든 exec 공급자 검사/실행을 허용하려면
--allow-exec를 사용하세요.
apply가 업데이트할 수 있는 항목:
openclaw.json(SecretRef 대상 + 공급자 upsert/delete)auth-profiles.json(공급자 대상 스크럽)- 레거시
auth.json잔여물 - 값이 마이그레이션된
~/.openclaw/.env의 알려진 secret 키
롤백 백업이 없는 이유
secrets apply는 이전 평문 값을 포함하는 롤백 백업을 의도적으로 작성하지 않습니다.
안전성은 엄격한 사전 점검 + 실패 시 최선 시도의 메모리 내 복원을 포함한 거의 원자적인 apply에서 나옵니다.
예시
audit --check가 여전히 평문 항목을 보고하면, 보고된 나머지 대상 경로를 업데이트한 뒤 감사를 다시 실행하세요.