0Pricing
DevOps Bootcamp · درس

لماذا لا تنتمي Secrets إلى values.yaml

مخاطر الأسرار النصية الصريحة في المخططات وGit

لماذا لا تنتمي Secrets إلى values.yaml درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

القيم نص عادي

ملف values.yaml في chart هو نص عادي غير مشفّر. وكل ما تكتبه فيه، بما في ذلك كلمات المرور، يمكن لأي شخص يفتح الملف قراءته.

يتذكر Git كل شيء إلى الأبد

توجد charts عادةً في Git. فالسر الذي يُلتزم به مرة واحدة يبقى في السجل حتى بعد حذفه، ولذلك يكون التسريب دائمًا. 🔒

خطأ مغرٍ

قد يكون من المغري وضع كلمة مرور حقيقية مباشرةً في values.yaml كي تبدأ الأمور بالعمل. قاوم ذلك، لأن هذه القيمة ستنتشر في كل مكان.

database:
  password: super-secret-123

يخزّن Helm بيانات الإصدار

عند التثبيت، يحفظ Helm القيم المدمجة في Secret خاص بـ release داخل العنقود. وبذلك تصبح كلمة مرورك النصية العادية موجودة هناك أيضًا.

يكشف helm get values القيمة

يمكن لأي شخص لديه صلاحية الوصول إلى الإصدار تشغيل helm get values وقراءة ما مرّرته بالضبط، بما في ذلك كلمة المرور النصية العادية.

helm get values myapp

تُسرّب سجلات CI الأسرار أيضًا

غالبًا ما يؤدي تمرير الأسرار عبر --set في مسار CI إلى طباعتها في سجلات البناء، حيث تبقى ظاهرةً بوضوح أمام الفريق بأكمله.

helm install myapp ./chart --set db.password=secret

القاعدة الأساسية

القاعدة بسيطة: يجب ألا تبقى secrets أبدًا كنص عادي داخل chart أو في Git أو في سطر الأوامر. أبقِها خارج هذه الأماكن.

أشر إليها ولا تضمنها

النمط الآمن هو الإشارة إلى السر بدلًا من تضمينه. إذ تشير القوالب إلى مورد Secret يحتفظ به العنقود مسبقًا.

valueFrom:
  secretKeyRef:
    name: db-credentials
    key: password

شفّرها إذا اضطررت إلى تخزينها

عندما يتعين حقًا أن تعيش قيم الأسرار في Git، خزّنها مشفّرة، بحيث يصبح الملف الملتزم به عديم الفائدة من دون مفتاح فك التشفير.

ثلاثة أساليب شائعة

تحلّ ثلاث طرق هذه المشكلة: تشفير القيم باستخدام الأدوات، أو جلب الأسرار من مخزن خارجي، أو إنشاء كائنات Secret من بيانات مُدخلة أثناء إنشاء القوالب.

الترميز ليس أمانًا

Base64 في Kubernetes Secrets ليس سوى ترميز، وليس تشفيرًا. فهو لا يخفي شيئًا، لذا لا تتعامل أبدًا مع قيمة مُرمّزة على أنها محمية.

تحقق سريع

لماذا تُعد كلمة المرور الموجودة في values.yaml محفوفةً بالمخاطر إلى هذا الحد؟

مراجعة

رأيتَ كيف تتسرّب الأسرار النصية العادية الموجودة في values.yaml عبر Git وبيانات الإصدار وسجلات CI، ولماذا يجب الإشارة إليها أو تشفيرها بدلًا من ذلك. 🎉

الأسئلة الشائعة

هل درس «لماذا لا تنتمي Secrets إلى values.yaml» مجاني؟

نعم — نص درس «لماذا لا تنتمي Secrets إلى values.yaml» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «لماذا لا تنتمي Secrets إلى values.yaml»؟

مخاطر الأسرار النصية الصريحة في المخططات وGit تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «لماذا لا تنتمي Secrets إلى values.yaml»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. لماذا لا تنتمي Secrets إلى values.yaml
  2. تشفير القيم باستخدام helm-secrets وSOPS
  3. جلب الأسرار من External Secrets Operators
  4. إنشاء قوالب لموارد Kubernetes Secret
← العودة إلى DevOps Bootcamp