Văn bản thuần vẫn hoạt động. SecretRef được bật theo lựa chọn cho từng thông tin xác thực.
Mô hình thời gian chạy
- Các bí mật được phân giải vào một ảnh chụp nhanh thời gian chạy trong bộ nhớ, theo cách chủ động trong quá trình kích hoạt, không phải theo cách trì hoãn trên các đường dẫn yêu cầu.
- Khi khởi động nguội Gateway, lỗi SecretRef có thể thử lại được sẽ được cô lập cho một chủ sở hữu không phải Gateway đã biết khi chủ sở hữu đó hỗ trợ khả năng cô lập. Các lớp chủ sở hữu được ánh xạ bao gồm nhà cung cấp mô hình và Skills, nhà cung cấp phương tiện/TTS/cron, hồ sơ xác thực đủ điều kiện, bộ nhớ theo tác tử, SSH hộp cát, tài khoản kênh và các tuyến Plugin được khai báo trong manifest. Gateway khởi động, ghi nhận chủ sở hữu là đã cấu hình nhưng không khả dụng và phát cảnh báo suy giảm đã được che thông tin nhạy cảm. Xác thực đầu vào Gateway, các tham chiếu hoặc giá trị đã phân giải không hợp lệ về cấu trúc, chủ sở hữu đóng khi lỗi và các tham chiếu có chủ sở hữu thời gian chạy chưa được ánh xạ vẫn khiến quá trình khởi động thất bại.
- Quá trình tải lại xác thực từng chủ sở hữu được ánh xạ một cách độc lập, sau đó công bố một ảnh chụp nhanh nguyên tử duy nhất. Các chủ sở hữu khỏe mạnh được làm mới. Một chủ sở hữu đủ điều kiện nhưng gặp lỗi giữ lại giá trị tốt gần nhất đã biết và chỉ trở nên lỗi thời khi danh tính tham chiếu, định nghĩa nhà cung cấp và toàn bộ hợp đồng không chứa bí mật của chủ sở hữu không thay đổi; một chủ sở hữu mới hoặc đã thay đổi nhưng gặp lỗi sẽ trở thành nguội. Lỗi nghiêm ngặt từ chối quá trình tải lại và giữ nguyên ảnh chụp nhanh đang hoạt động.
- Vi phạm chính sách (ví dụ: hồ sơ xác thực ở chế độ OAuth kết hợp với đầu vào SecretRef) khiến quá trình kích hoạt thất bại trước khi hoán đổi thời gian chạy.
- Các yêu cầu thời gian chạy chỉ đọc ảnh chụp nhanh đang hoạt động trong bộ nhớ. Thông tin xác thực SecretRef của nhà cung cấp mô hình đi qua kho lưu trữ xác thực và các tùy chọn luồng dưới dạng giá trị canh gác cục bộ của tiến trình cho đến khi đi ra ngoài. Các đường dẫn gửi đi (gửi phản hồi/luồng Discord, gửi hành động Telegram) cũng đọc ảnh chụp nhanh đó và không phân giải lại tham chiếu cho mỗi lần gửi.
Chèn tại thời điểm đi ra ngoài (giá trị canh gác)
Đối với thông tin xác thực của nhà cung cấp mô hình được SecretRef hỗ trợ, OpenClaw tạo một giá trị canh gác mờ, cục bộ của tiến trình trong quá trình phân giải xác thực mô hình. Do đó, kho lưu trữ xác thực, các tùy chọn luồng, cấu hình SDK, nhật ký, đối tượng lỗi và hầu hết hoạt động kiểm tra nội bộ thời gian chạy sẽ thấy một giá trị nhưoc-sent-v1-..., thay vì thông tin xác thực của nhà cung cấp. Lệnh fetch mô hình được bảo vệ và các phép thăm dò tình trạng nhà cung cấp cục bộ được quản lý thay thế các giá trị canh gác đã biết trong giá trị URL và tiêu đề ngay trước khi mỗi yêu cầu rời khỏi tiến trình.
Các giá trị có hình dạng giống giá trị canh gác nhưng không xác định sẽ đóng khi lỗi trước khi có hoạt động mạng. OpenClaw từ chối gửi yêu cầu thay vì chuyển tiếp một giá trị canh gác chưa được phân giải đến nhà cung cấp. Các giá trị bí mật đã phân giải cũng được đăng ký để che chính xác giá trị trong nhật ký như một biện pháp phòng thủ nhiều lớp.
Bộ điều hợp nhà cung cấp sử dụng điểm chèn muộn nhất mà SDK của chúng hỗ trợ:
- Các SDK có tùy chọn fetch tùy chỉnh nhận lệnh fetch được bảo vệ của OpenClaw, vì vậy SDK giữ lại giá trị canh gác.
- Các SDK không có tùy chọn fetch tùy chỉnh sẽ mở gói giá trị canh gác ngay trước khi tạo ứng dụng khách. Các luồng nhà cung cấp do Plugin sở hữu và bộ khung tác tử mở gói tại điểm bàn giao cuối cùng do lõi sở hữu vì các phương thức vận chuyển đó không dùng chung lệnh fetch được bảo vệ của OpenClaw.
OPENCLAW_SECRET_SENTINELS=off (cũng chấp nhận 0 hoặc false, không phân biệt chữ hoa chữ thường) để tắt việc tạo giá trị canh gác trong quá trình ứng phó sự cố hoặc khắc phục sự cố tương thích. Công tắc ngắt không tắt việc đăng ký che chính xác giá trị.
Ranh giới truy cập của tác tử
SecretRef ngăn thông tin xác thực được lưu cố định trong cấu hình và các tệp mô hình được tạo, nhưng chúng không phải là ranh giới cô lập tiến trình. Thông tin xác thực dạng văn bản thuần còn lại trên ổ đĩa trong đường dẫn mà tác tử có thể đọc vẫn có thể bị đọc qua công cụ tệp hoặc shell, bỏ qua cơ chế che ở cấp API. Đối với các triển khai sản xuất có tệp mà tác tử có thể truy cập thuộc phạm vi xem xét, chỉ coi quá trình di chuyển là hoàn tất khi tất cả các điều sau đều đúng:- Thông tin xác thực được hỗ trợ sử dụng SecretRef thay cho giá trị văn bản thuần.
- Dấu vết văn bản thuần cũ được xóa khỏi
openclaw.json,auth-profiles.json,.envvà các tệpmodels.jsonđược tạo. openclaw secrets audit --checkkhông phát hiện vấn đề sau khi di chuyển.- Mọi thông tin xác thực còn lại chưa được hỗ trợ hoặc đang luân phiên đều được bảo vệ bằng cơ chế cô lập của hệ điều hành, cô lập vùng chứa hoặc proxy thông tin xác thực bên ngoài.
Lọc bề mặt đang hoạt động
SecretRef chỉ được xác thực trên các bề mặt thực sự đang hoạt động:- Bề mặt được bật: lỗi có thể thử lại đối với chủ sở hữu đã được ánh xạ và có thể cô lập sẽ chuyển sang trạng thái suy giảm nguội hoặc lỗi thời. Lỗi nghiêm ngặt, đóng khi lỗi, bắt buộc với Gateway hoặc chưa được ánh xạ sẽ chặn quá trình khởi động/tải lại.
- Bề mặt không hoạt động: các tham chiếu chưa phân giải không chặn quá trình khởi động/tải lại; chúng phát một chẩn đoán
SECRETS_REF_IGNORED_INACTIVE_SURFACEkhông gây lỗi nghiêm trọng.
Ví dụ về các bề mặt không hoạt động
Ví dụ về các bề mặt không hoạt động
- Các mục kênh/tài khoản đã tắt.
- Thông tin xác thực kênh cấp cao nhất mà không tài khoản nào được bật kế thừa.
- Các bề mặt công cụ/tính năng đã tắt.
- Các khóa dành riêng cho nhà cung cấp tìm kiếm web không được
tools.web.search.providerchọn. Ở chế độ tự động (không đặt nhà cung cấp), các khóa được xét theo thứ tự ưu tiên để tự động phát hiện cho đến khi một khóa phân giải thành công; sau khi lựa chọn, khóa của các nhà cung cấp không được chọn sẽ không hoạt động. - Tài liệu xác thực SSH hộp cát (
agents.defaults.sandbox.ssh.identityData,certificateData,knownHostsData, cùng các giá trị ghi đè theo tác tử) chỉ hoạt động khi phần phụ trợ hộp cát hiệu dụng làsshvà chế độ hộp cát không phảioff, đối với tác tử mặc định hoặc một tác tử đã bật. - SecretRef
gateway.remote.token/gateway.remote.passwordhoạt động nếu bất kỳ điều kiện nào sau đây đúng:gateway.mode=remotegateway.remote.urlđã được cấu hìnhgateway.tailscale.modelàservehoặcfunnel- Ở chế độ cục bộ không có các bề mặt từ xa đó:
gateway.remote.tokenhoạt động khi xác thực bằng mã thông báo có thể được ưu tiên và không có mã thông báo môi trường/xác thực nào được cấu hình;gateway.remote.passwordchỉ hoạt động khi xác thực bằng mật khẩu có thể được ưu tiên và không có mật khẩu môi trường/xác thực nào được cấu hình.
- SecretRef
gateway.auth.tokenkhông hoạt động đối với quá trình phân giải xác thực khi khởi động nếuOPENCLAW_GATEWAY_TOKENđược đặt, vì đầu vào mã thông báo môi trường được ưu tiên cho thời gian chạy đó.
Chẩn đoán bề mặt xác thực Gateway
Khi SecretRef được đặt trêngateway.auth.token, gateway.auth.password, gateway.remote.token hoặc gateway.remote.password, quá trình khởi động/tải lại gateway ghi trạng thái bề mặt dưới mã SECRETS_GATEWAY_AUTH_SURFACE:
active: SecretRef là một phần của bề mặt xác thực hiệu dụng và phải phân giải được.inactive: một bề mặt xác thực khác được ưu tiên, hoặc xác thực từ xa đã bị tắt/không hoạt động.
Kiểm tra trước tham chiếu khi tiếp nhận ban đầu
Trong quá trình tiếp nhận ban đầu tương tác, việc chọn lưu trữ SecretRef sẽ chạy xác thực trước khi lưu:- Tham chiếu môi trường: xác thực tên biến môi trường và xác nhận rằng một giá trị không rỗng có thể được thấy trong quá trình thiết lập.
- Tham chiếu nhà cung cấp (
filehoặcexec): xác thực lựa chọn nhà cung cấp, phân giảiidvà kiểm tra kiểu của giá trị đã phân giải. - Luồng bắt đầu nhanh: khi
gateway.auth.tokenđã là một SecretRef, quá trình tiếp nhận ban đầu sẽ phân giải nó trước khi thăm dò/khởi tạo bảng điều khiển (đối với các tham chiếuenv,filevàexec) bằng cùng một cổng dừng ngay khi lỗi.
Hợp đồng SecretRef
Một hình dạng đối tượng duy nhất ở mọi nơi:- env
- file
- exec
providerphải khớp với^[a-z][a-z0-9_-]{0,63}$idphải khớp với^[A-Z][A-Z0-9_]{0,127}$
Cấu hình nhà cung cấp
Định nghĩa các nhà cung cấp trongsecrets.providers:
Nhà cung cấp môi trường
Nhà cung cấp môi trường
- Danh sách cho phép tên chính xác tùy chọn thông qua
allowlist. - Giá trị môi trường bị thiếu hoặc rỗng khiến quá trình phân giải thất bại.
Nhà cung cấp tệp
Nhà cung cấp tệp
- Đọc tệp cục bộ tại
path. mode: "json"(mặc định) yêu cầu một tải trọng đối tượng JSON và phân giảiiddưới dạng con trỏ JSON.mode: "singleValue"yêu cầu mã định danh tham chiếu"value"và trả về nội dung tệp thô (đã loại bỏ ký tự xuống dòng ở cuối).- Đường dẫn phải vượt qua các kiểm tra quyền sở hữu/quyền truy cập;
timeoutMs(mặc định 5000) vàmaxBytes(mặc định 1 MiB) giới hạn thao tác đọc. - Windows đóng khi lỗi: nếu không thể xác minh ACL cho đường dẫn, quá trình phân giải sẽ thất bại. Chỉ đối với các đường dẫn đáng tin cậy, hãy đặt
allowInsecurePath: truetrên nhà cung cấp đó để bỏ qua kiểm tra.
Nhà cung cấp thực thi
Nhà cung cấp thực thi
- Chạy trực tiếp đường dẫn tuyệt đối của tệp nhị phân đã cấu hình, không qua shell.
- Theo mặc định,
commandphải là một tệp thông thường, không phải liên kết tượng trưng. ĐặtallowSymlinkCommand: trueđể cho phép đường dẫn lệnh là liên kết tượng trưng (ví dụ: các shim của Homebrew), đồng thời kết hợp vớitrustedDirs(ví dụ:["/opt/homebrew"]) để chỉ các đường dẫn của trình quản lý gói mới đủ điều kiện. - Hỗ trợ
timeoutMs(mặc định 5000),noOutputTimeoutMs(mặc định bằngtimeoutMs),maxOutputBytes(mặc định 1 MiB), danh sách cho phépenv/passEnvvàtrustedDirs. jsonOnlymặc định làtrue. Khi dùngjsonOnly: falsevà chỉ yêu cầu một id, stdout thuần không phải JSON được chấp nhận làm giá trị của id đó.- Windows đóng khi lỗi: nếu không thể xác minh ACL cho đường dẫn lệnh, quá trình phân giải sẽ thất bại. Chỉ với các đường dẫn đáng tin cậy, hãy đặt
allowInsecurePath: truetrên nhà cung cấp đó để bỏ qua bước kiểm tra. - Các nhà cung cấp thực thi do Plugin quản lý có thể dùng
pluginIntegrationthay chocommand/argsđã sao chép. OpenClaw phân giải thông tin chi tiết hiện tại của lệnh từ manifest Plugin đã cài đặt trong lúc khởi động/tải lại; nếu Plugin bị vô hiệu hóa, gỡ bỏ, không đáng tin cậy hoặc không còn khai báo tích hợp, các SecretRef đang hoạt động trên nhà cung cấp đó sẽ đóng khi lỗi.
code là thông tin chẩn đoán tùy chọn mà máy có thể đọc được. OpenClaw hiển thị các mã được nhận dạng
NOT_FOUND và AMBIGUOUS_DUPLICATE_KEY cùng với nhà cung cấp và id tham chiếu. Các mã khác
và trường dạng tự do như message được chấp nhận để tương thích với giao thức v1
nhưng không được hiển thị vì đầu ra của trình phân giải có thể chứa dữ liệu thông tin xác thực.Khóa API dựa trên tệp
Không đặt các chuỗifile:... trong khối env của cấu hình. Khối đó là giá trị nguyên văn và không ghi đè, vì vậy file:... không bao giờ được phân giải tại đó.
Thay vào đó, hãy dùng SecretRef tệp trên một trường thông tin xác thực được hỗ trợ:
mode: "singleValue", id của SecretRef là "value". Đối với mode: "json", hãy dùng con trỏ JSON tuyệt đối như "/providers/xai/apiKey".
Xem Bề mặt thông tin xác thực SecretRef để biết các trường chấp nhận SecretRef.
Ví dụ tích hợp thực thi
Để xem hướng dẫn riêng về 1Password bao gồm tài khoản dịch vụ, skill tác nhân đi kèm và cách khắc phục sự cố, hãy xem 1Password.CLI 1Password
CLI 1Password
Bitwarden Secrets Manager (`bws`)
Bitwarden Secrets Manager (`bws`)
Dùng trình bao bọc trình phân giải để ánh xạ các id SecretRef tới khóa mục của Bitwarden Secrets Manager. Kho lưu trữ bao gồm Trình phân giải xử lý theo lô các id được yêu cầu, chạy
scripts/secrets/openclaw-bws-resolver.mjs; hãy cài đặt hoặc sao chép tệp này vào một đường dẫn tuyệt đối đáng tin cậy trên máy chủ chạy Gateway.Yêu cầu:- CLI Bitwarden Secrets Manager (
bws) được cài đặt trên máy chủ Gateway. BWS_ACCESS_TOKENkhả dụng cho dịch vụ Gateway.PATHđược truyền cho trình phân giải, hoặcBWS_BINđược đặt thành đường dẫn tuyệt đối của tệp nhị phânbws.BWS_SERVER_URLđược đặt trong môi trường khi dùng phiên bản Bitwarden tự lưu trữ.
bws secret list và trả về giá trị cho các trường key của bí mật khớp. Dùng các khóa đáp ứng hợp đồng id SecretRef thực thi, chẳng hạn như openclaw/providers/openai/apiKey; các khóa kiểu biến môi trường có dấu gạch dưới sẽ bị từ chối trước khi trình phân giải chạy. Nếu có nhiều hơn một bí mật Bitwarden hiển thị cùng dùng khóa được yêu cầu, trình phân giải sẽ báo id đó là không rõ ràng thay vì phỏng đoán. Sau khi cập nhật cấu hình, hãy xác minh đường dẫn trình phân giải:CLI HashiCorp Vault
CLI HashiCorp Vault
password-store (`pass`)
password-store (`pass`)
Dùng một trình bao bọc trình phân giải nhỏ để ánh xạ trực tiếp các id SecretRef tới các mục Sau đó, hãy cấu hình nhà cung cấp thực thi và trỏ Giữ bí mật ở dòng đầu tiên của mục
pass. Lưu tệp này dưới dạng tệp thực thi tại một đường dẫn tuyệt đối đáp ứng các bước kiểm tra đường dẫn của nhà cung cấp thực thi, ví dụ /usr/local/bin/openclaw-pass-resolver. Dòng shebang #!/usr/bin/env node phân giải node từ PATH của tiến trình trình phân giải, vì vậy hãy đưa PATH vào passEnv. Nếu pass không nằm trên PATH đó, hãy đặt PASS_BIN trong môi trường cha và cũng đưa biến này vào passEnv:apiKey tới đường dẫn mục pass:pass, hoặc tùy chỉnh trình bao bọc để trả về toàn bộ đầu ra pass show. Sau khi cập nhật cấu hình, hãy xác minh cả quy trình kiểm tra tĩnh và đường dẫn trình phân giải thực thi:sops
sops
Biến môi trường máy chủ MCP
Các biến môi trường máy chủ MCP được cấu hình quaplugins.entries.acpx.config.mcpServers chấp nhận SecretInput, giúp loại bỏ khóa API và token khỏi cấu hình văn bản thuần:
${MCP_SERVER_API_KEY} và đối tượng SecretRef được phân giải trong quá trình kích hoạt Gateway, trước khi tiến trình máy chủ MCP được khởi chạy. Tương tự các bề mặt SecretRef khác, tham chiếu chưa phân giải chỉ chặn quá trình kích hoạt khi Plugin acpx thực sự đang hoạt động.
Dữ liệu xác thực SSH của sandbox
Phần phụ trợ sandboxssh cốt lõi cũng hỗ trợ SecretRef cho dữ liệu xác thực SSH:
- OpenClaw phân giải các tham chiếu này trong quá trình kích hoạt sandbox, không phân giải trì hoãn ở mỗi lần gọi SSH.
- Các giá trị đã phân giải được ghi vào một thư mục tạm với quyền truy cập tệp hạn chế (
0o600) và được dùng trong cấu hình SSH được tạo. - Nếu backend sandbox có hiệu lực không phải là
ssh(hoặc chế độ sandbox làoff), các tham chiếu này vẫn không hoạt động và không chặn quá trình khởi động.
Phạm vi thông tin xác thực được hỗ trợ
Các thông tin xác thực chính tắc được hỗ trợ và không được hỗ trợ được liệt kê trong Phạm vi thông tin xác thực SecretRef.Thông tin xác thực được tạo trong thời gian chạy hoặc luân phiên và dữ liệu làm mới OAuth được chủ ý loại trừ khỏi quá trình phân giải SecretRef chỉ đọc.
Hành vi bắt buộc và thứ tự ưu tiên
- Trường không có tham chiếu: không thay đổi.
- Trường có tham chiếu: bắt buộc trên các bề mặt đang hoạt động trong quá trình kích hoạt.
- Nếu có cả văn bản thuần và tham chiếu, tham chiếu được ưu tiên trên các đường dẫn ưu tiên được hỗ trợ.
- Giá trị đánh dấu biên tập
__OPENCLAW_REDACTED__được dành riêng cho việc biên tập/khôi phục cấu hình nội bộ và bị từ chối nếu được gửi dưới dạng dữ liệu cấu hình nguyên văn.
SECRETS_REF_OVERRIDES_PLAINTEXT(cảnh báo thời gian chạy)REF_SHADOWED(phát hiện kiểm tra khi thông tin xác thựcauth-profiles.jsonđược ưu tiên hơn tham chiếuopenclaw.json)
serviceAccountRef được ưu tiên hơn serviceAccount dạng văn bản thuần; giá trị văn bản thuần bị bỏ qua sau khi tham chiếu cùng cấp được đặt.
Điều kiện kích hoạt
Quá trình kích hoạt bí mật chạy khi:- Khởi động (kiểm tra sơ bộ cùng với kích hoạt cuối cùng)
- Đường dẫn áp dụng nóng khi tải lại cấu hình
- Đường dẫn kiểm tra khởi động lại khi tải lại cấu hình
- Tải lại thủ công qua
secrets.reload - Kiểm tra sơ bộ RPC ghi cấu hình Gateway (
config.set/config.apply/config.patch), xác thực SecretRef trên bề mặt đang hoạt động trong tải trọng cấu hình được gửi trước khi lưu các chỉnh sửa
- Khi thành công, ảnh chụp nhanh được hoán đổi nguyên tử.
- Lỗi khởi động nghiêm ngặt sẽ hủy quá trình khởi động Gateway.
- Trong quá trình khởi động nguội, lỗi phân giải có thể thử lại đối với chủ sở hữu không thuộc Gateway đã được ánh xạ và có thể cô lập có thể công bố ảnh chụp nhanh trong đó chính xác chủ sở hữu đó được cấu hình là không khả dụng. Yêu cầu dành cho chủ sở hữu này sẽ thất bại với
SECRET_SURFACE_UNAVAILABLE; chủ sở hữu nhà cung cấp mô hình không dự phòng về thông tin xác thực từ môi trường hoặc hồ sơ xác thực sau khi một tham chiếu rõ ràng thất bại. - Quá trình tải lại và kiểm tra khởi động lại sẽ cô lập các chủ sở hữu được ánh xạ đủ điều kiện. Các danh tính tham chiếu không đổi với định nghĩa nhà cung cấp không đổi và hợp đồng chủ sở hữu hoàn chỉnh không chứa bí mật không đổi sẽ giữ lại chính xác các giá trị tốt đã biết gần nhất dưới dạng cũ; các tham chiếu chưa phân giải đã thay đổi hoặc mới được cấu hình chỉ được công bố ở trạng thái nguội cho chủ sở hữu đó. Lỗi tải lại nghiêm ngặt sẽ giữ nguyên ảnh chụp nhanh đang hoạt động trước đó.
config.set,config.applyvàconfig.patchchấp nhận các tham chiếu chưa phân giải hợp lệ về cú pháp dành cho chủ sở hữu có thể cô lập và trả về báo cáodegradedSecretOwnersđã biên tập. Xác thực đầu vào Gateway, cấu hình hoặc giá trị đã phân giải không hợp lệ về cấu trúc, vi phạm chính sách và chủ sở hữu không xác định vẫn bị từ chối trước khi thay đổi đĩa.- Các chủ sở hữu cùng cấp lành mạnh vẫn được phân giải và công bố bình thường ngay cả khi một chủ sở hữu khác ở trạng thái nguội hoặc cũ.
- Việc cung cấp mã thông báo kênh rõ ràng cho từng lần gọi đến một lệnh gọi trình trợ giúp/công cụ gửi đi không kích hoạt SecretRef; các điểm kích hoạt vẫn là khởi động, tải lại và
secrets.reloadrõ ràng.
Tín hiệu suy giảm và khôi phục
Khi kích hoạt trong lúc tải lại thất bại sau một trạng thái lành mạnh, OpenClaw chuyển sang trạng thái bí mật bị suy giảm, phát ra các sự kiện hệ thống một lần và mã nhật ký:SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED
- Suy giảm: các chủ sở hữu lành mạnh được làm mới, các chủ sở hữu cũ giữ lại giá trị tốt đã biết gần nhất và các chủ sở hữu nguội vẫn không khả dụng.
- Đã khôi phục: được phát một lần sau lần kích hoạt thành công tiếp theo.
- Các lỗi lặp lại khi đã ở trạng thái suy giảm sẽ ghi cảnh báo nhưng không phát lại sự kiện.
- Lỗi khởi động nghiêm ngặt không bao giờ phát sự kiện suy giảm vì thời gian chạy chưa từng hoạt động. Một lần khởi động thành công với các chủ sở hữu nguội sẽ ghi nhật ký tình trạng suy giảm của chủ sở hữu nhưng không phát sự kiện của trình tải lại.
- Lỗi khởi động và tải lại theo phạm vi tham chiếu phát cảnh báo
SECRETS_DEGRADEDcó cấu trúc cho từng chủ sở hữu bị ảnh hưởng. Sự cố ngừng hoạt động theo phạm vi nhà cung cấp phát một cảnh báoSECRETS_PROVIDER_DEGRADEDcùng nhà cung cấp và danh sách đầy đủ các chủ sở hữu bị ảnh hưởng thay vì lặp lại lỗi nhà cung cấp cho từng chủ sở hữu. Cảnh báo bao gồm lý do đã biên tập, trạng thái chủ sở hữucoldhoặcstalevà gợi ý thử lạiopenclaw secrets reload. Chúng không bao giờ bao gồm giá trị đã phân giải hoặc mã định danh SecretRef. openclaw doctorliệt kê các chủ sở hữu nguội và cũ cùng với đường dẫn cấu hình bị ảnh hưởng, lý do đã biên tập và hướng dẫn thử lại.
Phân giải đường dẫn lệnh
Các đường dẫn lệnh có thể chọn sử dụng quá trình phân giải SecretRef được hỗ trợ thông qua RPC ảnh chụp nhanh của Gateway. Có hai nhóm hành vi chính:- Đường dẫn lệnh nghiêm ngặt
- Đường dẫn lệnh chỉ đọc
Ví dụ: các đường dẫn bộ nhớ từ xa
openclaw memory và openclaw qr --remote khi cần tham chiếu bí mật dùng chung từ xa. Chúng đọc từ ảnh chụp nhanh đang hoạt động và thất bại ngay khi SecretRef bắt buộc không khả dụng.- Việc làm mới ảnh chụp nhanh sau khi bí mật backend được luân phiên do
openclaw secrets reloadxử lý. - Phương thức RPC Gateway được các đường dẫn lệnh này sử dụng:
secrets.resolve.
Quy trình kiểm tra và cấu hình
Luồng mặc định dành cho người vận hành:1
Kiểm tra trạng thái hiện tại
2
Cấu hình và áp dụng SecretRef
3
Kiểm tra lại
configure, hãy áp dụng kế hoạch đã lưu đó bằng openclaw secrets apply --from <plan-path> trước khi kiểm tra lại.
secrets audit
secrets audit
Các phát hiện bao gồm:
- Các giá trị văn bản thuần được lưu trữ (
openclaw.json,auth-profiles.json,.envvàagents/*/agent/models.jsonđược tạo). - Dữ liệu sót lại của tiêu đề nhà cung cấp nhạy cảm dạng văn bản thuần trong các mục
models.jsonđược tạo. - Các tham chiếu chưa phân giải.
- Che khuất do thứ tự ưu tiên (
auth-profiles.jsonđược ưu tiên hơn các tham chiếuopenclaw.json). - Dữ liệu cũ còn sót lại (
auth.json, lời nhắc OAuth).
openclaw secrets audit --allow-exec để thực thi các nhà cung cấp exec trong quá trình kiểm tra.Ghi chú về dữ liệu tiêu đề còn sót lại: việc phát hiện tiêu đề nhạy cảm của nhà cung cấp dựa trên phương pháp phỏng đoán theo tên (các tên tiêu đề xác thực/thông tin xác thực phổ biến và các đoạn như authorization, x-api-key, token, secret, password và credential).secrets configure
secrets configure
Trình trợ giúp tương tác:
- Cấu hình
secrets.providerstrước (env/file/exec, thêm/chỉnh sửa/xóa). - Cho phép bạn chọn các trường chứa bí mật được hỗ trợ trong
openclaw.jsoncùng vớiauth-profiles.jsoncho một phạm vi tác nhân. - Có thể tạo ánh xạ
auth-profiles.jsonmới trực tiếp trong bộ chọn mục tiêu. - Thu thập chi tiết SecretRef (
source,provider,id). - Chạy quá trình phân giải sơ bộ và có thể áp dụng ngay lập tức.
--allow-exec được đặt. Nếu bạn áp dụng trực tiếp từ configure --apply và kế hoạch bao gồm các tham chiếu/nhà cung cấp exec, hãy tiếp tục đặt --allow-exec cho bước áp dụng.Các chế độ hữu ích:openclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent <id>
configure:- Xóa thông tin xác thực tĩnh khớp khỏi
auth-profiles.jsonđối với các nhà cung cấp mục tiêu. - Xóa các mục
api_keytĩnh cũ khỏiauth.json. - Xóa các dòng bí mật đã biết khớp khỏi trạng thái có hiệu lực và các tệp
.envcủa cấu hình đang hoạt động (loại bỏ trùng lặp khi cả hai đường dẫn khớp).
secrets apply
secrets apply
Áp dụng một kế hoạch đã lưu:Ghi chú về exec: chạy thử bỏ qua kiểm tra exec trừ khi
--allow-exec được đặt; chế độ ghi từ chối các kế hoạch chứa SecretRef/nhà cung cấp exec trừ khi --allow-exec được đặt.Để biết chi tiết về hợp đồng mục tiêu/đường dẫn nghiêm ngặt và các quy tắc từ chối chính xác, hãy xem Hợp đồng kế hoạch áp dụng bí mật.Chính sách an toàn một chiều
Mô hình an toàn:- Kiểm tra sơ bộ phải thành công trước chế độ ghi.
- Quá trình kích hoạt thời gian chạy được xác thực trước khi commit.
- Quá trình áp dụng cập nhật các tệp bằng thao tác thay thế tệp nguyên tử và cố gắng khôi phục trong khả năng tốt nhất khi thất bại.
Ghi chú về khả năng tương thích xác thực cũ
Đối với thông tin xác thực tĩnh, thời gian chạy không còn phụ thuộc vào kho lưu trữ xác thực cũ dạng văn bản thuần.- Nguồn thông tin xác thực thời gian chạy là ảnh chụp nhanh trong bộ nhớ đã phân giải.
- Các mục
api_keytĩnh cũ được xóa khi phát hiện. - Hành vi tương thích liên quan đến OAuth vẫn được xử lý riêng.
Ghi chú về giao diện web
Một số union SecretInput dễ cấu hình trong chế độ trình chỉnh sửa thô hơn so với chế độ biểu mẫu.Liên quan
- Xác thực - thiết lập xác thực
- CLI: bí mật - các lệnh CLI
- SecretRef của Vault - thiết lập nhà cung cấp HashiCorp Vault
- Biến môi trường - thứ tự ưu tiên của môi trường
- Bề mặt thông tin xác thực SecretRef - bề mặt thông tin xác thực
- Hợp đồng kế hoạch áp dụng bí mật - chi tiết hợp đồng kế hoạch
- Bảo mật - trạng thái bảo mật