vsh
عبارة عن أداة تفاعلية لـ HashiCorp Vault shell وcli. لأنه يأتي مع عمليات مشتركة متعددة ويعامل المسارات مثل الدلائل والملفات. الميزات الأساسية هي:
cp
، rm
، mv
grep
(سلسلة فرعية أو تعبير عادي)replace
vsh -c "<cmd>"
)append
brew install vsh
nix-env -i vsh
قم بتنزيل أحدث الثنائيات الثابتة من صفحة الإصدار.
من أجل الحصول على رمز مميز صالح، يستخدم vsh
آلية TokenHelper الخاصة بـ vault. وهذا يعني أن vsh
يدعم إعداد رموز vault المميزة عبر ~/.vault-token
و VAULT_TOKEN
ومساعد الرمز المميز الخارجي.
أضف شهادة tls للخادم عن طريق تعيين متغير البيئة VAULT_CACERT
على مسار شهادة pem
.
يتطلب vsh
إذن List
على المسارات التي يتم تشغيلها. يعد ذلك ضروريًا لتحديد ما إذا كان المسار يشير إلى عقدة أو ورقة في شجرة المسار. علاوة على ذلك، هناك حاجة لجمع بيانات الإكمال التلقائي.
الأوامر التي تغير البيانات مثل cp
أو mv
تتطلب أيضًا أذونات Read
Write
على المسارات التي يتم تشغيلها.
من أجل اكتشاف جميع الواجهات الخلفية المتاحة بشكل موثوق، من الأفضل أن يكون لرمز vault المميز الذي يستخدمه 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
بتخزين نتائج List()
لتقليل كمية الاستعلامات. ومع ذلك، بعد تنفيذ كل أمر، يتم مسح ذاكرة التخزين المؤقت من أجل استكمال علامات التبويب بشكل دقيق. إذا كان الرمز المميز الخاص بك يحتوي على عدد محدود من الاستخدامات، ففكر في استخدام الوضع غير التفاعلي أو قم بإيقاف تشغيل الإكمال التلقائي لتجنب استعلامات List()
.
لتقليل عدد الاستعلامات ضد المخزن، يمكنك تعطيل الإكمال التلقائي للمسار بطريقتين:
./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/"
يمكن أن يكون العمل على أسرار الخزنة أمرًا بالغ الأهمية، مما يجعل الجودة والسلوك الصحيح مواطنًا من الدرجة الأولى بالنسبة لـ vsh
. ومع ذلك، لا يزال vsh
مشروعًا صغيرًا مفتوح المصدر، مما يعني أننا لا نستطيع تقديم أي ضمانات. ومع ذلك، فإننا نركز بشدة على التطوير القائم على الاختبار. يتم اختبار كل علاقات عامة من خلال مجموعة واسعة من اختبارات التكامل. يتم إجراء الغالبية العظمى من الاختبارات على 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.