امنع تسرّب الأسرار بإبقاء القيم خارج تعريفات Compose القابلة للمشاركة، وتعامل مع كل نسخة احتياطية أو تصدير تشخيصي على أنه حساس إلى أن يجتاز فحص المحتوى.
يحتاج Home Assistant إلى بيانات اعتماد أثناء التشغيل، لذلك لا يمكن لأي تخطيط محلي أن يجعلها غير مرئية أمام مسؤول يتمتع بوصول كامل إلى المضيف. الهدف العملي أضيق نطاقًا: إيقاف عمليات الالتزام العرضية، ورفع الملفات إلى خدمات الدعم، ونسخ النسخ الاحتياطية على نطاق واسع، ومنع وصول الحاويات غير الضروري. احصر مواضع دخول كل قيمة إلى المكدس، واستبدل القيم الحرفية بمصدر أسرار مضبوط، واختبر الملفات المُصدّرة من دون طباعة الأسرار نفسها.
حدّد كل موضع يمكن أن يتسرّب منه سر
أدرج رموز API، وكلمات مرور قواعد البيانات، وبيانات اعتماد MQTT، وعناوين URL لخطافات الويب، ومفاتيح التشفير، والشهادات الخاصة، ومفاتيح الاسترداد. ولكل عنصر، سجّل المستهلك أثناء التشغيل، ومسار التخزين، ومالك الملف، وإدراجه في النسخ الاحتياطية، وحالة وجوده في المستودع، وظهوره في السجلات، وطريقة تدويره. لا تنسخ القيم إلى قائمة الحصر.
تنظّم ملفات الأسرار القيم، لكنها تظل نصًا عاديًا بالنسبة إلى أي حساب يستطيع قراءة المضيف. ويعني حدّ الوصول إلى النص العادي أن الفصل يقلل الإفصاح العرضي أساسًا، ولا يحبط مهاجمًا يتمتع بامتيازات كاملة.
يُعدّ الأمر إخفاقًا إذا وُجدت قيمة حرفية في YAML الخاص بـ Compose، أو ملف بيئة متتبَّع، أو مجلد إعدادات قابل للقراءة على نطاق واسع، أو ملف مُصدَّر مجهول المحتوى. أوقف المشاركة وعمليات الدفع إلى المستودع حتى يصبح لكل مسار تعرّض مالكٌ وتصحيحٌ محدد.
افصل أسرار التشغيل عن تعريفات النشر
استبدل القيم الحرفية في Compose بأسرار مستندة إلى ملفات مع صلاحيات محدودة، أو بمصدر أسرار آخر يدعمه النشر. امنح كل خدمة القيم التي تستهلكها فقط، وثبّتها للقراءة فقط حيثما أمكن، وقيّد أذونات المضيف بهوية التشغيل والمسؤولين.
قد تظهر قيم البيئة عبر الفحص أو سياق العمليات أو السجلات، بينما يمكن أن يؤدي تثبيت الأسرار المستند إلى الملفات إلى تضييق نطاق الحاويات التي تتلقى بيانات الاعتماد. ولا تزال ملفات الأسرار المحلية تتطلب ضبط الأذونات.
تحقّق باستخدام عناصر نائبة أولًا، وافحص إعداد Compose المُصيَّر بحثًا عن القيم الحرفية غير المقصودة، ثم شغّل خدمة واحدة وتأكد من قدرتها على قراءة السر المخصص لها فقط. تراجع إذا تسبب التغيير في جعل التطبيق يطبع القيم أو تطلّب وصولًا متساهلًا إلى المجلدات.
تحكّم في محتوى النسخ الاحتياطية وحزم الدعم
صنّف النسخ الاحتياطية على أنها تحتوي على بيانات اعتماد ما لم يُثبت خلاف ذلك. شفّر النسخ التي تغادر حدود التخزين الموثوق، وخزّن مفاتيح الاسترداد بشكل منفصل، وقيّد مدة الاحتفاظ والوصول، ولا ترفق أرشيف إعدادات كاملًا عندما يكفي مقتطف سجل مُنقّح للإجابة عن سؤال الدعم.
استخدم سير عمل حماية الإعدادات للحفاظ على قابلية الاسترداد مع فصل التخزين الآمن عن مواد النشر القابلة للمشاركة.
قبل الإصدار، افحص أسماء الملفات والنص المستخرج بحثًا عن أسماء مفاتيح معروفة، وبوادئ الرموز، وعناوين URL الخاصة، وعناوين البريد الإلكتروني، والشهادات، والقيم التجزئية المطابقة تمامًا لعلامات الاختبار المضبوطة. ويُعدّ اجتياز الفحص النظيف بوابةً للإصدار، وليس دليلًا على استحالة وجود تنسيق سر مجهول.
دوّر الأسرار المكشوفة وأثبت مسار الوقاية
إذا دخلت قيمة قابلة للاستخدام إلى مستودع أو تذكرة أو محادثة أو رابط عام أو نسخة احتياطية غير موثوقة، فألغها أو دوّرها أولًا؛ فحذف النسخة الظاهرة لا يبطل النسخ أو السجل. سجّل الخدمة المتأثرة ووقت التدوير من دون الاحتفاظ بالقيمة القديمة.
أنشئ سرًا تجريبيًا غير ضار، وانشره عبر المسار الجديد، وأنشئ العرض المعتاد لـ Compose والنسخة الاحتياطية وحزمة التشخيص، ثم ابحث في هذه الملفات. يجب أن يتلقى وقت التشغيل السر التجريبي، بينما لا تكشف الملفات القابلة للمشاركة عنه خارج حدود النسخة الاحتياطية المحمية عمدًا.
توقّف عندما تخلو تعريفات النشر والمستودعات من الأسرار الحقيقية، وتملك النسخ الاحتياطية المحمية مسار استرداد منفصلًا، وتجتاز فحوص الملفات، وتُدوَّر بيانات الاعتماد المكشوفة. صعّد الأمر عندما يسجّل تكامل تابع لجهة خارجية قيم الأسرار أو يتعذر عليه استهلاك مصدر أسرار محدود من دون وصول أوسع إلى المضيف.
الدعم والنصائح
المزيد للقراءة

كيفية تحسين اتصالات قاعدة بيانات Immich للحاويات المتزامنة
لا ترفع max_connections أولًا. قِس جلسات Immich، واجمع إجمالي طلبات كل حاوية، وحافظ على هامش احتياطي للمسؤول، واضبط الاختناق المثبت فقط.

كيفية منع تكرار المهام أو عمليات الاستيراد في Immich
افصل المهام المتكررة عن الأصول المكررة. استخدم مسارًا أساسيًا واحدًا للإدخال، وتحكّم في عمليات إعادة المحاولة وتغييرات المسارات، ثم اختبر إعادة الإدخال على مجموعة...

كيفية إصلاح Immich بعد امتلاء وحدة تخزين قاعدة البيانات الخاصة به
لا تحذف سجلات WAL الخاصة بـ PostgreSQL لتحرير المساحة مطلقًا. أوقف عمليات الكتابة في Immich، وحافظ على حالة قاعدة البيانات، وأضف سعة تخزين آمنة،...

