CLI commands
ข้อมูลลับ
openclaw secrets
จัดการ SecretRef และรักษาสแนปช็อตรันไทม์ที่ใช้งานอยู่ให้มีสถานะสมบูรณ์
| คำสั่ง | บทบาท |
|---|---|
reload |
Gateway RPC (secrets.reload): แก้ไขการอ้างอิงใหม่และเผยแพร่สแนปช็อตรันไทม์ที่รับรู้เจ้าของแบบอะตอมมิก (ไม่เขียนการกำหนดค่า) โดยความล้มเหลวของเจ้าของที่เข้าเกณฑ์อาจเผยแพร่เป็นคำเตือนสถานะ cold หรือ stale |
audit |
สแกนพื้นที่จัดเก็บการกำหนดค่า/การยืนยันตัวตน/โมเดลที่สร้างขึ้นและข้อมูลตกค้างแบบเดิมในโหมดอ่านอย่างเดียว เพื่อตรวจหาข้อความธรรมดา การอ้างอิงที่แก้ไขไม่ได้ และการคลาดเคลื่อนของลำดับความสำคัญ (ข้ามการอ้างอิง exec เว้นแต่ใช้ --allow-exec) |
configure |
เครื่องมือวางแผนแบบโต้ตอบสำหรับการตั้งค่าผู้ให้บริการ การแมปเป้าหมาย และการตรวจสอบล่วงหน้า (ต้องใช้ TTY) |
apply |
เรียกใช้แผนที่บันทึกไว้ (--dry-run จะตรวจสอบเท่านั้นและข้ามการตรวจสอบ exec โดยค่าเริ่มต้น ส่วนโหมดเขียนจะปฏิเสธแผนที่มี exec เว้นแต่ใช้ --allow-exec) จากนั้นล้างข้อมูลตกค้างแบบข้อความธรรมดาตามเป้าหมาย |
ลูปการดำเนินงานที่แนะนำ:
openclaw secrets audit --checkopenclaw secrets configureopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-runopenclaw secrets apply --from /tmp/openclaw-secrets-plan.jsonopenclaw secrets audit --checkopenclaw secrets reloadหากแผนมี SecretRef/ผู้ให้บริการแบบ exec ให้ส่ง --allow-exec ทั้งกับคำสั่ง apply แบบทดลองรันและแบบเขียน
รหัสออกสำหรับ CI/เกต:
audit --checkคืนค่า1เมื่อตรวจพบรายการ- การอ้างอิงที่แก้ไขไม่ได้จะคืนค่า
2(ไม่ว่า--checkจะเป็นค่าใด)
ที่เกี่ยวข้อง: การจัดการข้อมูลลับ · พื้นผิวข้อมูลประจำตัว SecretRef · ความปลอดภัย
โหลดสแนปช็อตรันไทม์ใหม่
openclaw secrets reloadopenclaw secrets reload --jsonopenclaw secrets reload --url ws://127.0.0.1:18789 --token <token>ใช้เมธอด Gateway RPC secrets.reload เจ้าของที่มีสถานะสมบูรณ์จะรีเฟรชแยกจากกัน เจ้าของที่ล้มเหลวและเข้าเกณฑ์จะกลายเป็น stale เฉพาะเมื่อข้อมูลระบุตัวตนของการอ้างอิง คำจำกัดความผู้ให้บริการ และสัญญาของเจ้าของส่วนที่ไม่ใช่ข้อมูลลับทั้งหมดไม่มีการเปลี่ยนแปลง ส่วนความล้มเหลวใหม่หรือที่เปลี่ยนแปลงจะกลายเป็น cold การเปิดใช้งานแบบลดระดับนี้จะสำเร็จและรายงาน warningCount ความล้มเหลวแบบเข้มงวดหรือที่ไม่ได้แมปจะคืนข้อผิดพลาดและเก็บรักษาสแนปช็อตที่ใช้งานอยู่ก่อนหน้า
ตัวเลือก: --url <url>, --token <token>, --timeout <ms>, --json
ตรวจสอบ
สแกนสถานะ OpenClaw เพื่อหา:
- การจัดเก็บข้อมูลลับแบบข้อความธรรมดา
- การอ้างอิงที่แก้ไขไม่ได้
- การคลาดเคลื่อนของลำดับความสำคัญ (ข้อมูลประจำตัว
auth-profiles.jsonบดบังการอ้างอิงopenclaw.json) - ข้อมูลตกค้าง
agents/*/agent/models.jsonที่สร้างขึ้น (ค่าapiKeyของผู้ให้บริการและส่วนหัวผู้ให้บริการที่ละเอียดอ่อน) - ข้อมูลตกค้างแบบเดิม (รายการพื้นที่จัดเก็บการยืนยันตัวตนแบบเดิม การแจ้งเตือน OAuth)
การสแกน .env ครอบคลุมไดเรกทอรีสถานะที่มีผลและไดเรกทอรีที่มีการกำหนดค่าที่ใช้งานอยู่ เมื่อทั้งสองพาธระบุไฟล์เดียวกัน ระบบจะสแกนไฟล์นั้นเพียงครั้งเดียว
การตรวจหาส่วนหัวผู้ให้บริการที่ละเอียดอ่อนใช้ฮิวริสติกตามชื่อ โดยจะทำเครื่องหมายส่วนหัวที่ชื่อตรงกับส่วนประกอบทั่วไปเกี่ยวกับการยืนยันตัวตน/ข้อมูลประจำตัว (authorization, x-api-key, token, secret, password, credential)
openclaw secrets auditopenclaw secrets audit --checkopenclaw secrets audit --jsonopenclaw secrets audit --allow-execรูปแบบรายงาน:
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- รหัสรายการตรวจพบ:
PLAINTEXT_FOUND,REF_UNRESOLVED,REF_SHADOWED,LEGACY_RESIDUE
กำหนดค่า (ตัวช่วยแบบโต้ตอบ)
สร้างการเปลี่ยนแปลงผู้ให้บริการและ SecretRef แบบโต้ตอบ เรียกใช้การตรวจสอบล่วงหน้า และเลือกนำไปใช้ได้:
openclaw secrets configureopenclaw secrets configure --plan-out /tmp/openclaw-secrets-plan.jsonopenclaw secrets configure --apply --yesopenclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent opsopenclaw secrets configure --jsonขั้นตอน: ตั้งค่าผู้ให้บริการก่อน (เพิ่ม/แก้ไข/ลบนามแฝง secrets.providers) จากนั้นแมปข้อมูลประจำตัว (เลือกฟิลด์ กำหนดการอ้างอิง {source, provider, id}) แล้วจึงตรวจสอบล่วงหน้าและเลือกนำไปใช้
แฟล็ก:
--providers-only: กำหนดค่าเฉพาะsecrets.providersและข้ามการแมปข้อมูลประจำตัว--skip-provider-setup: ข้ามการตั้งค่าผู้ให้บริการ และแมปข้อมูลประจำตัวกับผู้ให้บริการที่มีอยู่--agent <id>: จำกัดขอบเขตการค้นหาเป้าหมายและการเขียนauth-profiles.jsonไว้ที่พื้นที่จัดเก็บของเอเจนต์หนึ่งรายการ--allow-exec: อนุญาตการตรวจสอบ SecretRef แบบ exec ระหว่างการตรวจสอบล่วงหน้า/การนำไปใช้ (อาจเรียกใช้คำสั่งผู้ให้บริการ)
ไม่สามารถใช้ --providers-only ร่วมกับ --skip-provider-setup ได้
หมายเหตุ:
- ต้องใช้ TTY แบบโต้ตอบ
- กำหนดเป้าหมายฟิลด์ที่มีข้อมูลลับใน
openclaw.jsonรวมถึงauth-profiles.jsonสำหรับขอบเขตเอเจนต์ที่เลือก พื้นผิวมาตรฐานที่รองรับ: พื้นผิวข้อมูลประจำตัว SecretRef - รองรับการสร้างการแมป
auth-profiles.jsonใหม่โดยตรงในขั้นตอนตัวเลือก - เรียกใช้การแก้ไขค่าระหว่างการตรวจสอบล่วงหน้าก่อนนำไปใช้
- แผนที่สร้างขึ้นจะเปิดใช้ตัวเลือกการล้างข้อมูลโดยค่าเริ่มต้น (
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJson) การนำไปใช้กับค่าข้อความธรรมดาที่ถูกล้างแล้วไม่สามารถย้อนกลับได้ --plan-outจะปฏิเสธการสร้างแผนที่มีรูปแบบอนุกรม UTF-8 เกิน 16 MiB (16,777,216 ไบต์) ซึ่งตรงกับขีดจำกัดอินพุตapply --from- หากไม่มี
--applyCLI จะยังคงแสดงข้อความถามApply this plan now?หลังการตรวจสอบล่วงหน้า - เมื่อใช้
--apply(และไม่มี--yes) CLI จะแสดงข้อความยืนยันเพิ่มเติมสำหรับการย้ายข้อมูลที่ย้อนกลับไม่ได้ --jsonแสดงแผนและรายงานการตรวจสอบล่วงหน้า แต่ยังคงต้องใช้ TTY แบบโต้ตอบ
ความปลอดภัยของผู้ให้บริการ exec
การติดตั้ง Homebrew มักเปิดเผยไบนารีที่เป็น symlink ภายใต้ /opt/homebrew/bin/* ตั้งค่า allowSymlinkCommand: true เฉพาะเมื่อจำเป็นสำหรับพาธของตัวจัดการแพ็กเกจที่เชื่อถือได้ โดยใช้ร่วมกับ trustedDirs (ตัวอย่างเช่น ["/opt/homebrew"]) บน Windows หากไม่สามารถตรวจสอบ ACL สำหรับพาธผู้ให้บริการได้ OpenClaw จะปฏิเสธโดยค่าเริ่มต้น สำหรับพาธที่เชื่อถือได้เท่านั้น ให้ตั้งค่า allowInsecurePath: true บนผู้ให้บริการนั้นเพื่อข้ามการตรวจสอบความปลอดภัยของพาธ
นำแผนที่บันทึกไว้ไปใช้
openclaw secrets apply --from /tmp/openclaw-secrets-plan.jsonopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --allow-execopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-runopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --dry-run --allow-execopenclaw secrets apply --from /tmp/openclaw-secrets-plan.json --json--dry-run ตรวจสอบการตรวจสอบล่วงหน้าโดยไม่เขียนไฟล์ และจะข้ามการตรวจสอบ SecretRef แบบ exec โดยค่าเริ่มต้นในการทดลองรัน โหมดเขียนจะปฏิเสธแผนที่มี SecretRef/ผู้ให้บริการแบบ exec เว้นแต่ใช้ --allow-exec ใช้ --allow-exec เพื่อเลือกเข้าร่วมการตรวจสอบ/การเรียกใช้ผู้ให้บริการ exec ในโหมดใดโหมดหนึ่ง
--from ต้องชี้ไปยังไฟล์ปกติที่มีขนาดไม่เกิน 16 MiB (16,777,216 ไบต์) ขีดจำกัดไบต์ใช้กับไฟล์แบบอนุกรมทั้งหมด รวมถึงช่องว่าง
สิ่งที่ apply อาจอัปเดต:
openclaw.json(เป้าหมาย SecretRef และการเพิ่มหรืออัปเดต/ลบผู้ให้บริการ)auth-profiles.json(การล้างข้อมูลเป้าหมายผู้ให้บริการ)- ข้อมูลตกค้าง
auth.jsonแบบเดิม - ไฟล์
.envในไดเรกทอรีสถานะที่มีผลและไดเรกทอรีการกำหนดค่าที่ใช้งานอยู่ สำหรับคีย์ข้อมูลลับที่รู้จักซึ่งมีการย้ายค่าแล้ว
รายละเอียดสัญญาแผน (พาธเป้าหมายที่อนุญาต กฎการตรวจสอบ ความหมายของความล้มเหลว): สัญญาแผนการนำข้อมูลลับไปใช้
เหตุใดจึงไม่มีข้อมูลสำรองสำหรับย้อนกลับ
secrets apply มีเจตนาไม่เขียนข้อมูลสำรองสำหรับย้อนกลับที่มีค่าข้อความธรรมดาเดิม ความปลอดภัยมาจากการตรวจสอบล่วงหน้าที่เข้มงวดและการนำไปใช้แบบเกือบอะตอมมิก พร้อมการคืนค่าในหน่วยความจำแบบพยายามอย่างเต็มที่เมื่อเกิดความล้มเหลว
ตัวอย่าง
openclaw secrets audit --checkopenclaw secrets configureopenclaw secrets audit --checkหาก audit --check ยังคงรายงานรายการข้อความธรรมดา ให้อัปเดตพาธเป้าหมายที่รายงานซึ่งเหลืออยู่แล้วเรียกใช้การตรวจสอบอีกครั้ง