OpenClaw は、対応する認証情報を設定内に平文で保存しなくて済むように、追加型の SecretRefs をサポートします。Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
平文も引き続き使用できます。SecretRefs は認証情報ごとにオプトインです。
目標とランタイムモデル
シークレットはメモリ内のランタイムスナップショットに解決されます。- 解決はリクエストパス上で遅延実行されるのではなく、アクティベーション中に先行して実行されます。
- 実質的にアクティブな SecretRef を解決できない場合、起動は早期に失敗します。
- リロードはアトミックスワップを使用します。完全に成功するか、直近の既知の正常なスナップショットを保持します。
- SecretRef ポリシー違反(たとえば OAuth モードの認証プロファイルと SecretRef 入力の組み合わせ)は、ランタイムスワップ前にアクティベーションを失敗させます。
- ランタイムリクエストは、アクティブなメモリ内スナップショットのみから読み取ります。
- 最初の設定アクティベーション/ロードが成功した後、ランタイムコードパスは、成功したリロードによって差し替えられるまで、そのアクティブなメモリ内スナップショットを読み取り続けます。
- アウトバウンド配信パスも、そのアクティブなスナップショットから読み取ります(たとえば Discord の返信/スレッド配信や Telegram のアクション送信)。送信ごとに SecretRefs を再解決しません。
アクティブサーフェスのフィルタリング
SecretRefs は、実質的にアクティブなサーフェスでのみ検証されます。- 有効なサーフェス: 未解決の参照は起動/リロードをブロックします。
- 非アクティブなサーフェス: 未解決の参照は起動/リロードをブロックしません。
- 非アクティブな参照は、コード
SECRETS_REF_IGNORED_INACTIVE_SURFACEで致命的ではない診断を出力します。
非アクティブなサーフェスの例
非アクティブなサーフェスの例
- 無効なチャンネル/アカウントエントリ。
- 有効なアカウントに継承されないトップレベルのチャンネル認証情報。
- 無効なツール/機能サーフェス。
tools.web.search.providerで選択されていない Web 検索プロバイダー固有のキー。自動モード(プロバイダー未設定)では、いずれかが解決されるまで、プロバイダー自動検出の優先順位に従ってキーが参照されます。選択後、未選択のプロバイダーキーは、選択されるまで非アクティブとして扱われます。- Sandbox SSH 認証材料(
agents.defaults.sandbox.ssh.identityData、certificateData、knownHostsData、およびエージェントごとのオーバーライド)は、デフォルトエージェントまたは有効なエージェントの有効な sandbox バックエンドがsshの場合にのみアクティブです。 gateway.remote.token/gateway.remote.passwordSecretRefs は、次のいずれかが true の場合にアクティブです。gateway.mode=remotegateway.remote.urlが設定されているgateway.tailscale.modeがserveまたはfunnel- これらのリモートサーフェスがないローカルモード:
gateway.remote.tokenは、トークン認証が勝つ可能性があり、env/auth トークンが設定されていない場合にアクティブです。gateway.remote.passwordは、パスワード認証が勝つ可能性があり、env/auth パスワードが設定されていない場合にのみアクティブです。
OPENCLAW_GATEWAY_TOKENが設定されている場合、gateway.auth.tokenSecretRef は起動時の認証解決では非アクティブです。そのランタイムでは環境変数のトークン入力が優先されるためです。
Gateway 認証サーフェス診断
gateway.auth.token、gateway.auth.password、gateway.remote.token、または gateway.remote.password に SecretRef が設定されている場合、Gateway の起動/リロードはサーフェス状態を明示的にログに記録します。
active: SecretRef は有効な認証サーフェスの一部であり、解決される必要があります。inactive: 別の認証サーフェスが優先されるか、リモート認証が無効/非アクティブであるため、このランタイムでは SecretRef が無視されます。
SECRETS_GATEWAY_AUTH_SURFACE とともにログに記録され、アクティブサーフェスポリシーで使用された理由を含みます。そのため、認証情報がアクティブまたは非アクティブとして扱われた理由を確認できます。
オンボーディング参照プリフライト
オンボーディングがインタラクティブモードで実行され、SecretRef ストレージを選択した場合、OpenClaw は保存前にプリフライト検証を実行します。- Env 参照: env var 名を検証し、セットアップ中に空でない値が見えることを確認します。
- プロバイダー参照(
fileまたはexec): プロバイダー選択を検証し、idを解決し、解決された値の型を確認します。 - クイックスタート再利用パス:
gateway.auth.tokenがすでに SecretRef の場合、オンボーディングは同じ fail-fast ゲートを使用して、プローブ/ダッシュボードのブートストラップ前にそれを解決します(env、file、exec参照)。
SecretRef コントラクト
どこでも同じオブジェクト形状を使用します。- env
- file
- exec
providerは^[a-z][a-z0-9_-]{0,63}$に一致する必要がありますidは^[A-Z][A-Z0-9_]{0,127}$に一致する必要があります
プロバイダー設定
secrets.providers の下でプロバイダーを定義します。
Env プロバイダー
Env プロバイダー
allowlistによる任意の許可リスト。- env 値が存在しない、または空の場合、解決は失敗します。
File プロバイダー
File プロバイダー
pathからローカルファイルを読み取ります。mode: "json"は JSON オブジェクトペイロードを想定し、idをポインターとして解決します。mode: "singleValue"は参照 ID"value"を想定し、ファイル内容を返します。- パスは所有者/権限チェックに合格する必要があります。
- Windows の fail-closed に関する注意: パスの ACL 検証を利用できない場合、解決は失敗します。信頼できるパスに限り、そのプロバイダーで
allowInsecurePath: trueを設定してパスセキュリティチェックをバイパスできます。
Exec プロバイダー
Exec プロバイダー
- 設定された絶対バイナリパスを、シェルなしで実行します。
- デフォルトでは、
commandは通常ファイル(シンボリックリンクではないもの)を指す必要があります。 - シンボリックリンクのコマンドパス(たとえば Homebrew shims)を許可するには、
allowSymlinkCommand: trueを設定します。OpenClaw は解決後のターゲットパスを検証します。 - パッケージマネージャーのパス(たとえば
["/opt/homebrew"])では、allowSymlinkCommandをtrustedDirsと組み合わせます。 - タイムアウト、出力なしタイムアウト、出力バイト制限、env 許可リスト、信頼済みディレクトリをサポートします。
- Windows の fail-closed に関する注意: コマンドパスの ACL 検証を利用できない場合、解決は失敗します。信頼できるパスに限り、そのプロバイダーで
allowInsecurePath: trueを設定してパスセキュリティチェックをバイパスできます。
Exec 統合例
1Password CLI
1Password CLI
HashiCorp Vault CLI
HashiCorp Vault CLI
sops
sops
MCP サーバー環境変数
plugins.entries.acpx.config.mcpServers 経由で設定された MCP サーバー env vars は SecretInput をサポートします。これにより、API キーとトークンを平文設定から外せます。
${MCP_SERVER_API_KEY} のような env テンプレート参照と SecretRef オブジェクトは、MCP サーバープロセスが生成される前の Gateway アクティベーション中に解決されます。他の SecretRef サーフェスと同様に、未解決の参照がアクティベーションをブロックするのは、acpx plugin が実質的にアクティブな場合のみです。
Sandbox SSH 認証材料
コアのssh sandbox バックエンドも、SSH 認証材料の SecretRefs をサポートします。
- OpenClaw は、各 SSH 呼び出しのたびに遅延してではなく、サンドボックスのアクティベーション中にこれらの ref を解決します。
- 解決された値は、制限付き権限の一時ファイルに書き込まれ、生成された SSH 設定で使用されます。
- 有効なサンドボックスバックエンドが
sshでない場合、これらの ref は非アクティブのままで、起動をブロックしません。
サポートされる認証情報サーフェス
正規のサポート対象および非サポート対象の認証情報は、次に一覧されています。ランタイムで発行される認証情報、ローテーションされる認証情報、OAuth 更新用の情報は、読み取り専用の SecretRef 解決から意図的に除外されています。
必須の動作と優先順位
- ref のないフィールド: 変更なし。
- ref のあるフィールド: アクティベーション中、アクティブなサーフェスでは必須。
- 平文と ref の両方が存在する場合、サポートされる優先順位パスでは ref が優先されます。
- リダクションセンチネル
__OPENCLAW_REDACTED__は、内部設定のリダクション/復元用に予約されており、送信された設定データのリテラル値としては拒否されます。
SECRETS_REF_OVERRIDES_PLAINTEXT(ランタイム警告)REF_SHADOWED(auth-profiles.jsonの認証情報がopenclaw.jsonの ref より優先される場合の監査検出)
serviceAccountRefは平文のserviceAccountより優先されます。- 兄弟 ref が設定されている場合、平文値は無視されます。
アクティベーショントリガー
シークレットのアクティベーションは次で実行されます。- 起動時 (プリフライトと最終アクティベーション)
- 設定リロードのホット適用パス
- 設定リロードの再起動チェックパス
secrets.reloadによる手動リロード- 編集を永続化する前に、送信された設定ペイロード内でアクティブサーフェスの SecretRef が解決可能か確認する Gateway 設定書き込み RPC プリフライト (
config.set/config.apply/config.patch)
- 成功するとスナップショットをアトミックに差し替えます。
- 起動失敗は Gateway の起動を中止します。
- ランタイムリロードの失敗時は、最後に正常だったスナップショットを維持します。
- 書き込み RPC プリフライトの失敗時は、送信された設定を拒否し、ディスク上の設定とアクティブなランタイムスナップショットの両方を変更しません。
- アウトバウンドのヘルパー/ツール呼び出しに明示的な呼び出し単位のチャネル token を指定しても、SecretRef アクティベーションはトリガーされません。アクティベーションポイントは、起動、リロード、明示的な
secrets.reloadのままです。
低下状態と回復シグナル
正常状態の後にリロード時アクティベーションが失敗すると、OpenClaw はシークレット低下状態に入ります。 ワンショットのシステムイベントおよびログコード:SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED
- 低下状態: ランタイムは最後に正常だったスナップショットを維持します。
- 回復: 次回のアクティベーション成功後に一度だけ発行されます。
- すでに低下状態の間に失敗が繰り返されても警告はログに記録されますが、イベントは大量発行されません。
- 起動時のフェイルファストでは、ランタイムが一度もアクティブになっていないため、低下イベントは発行されません。
コマンドパスの解決
コマンドパスは、Gateway スナップショット RPC 経由で、サポートされる SecretRef 解決をオプトインできます。 大きく分けて 2 種類の動作があります。- Strict command paths
- Read-only command paths
たとえば、
openclaw memory のリモートメモリーパス、およびリモート共有シークレット ref が必要な場合の openclaw qr --remote です。これらはアクティブなスナップショットから読み取り、必須の SecretRef が利用できない場合はフェイルファストします。- バックエンドシークレットのローテーション後のスナップショット更新は、
openclaw secrets reloadによって処理されます。 - これらのコマンドパスで使用される Gateway RPC メソッド:
secrets.resolve。
監査と設定ワークフロー
デフォルトのオペレーターフロー:secrets audit
secrets audit
検出項目には次が含まれます。
- 保存時の平文値 (
openclaw.json、auth-profiles.json、.env、生成されたagents/*/agent/models.json) - 生成された
models.jsonエントリ内の平文の機密プロバイダーヘッダー残留物 - 未解決の ref
- 優先順位によるシャドーイング (
auth-profiles.jsonがopenclaw.jsonの ref より優先される) - レガシー残留物 (
auth.json、OAuth リマインダー)
- デフォルトでは、監査はコマンドの副作用を避けるために exec SecretRef の解決可能性チェックをスキップします。
- 監査中に exec プロバイダーを実行するには、
openclaw secrets audit --allow-execを使用します。
- 機密プロバイダーヘッダーの検出は、名前に基づくヒューリスティックです (一般的な認証/認証情報ヘッダー名、および
authorization、x-api-key、token、secret、password、credentialなどの断片)。
secrets configure
secrets configure
次を行う対話型ヘルパーです。
- まず
secrets.providersを設定します (env/file/exec、追加/編集/削除) - 1 つのエージェントスコープについて、
openclaw.jsonに加えてauth-profiles.json内のサポートされるシークレット保持フィールドを選択できます - ターゲットピッカーで新しい
auth-profiles.jsonマッピングを直接作成できます - SecretRef の詳細 (
source、provider、id) を取得します - プリフライト解決を実行します
- すぐに適用できます
--allow-execが設定されていない限り、プリフライトは exec SecretRef チェックをスキップします。configure --applyから直接適用し、計画に exec ref/プロバイダーが含まれる場合は、適用ステップでも--allow-execを設定したままにしてください。
openclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent <id>
configure 適用のデフォルト:- 対象プロバイダーについて、
auth-profiles.jsonから一致する静的認証情報をスクラブします auth.jsonからレガシーの静的api_keyエントリをスクラブします<config-dir>/.envから一致する既知のシークレット行をスクラブします
secrets apply
secrets apply
保存済み計画を適用します。exec の注記:
- dry-run は、
--allow-execが設定されていない限り exec チェックをスキップします。 - 書き込みモードは、
--allow-execが設定されていない限り、exec SecretRefs/プロバイダーを含む計画を拒否します。
一方向の安全ポリシー
安全モデル:- 書き込みモードの前にプリフライトが成功する必要があります
- コミット前にランタイムアクティベーションが検証されます
- 適用は、アトミックなファイル置換と、失敗時のベストエフォート復元を使用してファイルを更新します
レガシー認証互換性の注記
静的認証情報について、ランタイムは平文のレガシー認証ストレージに依存しなくなりました。- ランタイム認証情報ソースは、解決済みのインメモリスナップショットです。
- レガシーの静的
api_keyエントリは、検出時にスクラブされます。 - OAuth 関連の互換性動作は別扱いのままです。
Web UI の注記
一部の SecretInput union は、フォームモードよりも raw editor モードの方が設定しやすい場合があります。関連
- 認証 — 認証設定
- CLI: secrets — CLI コマンド
- 環境変数 — 環境の優先順位
- SecretRef 認証情報サーフェス — 認証情報サーフェス
- Secrets Apply Plan Contract — 計画契約の詳細
- セキュリティ — セキュリティ態勢