Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
teller — إدارة الأسرار السحابية الأصلية للمطورين - لا تغادر سطر الأوامر أبدًا من أجل الأسرار. | Kitploit
أدوات/GitHubGitHub/tellerops/teller
أمن البنية التحتية السحابيةتحليل الكودأمن السحابةDevSecOpsكشف الأسرار
GitHubtellerops/teller

teller

إدارة الأسرار السحابية الأصلية للمطورين - لا تغادر سطر الأوامر أبدًا من أجل الأسرار.

عرض المستودع
3.2k201منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة






:computer: لا تغادر طرفيتك أبدًا من أجل الأسرار
:pager: أنشئ سير عمل سهلة ونظيفة للعمل مع البيئات السحابية
:mag_right: افحص الأسرار وحارب انتشار الأسرار


Teller - مدير الأسرار الشامل مفتوح المصدر للمطورين

لا تترك طرفيتك أبدًا لاستخدام الأسرار أثناء تطوير تطبيقاتك واختبارها وبنائها.

بدلاً من النصوص البرمجية المخصصة، والرموز في ملفات .zshrc الخاصة بك، وعمليات EXPORT المرئية في سجل bash، وملفات .env.production الموضوعة في غير مكانها والمزيد حول محطة العمل الخاصة بك -- فقط استخدم teller واربطه بأي خزنة أو مخزن مفاتيح أو خدمة سحابية تريدها (يدعم Teller Hashicorp Vault و AWS Secrets Manager و Google Secret Manager وغيرها الكثير).

يمكنك استخدام Teller لترتيب بيئتك الخاصة أو لفريقك كعملية وأفضل ممارسة.

البدء السريع مع teller

تنزيل ملف ثنائي احصل على ملف ثنائي من releases

البناء من المصدر ستتيح لك هذه الطريقة إلقاء نظرة على الكود المصدري ومراجعته وبناء نسخة بنفسك.

سيؤدي هذا إلى تثبيت الملف الثنائي محليًا على جهازك:

root@kitploit:~
$ cd teller-cli
$ cargo install --path .

إنشاء إعداد جديد

root@kitploit:~
$ teller new
? Select your secret providers ›
⬚ hashicorp_consul
⬚ aws_secretsmanager
⬚ ssm
⬚ dotenv
⬚ hashicorp
⬚ google_secretmanager

ثم عدّل ملف .teller.yml المنشأ حديثًا لتعيين الخرائط والمفاتيح التي تحتاجها لمزودي الخدمة.

نظرة على teller.yml

يصف YAML الخاص بـ teller مزودي الخدمة، وداخل كل مزود يوجد map يصف ما يلي:

  • ما هو المسار الجذري لجلب أزواج المفاتيح-القيم منه
  • لكل خريطة من هذه الخرائط، id فريد سيفيدك في العمليات لاحقًا
  • لكل خريطة، تعيين اختياري لاسم مفتاح محدد - يمكنك إعادة تسمية المفاتيح التي ستجلبها من مزود المصدر

إليك مثال على ملف إعداد. لاحظ أنه يتضمن أيضًا بنى قوالب -- مثل جلب متغيرات البيئة أثناء تحميل الإعداد:

root@kitploit:~
providers:
  hashi_1:
    kind: hashicorp
    maps:
      - id: test-load
        path: /{{ get_env(name="TEST_LOAD_1", default="test") }}/users/user1
        # if empty, map everything
        # == means map to same key name
        # otherwise key on left becomes right
        # in the future: key_transform: camelize, snake_case for automapping the keys
        keys:
          GITHUB_TOKEN: ==
          mg: FOO_BAR
  dot_1:
    kind: dotenv
    maps:
      - id: stg
        path: VAR_{{ get_env(name="STAGE", default="development") }}

يمكنك الآن مخاطبة هذه المزودات باسم hashi_1 أو dot_1. يقوم Teller بسحب البيانات المحددة من جميع المزودات افتراضيًا.

الميزات

🏃 تشغيل العمليات الفرعية

هل تقوم بتصدير وإعداد متغيرات البيئة يدويًا لتشغيل عملية بإعداد شبيه بالعرض التجريبي / الإنتاجي؟

هل عانيت من استخدام .env.production وتعريضه في المشروع المحلي نفسه؟

باستخدام teller وملف .teller.yml لا يكشف شيئًا للأعين المتطفلة، يمكنك العمل بطلاقة وسلاسة بدون أي مخاطر، ولا حاجة أيضًا لعلامات الاقتباس:

root@kitploit:~
$ teller run --reset --shell -- node index.js

🔎 فحص المتغيرات

سيؤدي هذا إلى إخراج المتغيرات الحالية التي يلتقطها teller. سيتم عرض أول حرفين فقط من كل متغير، بالطبع.

root@kitploit:~
$ teller show

📺 تعبئة الصدفة المحلية

هل ترمّز الأسرار بشكل ثابت داخل نصوص الصدفة وملفات dotfiles؟

في بعض الحالات، من المنطقي تقييم المتغيرات في الصدفة الحالية. على سبيل المثال، في .zshrc الخاصة بك، من المنطقي أكثر استخدام teller بدلاً من ترميز كل ذلك بشكل ثابت في ملف .zshrc نفسه.

في هذه الحالة، هذا ما يجب عليك إضافته:

root@kitploit:~
eval "$(teller sh)"

🐳 بيئة Docker سهلة

هل سئمت من التقاط جميع أنواع المتغيرات وإعدادها، وقلق من ظهورها في سجل الصدفة أيضًا؟

استخدم هذا السطر الواحد من الآن فصاعدًا:

root@kitploit:~
$ docker run --rm -it --env-file <(teller env) alpine sh

⚠️ فحص الأسرار

يمكن أن يساعدك Teller في مكافحة انتشار الأسرار والأسرار المرمزة بشكل ثابت، كما يمكن أن يكون أفضل أداة إنتاجية للعمل مع خزنتك.

يمكنه أيضًا التكامل مع CI الخاص بك ويعمل كأداة أمان shift-left لخط أنابيب DevSecOps لديك.

ابحث عن أسرارك المخزنة في الخزنة داخل الكود الخاص بك عن طريق تشغيل:

root@kitploit:~
$ teller scan

يمكنك تشغيله كمدقق (linter) في CI الخاص بك كما يلي:

root@kitploit:~
run: teller scan --error-if-found

سيؤدي إلى كسر البناء إذا وجد شيئًا (يرجع رمز الخروج 1).

يمكنك أيضًا تصدير النتائج بصيغة JSON باستخدام --json وفحص الملفات الثنائية باستخدام -b.

♻️ تنقيح الأسرار من مخرجات العمليات والسجلات والملفات

يمكنك استخدام teller كأداة تنقيح عبر البنية التحتية الخاصة بك، وتشغيل العمليات أثناء تنقيح مخرجاتها بالإضافة إلى تنظيف السجلات والتتبعات الحية للسجلات.

مرّر مخرجات أي عملية أو tail أو سجلات إلى teller لتنقيحها مباشرة:

root@kitploit:~
$ cat some.log | teller redact

يجب أن يعمل أيضًا مع tail -f:

root@kitploit:~
$ tail -f /var/log/apache.log | teller redact

أخيرًا، إذا كان لديك بعض الملفات التي تريد تنقيحها، يمكنك فعل ذلك أيضًا:

root@kitploit:~
$ teller redact --in dirty.csv --out clean.csv

إذا حذفت --in، سيأخذ Teller من stdin، وإذا حذفت --out، سيخرج Teller إلى stdout.

📜 تعبئة القوالب

يمكنك تعبئة قوالب مخصصة:

root@kitploit:~
$ teller template --in config-templ.t

صيغة القالب هي Tera وهي مشابهة جدًا لـ liquid أو handlebars.

إليك مثال على قالب:

root@kitploit:~
production_var: {{ key(name="PRINT_NAME")}}
production_mood: {{ key(name="PRINT_MOOD")}}

🔄 نسخ/مزامنة البيانات بين المزودات

في الحالات التي تريد فيها المزامنة بين المزودات، يمكنك فعل ذلك باستخدام teller copy.

مزامنة مفاتيح الخريطة المحددة

يمكنك استخدام صيغة <provider name>/<map id> لنسخ خريطة من مزود إلى مزود آخر:

root@kitploit:~
$ teller copy --from source/dev --to target/prod,<...>

في هذا المثال المبسط، نستخدم ملف الإعداد التالي

root@kitploit:~
providers:
  dot1:
    kind: dotenv
    maps:
      - id: one
        path: one.env
  dot2:
    kind: dotenv
    maps:
      - id: two
        path: two.env

سيقوم هذا بـ:

  1. جلب جميع القيم المعينة من خريطة المصدر
  2. لكل مزود هدف، العثور على الخريطة المطابقة، ونسخ القيم من المصدر إليها

افتراضيًا، سيقوم النسخ بتحديث خريطة الهدف (إدراج أو تحديث البيانات)، وإذا أردت الاستبدال يمكنك استخدام --replace.

🚲 الكتابة والكتابة المتعددة إلى المزودات

تدعم مزودات Teller حالات استخدام الكتابة التي تسمح بكتابة القيم إلى المزودات.

تذكر، هذه الميزة لا تزال تدور حول التعريفات في ملف teller.yml الخاص بك:

root@kitploit:~
$ teller put --providers new --map-id one NEW_VAR=s33kret

في هذا المثال، يتم استخدام هذا الإعداد:

root@kitploit:~
providers:
  new:
    kind: dotenv
    maps:
      - id: one
        path: new.env

بعض الملاحظات:

  • القيم هي أزواج مفتاح-قيمة بالصيغة: key=value ويمكنك تحديد أزواج متعددة في وقت واحد
  • عند تحديد قيمة حساسة حرفية، تأكد من استخدام متغير ENV بحيث لا يتم تسجيل أي شيء حساس في سجل الأوامر الخاص بك
  • العلامة --providers تتيح لك الدفع إلى مزود واحد أو أكثر في وقت واحد

❌ الحذف والحذف المتعدد من المزودات

تدعم مزودات Teller حذف القيم من المزودات.

root@kitploit:~
$ teller delete --providers new --map-id one DELETE_ME

بعض الملاحظات:

  • يمكنك تحديد مفاتيح متعددة للحذف، على سبيل المثال:
  • العلامة --providers تتيح لك الدفع إلى مزود واحد أو أكثر في وقت واحد

تصدير YAML بصيغة YAML

XXX TODO: إعادة كتابة كيفية عمل أمر التصدير

يمكنك التصدير بصيغة YAML، مناسبة لـ GCloud:

root@kitploit:~
$ teller export yaml

مثال على الصيغة:

root@kitploit:~
FOO: "1"
KEY: VALUE

تصدير JSON بصيغة JSON

يمكنك التصدير بصيغة JSON، مناسبة للمرور عبر jq أو سير عمل أخرى:

root@kitploit:~
$ teller export json

مثال على الصيغة:

root@kitploit:~
{
  "FOO": "1"
}

المزودات

يمكنك الحصول على قائمة بالمزودات وقيم الإعدادات الموصوفة الخاصة بها في التوثيق.

قائمة فحوصات الاختبار:

  • docker على Windows: إذا كان لديك اختبار قائم على الحاويات يستخدم Docker، فتأكد من استبعاده على Windows باستخدام #[cfg(not(windows))]

  • دلالات الموارد: أثناء بناء المزودات، وائم بين دلالات فارغ و غير موجود كدلالتين مختلفتين: إذا كان المزود يدعم دلالة "غير موجود" صريحة (404, NotFound، وغيرها)، استخدم Error::NotFound. بخلاف ذلك، عندما يشير المزود إلى دلالة "غير موجود" كحقيبة بيانات فارغة، أعد KV[] فارغًا (أي لا تترجم دلالة "فارغ" إلى "غير موجود").

الاختبار

يتم الاختبار باستخدام:

root@kitploit:~
$ cargo test --all --all-features

ويتطلب Docker (أو ما يعادله) على جهازك.

الشكر:

لجميع المساهمين - أنتم من يجعل هذا يحدث، شكرًا لكم!

مدونة قواعد السلوك

يتبع Teller مدونة قواعد سلوك CNCF

حقوق النشر

حقوق النشر (c) 2024 @jondot. راجع LICENSE لمزيد من التفاصيل.

تنزيل الأداة