openclaw secrets コマンドを使用して SecretRef を管理し、稼働中のスナップショットを安全な状態に保ちます。
各サブコマンドの役割
reload: ゲートウェイの RPC (secrets.reload) を呼び出し、参照を再解決して実行時のスナップショットを切り替えます。完全に成功した場合のみ切り替えが行われ、構成ファイルの書き換えは行いません。audit: 構成、認証情報、自動生成されたモデル設定、およびレガシーな残存ファイルを読み取り専用でスキャンし、平文の機密情報、未解決の参照、優先順位の乖離をチェックします。configure: プロバイダーのセットアップ、ターゲットのマッピング、および事前検証(preflight)を行うための対話型プランナーです(TTY 端末が必要です)。apply: 保存された実行計画を適用します(--dry-runで検証のみも可能)。適用後、対象となった平文の機密情報を自動的に削除(スクラブ)します。
推奨される運用サイクル
CI/ゲート用の終了コード
audit --checkは問題が見つかった場合に1を返します。- 未解決の参照がある場合は
2を返します。
- シークレット管理ガイド: シークレット管理
- 対応箇所一覧: SecretRef 対応箇所一覧
- セキュリティガイド: セキュリティ
ランタイムスナップショットのリロード (reload)
シークレットの参照を再解決し、実行時のスナップショットをアトミックに(不可分に)切り替えます。
- ゲートウェイの RPC メソッド
secrets.reloadを使用します。 - 解決に失敗した場合、ゲートウェイは直前の正常なスナップショットを維持し、エラーを返します(部分的な適用は行われません)。
- JSON 形式のレスポンスには
warningCountが含まれます。
監査 (audit)
OpenClaw の状態を以下の観点でスキャンします:
- 平文(プレーンテキスト)で保存された機密情報
- 未解決の参照(SecretRef)
- 優先順位の乖離 (
auth-profiles.jsonの認証情報がopenclaw.jsonの参照を上書きしてしまっている状態) - 自動生成された
agents/*/agent/models.json内の残存情報(プロバイダーのapiKeyや機密性の高いヘッダー) - レガシーな残存物(古い認証ストアのエントリ、OAuth のリマインダーなど)
authorization,x-api-key,token,secret,password,credentialといった一般的な名称に基づいたヒューリスティックな検出を行います。
--check指定時、問題が見つかれば 0 以外のコードで終了します。- 未解決の参照がある場合は、より優先度の高い 0 以外のコードで終了します。
status:clean | findings | unresolvedsummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- 検出コード:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
構成設定 (configure) - 対話型ヘルパー
プロバイダーや SecretRef の変更を対話的に作成し、事前検証を行い、オプションで適用まで行います。
- プロバイダーのセットアップ(
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内の機密情報を含むフィールドを対象とします。- 選択フローの中で、
auth-profiles.json用の新しいマッピングを直接作成できます。 - 対応箇所については、SecretRef 対応箇所一覧 を参照してください。
- 適用前に事前検証(事前解決)が実行されます。
- 生成される実行計画では、削除(スクラブ)オプションがデフォルトで有効になります (
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJson)。 - 平文情報の削除を伴う適用は、一方向(元に戻せない)操作です。
--applyを指定しない場合でも、事前検証後にApply this plan now?と尋ねられます。--apply指定時(かつ--yesなしの場合)、取り消し不能であることを確認する追加のプロンプトが表示されます。
- Homebrew でインストールされたバイナリは、
/opt/homebrew/bin/*下のシンボリックリンクである場合が多いです。 - 信頼できるパッケージマネージャーのパスが必要な場合にのみ
allowSymlinkCommand: trueを設定し、trustedDirs(例:["/opt/homebrew"])と組み合わせて使用してください。 - Windows 環境において、プロバイダーのパスに対する ACL 検証が利用できない場合、OpenClaw は安全のため実行を拒否します。信頼できるパスであれば、そのプロバイダーに
allowInsecurePath: trueを設定することで、パスのセキュリティチェックをバイパスできます。
実行計画の適用 (apply)
事前に作成された実行計画を適用、または事前検証します。
apply によって更新される可能性のあるファイル:
openclaw.json(SecretRef の適用、プロバイダーの追加・更新・削除)auth-profiles.json(プロバイダーターゲット情報の削除)- レガシーな
auth.json内の情報 ~/.openclaw/.env(移行されたシークレットに対応するキー)
ロールバック用のバックアップが作成されない理由
secrets apply は、古い平文の機密情報を含むロールバック用バックアップを意図的に作成しません。
安全性は、厳格な事前検証と、失敗時にメモリ上の情報を可能な限り復元するアトミック(不可分)な適用プロセスによって確保されます。
実行例
audit --check が依然として平文の情報を報告する場合は、報告された残りのパスを更新して、再度監査を実行してください。