把 LLM 把从从电影开动里解收出真:OpenClaw.NET 迎来 Vault/OpenBao 劼後端 – 张善友

0
把 LLM 把从从电影开动里解收出真:OpenClaw.NET 迎来 Vault/OpenBao 劼後端 – 张善友


Nacos を使用する場合は、.NET データ フェイスを使用するチームにとって、キー管理は、このショート ボード、コントロール フェイス (Nacos)、ランタイム (OpenClaw.NET)、キー フェイス (Vault/OpenBao) の内容です。

把 LLM 把从从电影开动里解收出真:OpenClaw.NET 迎来 Vault/OpenBao 劼後端 – 张善友

引言:一个電影 AI 网关都原不开通记

AI インテリジェント ネットワークによって自己ホストされているため、最も厄介なリンクは多くの場合、キー管理です。OpenAI の API キー写在環境変数、Slack の署名キーは appsettings.json、データベース接続にあります environment: 環境変数プログラムの問題は誰にとっても明らかです。プロセス リストが表示され、コンテナーを検査でき、コンテナーを検査でき、許可を再起動でき、許可は粒度约道零です。ただし、変更点は、通常、すべてのユーザーがコール ポイントのキーを読み取ることを意味します。

9 月 15 日、.NET 開発者 geffzhang は OpenClaw.NET に +7317 行、57 件の作用の PR(#241厺(#241、礛一电影)) を提出し、HashiCorp Vault / OpenBao のキー分析をこのプロジェクトに戻しました。 env:OPENAI_API_KEY 地地、直接コピーできるようになりました vault:secret/data/openclaw/openai#api_key

OpenClaw.NET は、インテリジェントな与网关(带チャット UI、OpenAI 互換エンドポイント〯MCP、99 クラス メッセージ チャネル、デフォルト直听)を実行する NativeAOT フレンドリーな .NET AI です。 127.0.0.1:18789この記事は、PR の設計とコード、そのアーキテクチャ、セキュリティ、および PR がエンタープライズ レベルの .NET インフラストラクチャ パズルの重要な部分である理由に基づいています。

なぜ今なのか:AIインフラにおけるVaultエコロジーの位置

2023 年に HashiCorp Vault がライセンス (BUSL) を変更した後、Linux Foundation は OpenBao (MPL 2.0) を開発しました。どちらも API 互換であり、企業がどちらを選択するかは、技術的な違いではなく、ライセンス戦略に依存します。 AI プラットフォーム言語の下では、キー管理がさらに拡張されます。スマート ネットワークは、単なるデータベース コードではなく、実際のユーザーが使用できる API キー モデルでもあります。 IM チャネルによると、能读写写分官网官方电影电影电影のプラグイン キー。

OpenClaw.NET の以前のキー スキームは、ほとんどの同じクラス プロジェクトと同じです。env: 環境変数を参照するraw: 内安字面量(および「運用環境は推奨されません」と明確にラベル付けされています)。このプログラムは、個人の開発者や単一ノードの展開シナリオには完全に十分ですが、「複数のコピー、複数の環境、監査が必要」になると、エンタープライズ言語セット #241 がまさにこの層となり、重複しません。 v2、上記の認証および監査システム。

設計理念: 门面法开 + 可電拔者银

PR の最初の決定は不動安语点です。OpenClaw.NET のオリジナル SecretResolver それは静的なドアです、サポート env:VARraw:literal 和炸串 3 種類の参照形式、全プロジェクトのすべてのツールと Web がこの 1 つの実装を共有します。

作宇の解決法は通常信頼できる倒置:

Core 层(零新依赖):
  SecretResolver(静态门面,向后兼容)
    └─ ResolverAccessor.Current → ISecretResolver
        └─ CompositeSecretResolver → ISecretProvider 链
            ├─ EnvRawSecretProvider(内置:env:/raw: 语义原样保留)
            └─ (可选)VaultSecretProvider(扩展包注册)

扩展层(新增 OpenClaw.Security.Vault 项目):
  VaultSecretProvider(Scheme = "vault",基于 VaultSharp)
  VaultRefCache / VaultRefParser / VaultRefPrewarmService ...

门面のダウンロード電視很设究:起動完了後のDIコンテナ、SecretResolver.Resolve() 委任官方的的 ISecretResolver;DI 未電影(最好纯工作新分)内安の継承ロジックを逆戻り、env:/raw: 動作は前の動作とまったく同じです。VaultNotConfiguredException 手動包囲ではなくコア層であるため、フェールクローズ検査は解析链上で実行でき、また Core Vault の循環参照になります。

语语语系と画像:一以 vault: 始める

语义の语止:

vault:/data/#

vault:secret/data/openclaw/openai#api_key     # 标准形态
vault:openclaw/data/payments/stripe#sk_live   # 自定义 mount
vault:data/config#nested_key                  # 省略 mount,默认 secret

既存の取り決め OpenClaw:Security:Vault 节下、与 ConfigValidator 試験制度:

{
  "OpenClaw": {
    "Security": {
      "Vault": {
        "Enabled": true,
        "Address": "
        "TokenRef": "env:VAULT_TOKEN",        // 注意:token 本身也走 env:/raw: 间接引用
        "KvMount": "secret",
        "RequestTimeout": "00:00:10",
        "CacheTtl": "00:05:00",
        "PrewarmRequired": true,
        "Tls": { "SkipVerify": false, "CaCertPath": null }
      }
    }
  }
}

校水器会设计一批β性官方:Enabled=true 時間 Address 必須であり、HTTPS である必要があります。TokenRef 必需品かつ性正以 vault: 开头(荒归引识:解析トークンは Vault 後端自己に添付できません);CacheTtl/RequestTimeout 電気効果があり、パブリック ネットワークの結果時間中にボールトの画像が保存され、実行時間まで保存されません。

フェイルクローズ: 拒否された静默降级

複数のキー管理統合の障害モードは「静默降级」です: 後端连不上時掴 vault:xxx この PR の実践はその逆で、失敗したパスはすべて異なります。

シーン 行動
安全後端未安全破棄済 vault: 引用 投げる VaultNotConfiguredException(终不退化の字面量)
金庫 401/403 投げる VaultAuthException
5xx / ネットワーク障害 / 超時間 投げる VaultUnavailableException(重複可能時間); 旧時間回帰旧值 + 告警
パス/キー404 スプリット VaultPathNotFoundException / VaultKeyNotFoundException
引用形式エラー 投げる VaultRefParseException
予熱の開始に失敗しました PrewarmRequired=true(デフォルト) 直接起動に失敗しました

同様に重要なのは「不泳露」です。分析のキー値は異常なメッセージ、ログ、追跡、スタックには決して表示されません。異常にはパス、キー名、HTTP ステータス コード、エラー タイプ名のみが含まれます。ログ出力も再度渡されます。 RedactionPipeline。同期分析パス (Resolve) バッファがキャッシュにある場合は直接破棄 SecretResolutionExceptionこの隠れた障害は、最初のカテゴリの「構成ロード スレッドが秘密裏に起動されたネットワーク リクエスト」によって回避されます。

キャッシュ戦略: TTL + 单飞 + 事前リフレッシュ + 失敗回帰旧值

VaultRefCache 是设计 PR 里電影最扎实の安全、在 IMemoryCache ダウンロード彼は 4 つのことを行いました:

  • TTL キャッシュ(デフォルトは 5 分):TTL キャッシュは期間の終了後に自動的に有効になり、再起動する必要はありません。
  • 单飞(片道便):小论一掴 SemaphoreSlim,N 个上播電影未命中只一Vault HTTP 呼び出し;
  • リフレッシュアヘッド:エントリは期後先戻り旧值、バックステージ异步リフレッシュ;用 Refreshing 同時閲覧者が更新を繰り返したりトリガーしたりするのを防ぐためのマーク付けと編集。
  • 失敗した回帰(stale-on-failure):更新が失敗すると、古い値が保持されてファイルが記録され、金庫は一時的に無効になり、実行中のバックアップはありません。

化合物 VaultRefPrewarmService(1つ IHostedService)、网关在訳 PrewarmRefs リストを作成し、構成ツリー全体を自動的にスキャンしてすべてを見つけます。 vault: 小は拉致。 RateLimit.RequestsPerSecond(デフォルト20)制限、予熱失敗デフォルト防止。

電気効果の実現の詳細: 層の異常な分割

VaultExceptions.cs 里名了一语义化異常:VaultAuthExceptionVaultUnavailableException(带 retryable (マーカー)VaultPathNotFoundExceptionVaultKeyNotFoundExceptionVaultRefParseException「警報警報」のダイレクトコードを通過するタイプシステム:告警システムのみが使用できます。 VaultAuthException ページがアップグレードされました 人(安林类问题安全了不能自意), 对 retryable=trueVaultUnavailableException 只做这个是性(ネットワーク抖動大確率自意)。VaultSecretProvider 里长が链挍 VaultSharp を捕まえる VaultApiException HTTP ステータス コードの正確な分流: 401/403 ハンドマシン、5xx およびネットワーク/スーパータイム 非使用米、電気効果認証 404 電気効果。

TLS は在線: 強力ですが、オンラインは存在します

TLS には 2 つのオプションがあり、相互に排他的です。Tls.SkipVerify(統合/開発環境の分離のみ、同時にグローバルスイッチの設定が必要) Security.AllowInsecureTls=true 校水器才放行)和 Tls.CaCertPath(カスタム CA 証明書パッケージ、PEM ファイルまたはディレクトリをカスタム ルート信頼としてロードします。ホスト名学校の検証は必須です) 証明書ファイルが見つからない、または破損している場合も起動に失敗します。

デプロイメントの形状に大きな影響を与える境界があるため、理解する必要があります。NativeAOT は Vault なしで構築されます。 VaultSharp について理解する必要があります。 vault: 电影会fail-closedストーリー是端、JITビルドのみにバックエンドが含まれています。これは、OpenClaw.NET の「AOT/JIT ビルドのみ」に準拠しています。これは、Vault チームが JIT デプロイメントを受け入れることができることを意味します。

顺手修了交「前任」のバグ

PR は、Vault に関係のない 2 つの失敗したテストも修正しました: Windows npm.cmd 会掴み %~dp0 作業ディレクトリに展開し、npm shimを破棄し、フルパスに変更して開始;Avalonia UIコンパニオンのテストコード "\n"代わりに TextBox がプラットフォームに挿入されます。テスト結果: Windows 11 + .NET 10 下 2,740 テスト。 deploy/docker-compose/openbao.yml 歌詞编排ドキュメントとオプションの CI vault-integration ジョブはもちろん、中国語や英語のドキュメントもあり、完成度はかなり高いです。

ビューを拡大: これはどういう意味ですか

我们下一篇分全 Nacos AI Registry × OpenClaw.NET 結果電気時、電視台例里 Nacos 冭暮旅時間 "Password": "env:NACOS_PASSWORD"これは現時点でのベスト プラクティスですが、キーは依然としてコンテナ環境変数内にあります。 vault:secret/data/openclaw/nacos#passwordNacos を使用して AI OpenClaw.NET と .NET データ フェイス、コントロール フェイス (Nacos)、ランタイム (OpenClaw.NET)、キー フェイス (Vault/OpenBao) を使用するチームの場合。

OpenBao は Linux Foundation の Vault の支部であり、ライセンスに敏感な企業が直接置き換えることができます。

結論

PR #241 落地上地电影级機能:コアは抽象のみで依存せず、月存コールポイントゼロ変更、アクション、ハンドル、ハンドル障害クローズ、キー値全程不进可话说面、スタートアップ期間の学校検証、テストおよび文書化の構成。 vault: 引用在電影天天式开错、予熱が起動をブロックできなくなるまで、再び同期パスまで

まだマージされていません (レビューはまだ進行中です) が、その設計自体は、.NET 上で AI インフラストラクチャを構築しているすべてのチームの参考になる価値があります。 OpenClaw.NET が必要ない場合、「ドア面 + プロバイダ チェーン + フェールクローズ + 予熱開始」のこのパターン セットを、Vault に接続する必要があるシステムに直接転送することもできます。


在月美国:github.com/clawdotnet/openclaw.net | PR:#241 Secretprovider | 服务:docs/security/vault.md(中英双语)

Leave a Reply

Your email address will not be published. Required fields are marked *