vsh
เป็นเครื่องมือเชลล์และ cli ของ HashiCorp Vault แบบโต้ตอบ มันมาพร้อมกับการดำเนินการทั่วไปหลายอย่างและปฏิบัติต่อเส้นทางเช่นไดเร็กทอรีและไฟล์ คุณสมบัติหลักคือ:
cp
, rm
, mv
grep
(สตริงย่อยหรือนิพจน์ทั่วไป)replace
vsh -c "<cmd>"
)append
brew install vsh
nix-env -i vsh
ดาวน์โหลดไบนารีคงที่ล่าสุดจากหน้าเผยแพร่
ในการรับโทเค็นที่ถูกต้อง vsh
จะใช้กลไก TokenHelper ของห้องนิรภัย นั่นหมายถึง vsh
รองรับการตั้งค่าโทเค็นห้องนิรภัยผ่าน ~/.vault-token
, VAULT_TOKEN
และ token-helper ภายนอก
เพิ่มใบรับรอง tls สำหรับเซิร์ฟเวอร์โดยการตั้งค่าตัวแปรสภาพแวดล้อม VAULT_CACERT
ให้เป็นเส้นทางใบรับรอง pem
vsh
ต้องได้รับอนุญาตจาก List
บนเส้นทางที่ดำเนินการ นี่เป็นสิ่งจำเป็นในการพิจารณาว่าเส้นทางชี้ไปที่โหนดหรือใบไม้ในแผนผังเส้นทางหรือไม่ นอกจากนี้ยังจำเป็นต้องรวบรวมข้อมูลการเติมข้อมูลอัตโนมัติ
คำสั่งที่เปลี่ยนแปลงข้อมูล เช่น cp
หรือ mv
จำเป็นต้องมีสิทธิ์ Read
และ Write
เพิ่มเติมบนพาธที่ดำเนินการ
เพื่อที่จะค้นหาแบ็กเอนด์ที่มีอยู่ทั้งหมดได้อย่างน่าเชื่อถือ ตามหลักการแล้ว vault token ที่ใช้โดย vsh
มีสิทธิ์ List
บน sys/mount
อย่างไรก็ตาม นี่ไม่ใช่ข้อกำหนดที่ยาก หากโทเค็นไม่มีสิทธิ์ List
บน sys/mount
ดังนั้น vsh
จะไม่ทราบแบ็กเอนด์ที่มีอยู่ล่วงหน้า นั่นหมายความว่าในตอนแรกจะไม่มีการเติมเส้นทางอัตโนมัติที่ระดับบนสุด (แบ็กเอนด์) ไม่ว่า vsh
จะพยายามใช้กลยุทธ์อย่างเต็มที่เพื่อกำหนดเวอร์ชัน kv ของทุกเส้นทางที่ป้อนอย่างน่าเชื่อถือ
export VAULT_ADDR=http://localhost:8080
export VAULT_TOKEN=root
export VAULT_PATH=secret/ # VAULT_PATH is optional
./vsh
http://localhost:8080 /secret/>
หมายเหตุ: โทเค็นที่กำหนดจะใช้สำหรับการเติมข้อมูลอัตโนมัติ เช่น การสืบค้น List()
เสร็จสิ้นด้วยโทเค็นนั้น แม้ว่าคุณจะไม่ได้ rm
หรือ mv
ก็ตาม vsh
caches List()
ผลลัพธ์เพื่อลดจำนวนการสืบค้น อย่างไรก็ตาม หลังจากดำเนินการแต่ละคำสั่งแล้ว แคชจะถูกล้างเพื่อให้สามารถดำเนินการแท็บให้เสร็จสิ้นได้อย่างแม่นยำ หากโทเค็นของคุณมีการใช้งานในจำนวนที่จำกัด ให้พิจารณาใช้โหมดที่ไม่มีการโต้ตอบหรือปิดการเติมข้อมูลอัตโนมัติ เพื่อหลีกเลี่ยงคำค้นหา List()
หากต้องการลดจำนวนการสืบค้นต่อห้องนิรภัย คุณสามารถปิดใช้งานการเติมเส้นทางอัตโนมัติได้ 2 วิธี:
./vsh --disable-auto-completion
./vsh
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: false
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: true
export VAULT_ADDR=<addr>
export VAULT_TOKEN=<token>
./vsh -c "rm secret/dir/to/remove/"
การทำงานกับความลับของ vault อาจมีความสำคัญ ทำให้คุณภาพและพฤติกรรมที่ถูกต้องเป็นพลเมืองชั้นหนึ่งสำหรับ vsh
ดังที่กล่าวไปแล้ว vsh
ยังคงเป็นโครงการโอเพ่นซอร์สขนาดเล็ก ซึ่งหมายความว่าเราไม่สามารถรับประกันใดๆ ได้ อย่างไรก็ตาม เราให้ความสำคัญอย่างยิ่งกับการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ PR ทุกรายการได้รับการทดสอบด้วยชุดการทดสอบบูรณาการที่ครอบคลุม การทดสอบส่วนใหญ่ทำงานบน KV1 และ KV2 และทุกการทดสอบทำงานกับ vault 1.13.4
และ 1.16.2
กล่าวคือ เวอร์ชัน vault ระหว่างนั้นก็มีแนวโน้มที่จะใช้งานร่วมกันได้เช่นกัน
vsh
ถือเป็นความเสี่ยงของคุณเอง เราไม่รับผิดชอบใด ๆ และไม่รับประกันใด ๆ
ยินดีต้อนรับการมีส่วนร่วมในรูปแบบใด ๆ เสมอ! หากไม่มีการสนับสนุนจากชุมชน vsh
ก็ไม่ใช่เครื่องมือที่เป็นอยู่ทุกวันนี้
ความต้องการ:
golang
( >= v1.21
)docker
สำหรับการทดสอบการรวมระบบmake
คำสั่งที่ง่ายขึ้น make compile
make get-bats
make integration-tests
-v DEBUG
ตั้งค่าระดับบันทึกการดีบัก ซึ่งจะสร้างไฟล์ vsh_trace.log
เพื่อบันทึกอ็อบเจ็กต์ข้อผิดพลาดใดๆ จาก vault API