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 の状態をスキャンして以下を検出します:- 平文のシークレット保存
- 未解決の ref
- 優先順位のずれ(
auth-profiles.jsonの認証情報がopenclaw.jsonの ref を覆い隠している状態) - 生成された
agents/*/agent/models.jsonの残留物(プロバイダーのapiKey値と機密性のあるプロバイダーヘッダー) - レガシーの残留物(レガシー auth ストアのエントリー、OAuth リマインダー)
- 機密性のあるプロバイダーヘッダーの検出は名前ヒューリスティックに基づいています(一般的な auth / credential ヘッダー名および
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(対話型ヘルパー)
プロバイダーと SecretRef の変更を対話的に構築し、事前チェックを実行し、必要に応じて適用します:- 最初にプロバイダー設定(
secrets.providersエイリアスのadd/edit/remove)。 - 次に認証情報マッピング(フィールドを選択し、
{source, provider, id}ref を割り当てます)。 - 最後に事前チェックと任意の apply。
--providers-only:secrets.providersのみを設定し、認証情報マッピングをスキップします。--skip-provider-setup: プロバイダー設定をスキップし、認証情報を既存のプロバイダーにマッピングします。--agent <id>:auth-profiles.jsonのターゲット検出と書き込みのスコープを 1 つのエージェントストアに限定します。--allow-exec: 事前チェック / apply 中に exec SecretRef チェックを許可します(プロバイダーコマンドを実行する場合があります)。
- 対話型 TTY が必要です。
--providers-onlyと--skip-provider-setupは組み合わせられません。configureは、openclaw.json内のシークレットを保持するフィールドと、選択したエージェントスコープのauth-profiles.jsonを対象にします。configureは、picker フロー内で新しいauth-profiles.jsonマッピングを直接作成することをサポートしています。- 正式にサポートされる対象サーフェス: SecretRef Credential Surface
- apply の前に事前解決を実行します。
- 事前チェック / 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 は安全側に倒して失敗します。信頼できるパスに限り、そのプロバイダーで
allowInsecurePath: trueを設定すると、パスのセキュリティチェックをバイパスできます。
保存済みプランを適用する
以前に生成されたプランを適用または事前チェックします:--dry-runはファイルを書き込まずに事前チェックを検証します。- dry-run では、exec SecretRef チェックはデフォルトでスキップされます。
- 書き込みモードでは、
--allow-execが設定されていない限り、exec SecretRef / プロバイダーを含むプランを拒否します。 - どちらのモードでも、exec プロバイダーチェック / 実行を有効にするには
--allow-execを使用します。
apply が更新する可能性のあるもの:
openclaw.json(SecretRef ターゲット + プロバイダーの upsert / delete)auth-profiles.json(プロバイダーターゲットのスクラブ)- レガシー
auth.jsonの残留物 - 値が移行された
~/.openclaw/.envの既知のシークレットキー
ロールバック用バックアップがない理由
secrets apply は、古い平文の値を含むロールバック用バックアップを意図的に書き込みません。
安全性は、厳密な事前チェックと、失敗時のベストエフォートなインメモリ復元を伴う、ほぼアトミックな apply によって確保されます。
例
audit --check がまだ平文の検出事項を報告する場合は、残っている報告済みターゲットパスを更新し、再度 audit を実行してください。