openclaw secrets
SecretRef を管理し、アクティブなランタイムスナップショットを健全に保ちます。
| コマンド | 役割 |
|---|---|
reload | Gateway RPC (secrets.reload): 参照を再解決し、完全に成功した場合にのみランタイムスナップショットを差し替えます(設定への書き込みなし) |
audit | 設定/auth/生成済みモデルストアとレガシー残存データを、平文、未解決の参照、優先順位のずれについて読み取り専用でスキャンします(--allow-exec がない限り exec 参照はスキップ) |
configure | プロバイダー設定、ターゲットマッピング、プリフライトのための対話型プランナーです(TTY が必要) |
apply | 保存済みプランを実行し(--dry-run は検証のみ行い、デフォルトで exec チェックをスキップします。書き込みモードは --allow-exec がない限り exec を含むプランを拒否します)、対象の平文残存データを消去します |
exec SecretRef/プロバイダーが含まれる場合は、ドライランと書き込みの両方の apply コマンドに --allow-exec を渡してください。
CI/ゲート向けの終了コード:
audit --checkは検出事項がある場合に1を返します。- 未解決の参照は(
--checkに関係なく)2を返します。
ランタイムスナップショットの再読み込み
secrets.reload を使用します。解決に失敗した場合、Gateway は最後に正常だったスナップショットを保持し、エラーを返します(一部だけの有効化は行いません)。JSON レスポンスには warningCount が含まれます。
オプション: --url <url>, --token <token>, --timeout <ms>, --json.
監査
OpenClaw の状態について次をスキャンします:- 平文のシークレット保存
- 未解決の参照
- 優先順位のずれ(
openclaw.jsonの参照を覆い隠すauth-profiles.jsonの認証情報) - 生成済みの
agents/*/agent/models.json残存データ(プロバイダーのapiKey値と機密性の高いプロバイダーヘッダー) - レガシー残存データ(レガシー auth ストアエントリ、OAuth リマインダー)
authorization, x-api-key, token, secret, password, credential)に名前が一致するヘッダーをフラグします。
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- 検出コード:
PLAINTEXT_FOUND,REF_UNRESOLVED,REF_SHADOWED,LEGACY_RESIDUE
Configure(対話型ヘルパー)
プロバイダーと SecretRef の変更を対話的に構築し、プリフライトを実行し、任意で適用します:secrets.providers エイリアスの追加/編集/削除)、次に認証情報マッピング(フィールドの選択、{source, provider, id} 参照の割り当て)、その後プリフライトと任意の適用を行います。
フラグ:
--providers-only:secrets.providersのみを設定し、認証情報マッピングをスキップします--skip-provider-setup: プロバイダー設定をスキップし、認証情報を既存プロバイダーにマッピングします--agent <id>:auth-profiles.jsonのターゲット検出と書き込みを 1 つのエージェントストアにスコープします--allow-exec: プリフライト/適用中の exec SecretRef チェックを許可します(プロバイダーコマンドを実行する可能性があります)
--providers-only と --skip-provider-setup は組み合わせられません。
注記:
- 対話型 TTY が必要です。
- 選択されたエージェントスコープについて、
openclaw.jsonとauth-profiles.json内のシークレットを含むフィールドを対象にします。正規にサポートされるサーフェス: SecretRef 認証情報サーフェス。 - ピッカーフロー内で新しい
auth-profiles.jsonマッピングを直接作成できます。 - 適用前にプリフライト解決を実行します。
- 生成されるプランでは、消去オプションがデフォルトで有効です(
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJson)。消去された平文値について、適用は一方向です。 --applyがない場合でも、CLI はプリフライト後にApply this plan now?と確認します。--applyがある場合(かつ--yesがない場合)、CLI は追加で不可逆な移行の確認を求めます。--jsonはプランとプリフライトレポートを出力しますが、それでも対話型 TTY が必要です。
Exec プロバイダーの安全性
Homebrew インストールでは、多くの場合/opt/homebrew/bin/* の下にシンボリックリンクされたバイナリが公開されます。信頼済みのパッケージマネージャーパスで必要な場合にのみ、trustedDirs(例: ["/opt/homebrew"])と組み合わせて allowSymlinkCommand: true を設定してください。Windows では、プロバイダーパスの ACL 検証を利用できない場合、OpenClaw はフェイルクローズします。信頼済みパスに限り、そのプロバイダーで allowInsecurePath: true を設定してパスのセキュリティチェックをバイパスできます。
保存済みプランを適用する
--dry-run はファイルを書き込まずにプリフライトを検証します。ドライランでは、exec SecretRef チェックはデフォルトでスキップされます。書き込みモードは、--allow-exec がない限り exec SecretRef/プロバイダーを含むプランを拒否します。どちらのモードでも exec プロバイダーチェック/実行を明示的に有効にするには、--allow-exec を使用します。
apply が更新する可能性があるもの:
openclaw.json(SecretRef ターゲット + プロバイダーの upsert/削除)auth-profiles.json(プロバイダーターゲットの消去)- レガシー
auth.json残存データ - 移行された値を持つ
~/.openclaw/.envの既知のシークレットキー
ロールバックバックアップがない理由
secrets apply は、古い平文値を含むロールバックバックアップを意図的に書き込みません。安全性は、厳密なプリフライトと概ねアトミックな適用、失敗時のベストエフォートなメモリ内復元によって確保されます。
例
audit --check がまだ平文の検出事項を報告する場合は、残りの報告されたターゲットパスを更新し、監査を再実行してください。