Format Atlas

أدلة

أين تُحفظ الإعدادات والأسرار؟

افصل الإعدادات العادية عن بيانات الاعتماد، واختر مكان حفظ مناسبًا للتطوير المحلي وCI والإنتاج بحسب الحاجة إلى الوصول.

أي تنسيق يجب أن تختار؟

اختر وفق دور كل ملف في سير عملك.

  • القيم الافتراضية المشتركة → أضف أمثلة خالية من الأسرار إلى المستودع
  • إعدادات المطور المحلية → استخدم .env إذا كانت الأداة تدعمه، واستبعده من Git
  • بيانات اعتماد CI → استخدم مخزن الأسرار لدى مزود CI وقيّد الوصول
  • الإنتاج والحاويات → استخدم ميزة الأسرار في منصة التشغيل وامنح الصلاحية للخدمات التي تحتاجها فقط
  • احتمال انكشاف سر → ألغِ بيانات الاعتماد أو بدّلها؛ حذف الملف وحده لا يكفي

ميّز بين الإعدادات والأسرار

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

استبعد ملفات .env المحلية من Git

إذا كانت الأدوات تدعم ذلك، فاحفظ القيم المحلية لكل مطور في ملف .env، وشارك ملف .env.example يحتوي على أسماء المتغيرات وقيمًا توضيحية فقط. أضف ملف .env الحقيقي إلى .gitignore وتأكد من أن Git لا يتتبعه مسبقًا. قاعدة الاستبعاد في Git ليست مخزنًا آمنًا ولا تمحو القيم من السجل السابق.

استخدم مخزن أسرار CI بأقل صلاحيات ممكنة

في أنظمة CI مثل GitHub Actions، سجّل بيانات الاعتماد عبر ميزة الأسرار لدى المزود بدلًا من كتابتها في ملفات سير العمل. قيّد الوصول بالمستودعات والبيئات والمهام التي تحتاجها، وامنح الرموز الصلاحيات المطلوبة فقط، وتجنب طباعة القيم. لا يضمن الإخفاء التلقائي في السجلات حجب كل قيمة محوّلة أو مخرجات الأوامر.

مرّر الأسرار من بيئة الإنتاج

في الإنتاج، فضّل مخزن الأسرار لدى مزود الاستضافة أو السحابة، وحدد عمليات النشر والخدمات التي يمكنها قراءة كل قيمة. يستطيع Docker Compose تركيب الأسرار كملفات للخدمات المصرح لها صراحةً؛ وتختلف الإمكانات والقيود حسب المنصة، لذا راجع توثيق بيئة التشغيل الفعلية. عند توفر الدعم، فكّر في بيانات اعتماد قصيرة العمر مثل OIDC بدلًا من المفاتيح طويلة الصلاحية.

ألغِ بيانات الاعتماد المنكشفة أو بدّلها

إذا كان من المحتمل ظهور سر في عملية إيداع أو سجل CI أو محادثة، فلا يكفي حذف النسخة الظاهرة. ألغِ المفتاح أو الرمز المتأثر أو بدّله أولًا، ثم راجع سجلات الوصول والاستخدام المحتمل. بعد ذلك، عالج سجل المستودع والسجلات حسب الحاجة، وشدّد ضوابط الوصول لمنع تكرار المشكلة.

تنسيقات مقترحة

.env

مناسب لـ: تحميل القيم المحلية باستخدام أدوات تدعم ملفات .env

أقل ملاءمة لـ: مشاركة الأسرار أو حفظها من دون حماية

.gitignore

مناسب لـ: منع إضافة ملفات .env المحلية غير المتتبعة إلى المستودع عن طريق الخطأ

أقل ملاءمة لـ: إلغاء الأسرار أو إزالة القيم التي يتتبعها Git من السجل

تحقق قبل التصدير

  • لا يضمن .env و.gitignore وحدهما حماية الأسرار؛ تحقق من حالة تتبع Git وسجلات CI والنسخ الاحتياطية ومخزن الأسرار في بيئة التشغيل.
  • قد لا يخفي التمويه القيم المحوّلة أو كل مخرجات الأوامر.
  • إذا اشتبهت في انكشاف بيانات اعتماد، فألغها أو بدّلها بدلًا من الاكتفاء بحذف الملف.

أدلة

المراجع والمواصفات