Grafana / المتقدم: الوصول والاعتماديات والأدلة / الدرس 14
أمن مصادر البيانات وحدود الأسرار
راجع موضع الاتصال وتفويض المخزن والإعداد الحامل للأسرار والنسخ التشخيصية، دون اعتبار لوحة عاملة إثباتاً لأقل امتياز.
في هذه الصفحة
أهداف الدرس
- حدد المكوّن الذي يتصل بالمخزن.
- افصل هوية المشاهد من اعتماد المصدر.
- قلل الصادرات ومخرجات التشخيص الحاملة للأسرار.
يفسر العنوان من موضع التنفيذ
يجب فهم عنوان المخزن الخلفي من المكوّن الذي يرسل الطلب فعلياً. قد يصل المتصفح إلى اسم لا يصل إليه خادم Grafana أو خلفية الإضافة، وتشير localhost إلى بيئة التنفيذ المعنية، لا تلقائياً إلى حاسوب المتعلم. يعتمد المسار المدعوم على الإضافة والإعداد. راجع التوجيه وثقة TLS وسلوك الوسيط والمصادقة عبر البيئة المعتمدة، لا بفحص عشوائي. قد يوجه عنوان مصدر أيضاً وصولاً شبكياً من الخادم، ولذلك تحتاج سلطة الإعداد والوجهات المسموحة إلى ملكية مقصودة وواضحة.
يحدد اعتماد المصدر المشترك حداً آخر للوصول
ليس دور المستخدم في Grafana بالضرورة هوية الاعتماد الذي تستخدمه إضافة للوصول إلى المخزن. تدعم تكاملات تمرير هوية مراجعاً أو آليات خاصة بمزود، وتستخدم أخرى اعتماداً مشتركاً مهيأ. لا تفترض أن متغيرات اللوحة تقيد هذا الاعتماد بمسار أو مستأجر واحد. افرض حد البيانات المطلوب عبر ضوابط المخزن وGrafana المدعومة، مع بيان قدرات الطبعة والإضافة صراحة. يوضح اتصال أو عرض ناجح المسار المختبر فقط؛ ولا يثبت منع الاستعلام الأوسع أو امتلاك المقيّم الخلفي وصولاً مكافئاً.
حقول الأسرار ليست محتوى لوحة عادياً
قد يتضمن إعداد المصدر خيارات عادية وأخرى سرية خاصة بالإضافة. يستخدم JSON قيمة ترويسة افتراضية في secureJsonData واسمها في jsonData، بافتراض تكامل متوافق. ليس رمزاً فعلياً أو طلب تهيئة كاملاً. قد تشير القراءة لوجود السر دون إعادته، لكن التخزين والتشفير والتدوير وسلوك الإضافة تحتاج توثيق النسخة. لا يلغي اسم secure مراجعة النقل والسجلات والوصول والنسخ الاحتياطي.
{"jsonData":{"httpHeaderName1":"X-Lab-Context"},"secureJsonData":{"httpHeaderValue1":"synthetic-lab-only"}}
القيمة افتراضية، ويفترض المقطع حقول إضافة متوافقة. لا يُنفذ ولا يثبت تخزين سر أو تشفيره أو مصادقة مخزن.
قلل إعداد التشخيص قبل مشاركته
يحفظ مثال JSON المحلي الاسم وUID والنوع الافتراضية فقط لسجل مراجعة. يحذف العنوان والإعداد السري، ولا يفترض حساسية مفتاح كلمة مرور واحد فقط. ليس منقحاً كاملاً لـGrafana أو الإضافات أو التعشيش العشوائي. قد يكشف نص الاستعلام والترويسة والعنوان والخطأ والصف أسراراً أو سياقاً شخصياً خارج الحقل المتوقع. اضبط الوصول والاحتفاظ بالتشخيص، واعتمد الضروري. لا يثبت نجاح العينة اتباع كل مسار تصدير للسياسة.
import json
record = json.loads('{"name":"Transit Lab","uid":"transit-lab-prom","type":"prometheus","url":"https://metrics.invalid","secureJsonData":{"httpHeaderValue1":"synthetic-lab-only"}}')
allowed = {"name", "uid", "type"}
review_record = {key:value for key,value in record.items() if key in allowed}
assert "secureJsonData" not in review_record and "url" not in review_record
print(sorted(review_record))
['name', 'type', 'uid']
تُعالج بيانات JSON افتراضية ثابتة فقط. يتحقق الفحص من المفاتيح الثلاثة ولا يفحص أو ينقح أو يصدر أو يؤمن إعداداً فعلياً.
تحقق من الحدود عبر المالك المخول
يجب أن تغطي مراجعة فعلية الاستعلامات المسموحة والمرفوضة، وهوية التنفيذ، وثقة الوجهة، ودورة الاعتماد، وتسرب التشخيص، وصلاحيات الطبعة المدعومة. لا تختبر الوصول بتخمين نقاط أو اكتشاف أسرار أو توسيع امتيازات من مثال تعليمي. يحلل هذا الدرس JSON افتراضياً فقط، ولا ينفذ شبكة أو فحص حساب أو مسحاً أمنياً أو مصادقة أو إعداد مصدر أو عملية سر. لا ينشئ اعتماداً ولا يتحقق من خاصية تشفير أو عزل. احفظ الفرق بين التصميم المقصود والدليل المختبر، حتى لا تصبح لوحة تعمل حداً أمنياً متحققاً بالافتراض.
الأخطاء الشائعة وإصلاحها
يفترض أن localhost تعني جهاز المتصفح.
- لماذا يحدث؟
- لم يحدد موضع التنفيذ.
- كيف تصلحه؟
- راجع مسار طلب الإضافة الفعلي.
- كيف تتجنب تكراره؟
- وثق ملكية الشبكة ونطاق الوجهة.
يسمى متغير مسار مخفي عزلاً للمخزن.
- لماذا يحدث؟
- قد يستعلم الاعتماد المشترك نطاقاً أوسع.
- كيف تصلحه؟
- افرض التفويض الموثوق في المصدر والمخزن.
- كيف تتجنب تكراره؟
- اختبر الرفض بخطة معزولة مخولة.
يتضمن تصدير تشخيص إعداداً سرياً.
- لماذا يحدث؟
- عومل الإعداد كمحتوى قابل للمشاركة.
- كيف تصلحه؟
- قلل الضروري قبل مشاركة معتمدة.
- كيف تتجنب تكراره؟
- راجع التعشيش والعنوان والخطأ والرد.
اختبر فهمك
1. هل يثبت مثال secureJsonData أن تثبيتاً حقيقياً يشفر الأسرار ويدورها بصورة صحيحة؟
اعرض الحل المشروح
لا. يوضح مفهوم إعداد بافتراض إضافة. تحتاج آليات التخزين وإدارة المفاتيح والوصول والنقل والنسخ والتدوير النسخة المختارة والتحقق المخول. ليس JSON الافتراضي دليلاً على دورة حياة سر تشغيلية.
2. لماذا يجب مراجعة نطاق بيانات المخزن لمستخدم لوحة قراءة فقط مستقلاً عن وصول المجلد؟
اعرض الحل المشروح
قد يستخدم التكامل اعتماداً مشتركاً ويتيح مسارات استعلام تتجاوز اللوحة المحفوظة. تضبط صلاحية المجلد مورد Grafana، ويضبط تفويض المخزن البيانات. راجع صلاحيات المصدر الخاصة بالطبعة وسياسة المخزن معاً، بدلاً من الاعتماد على مرشحات الواجهة أو المتغيرات المخفية.
أهم ما تعلمته
- موضع الشبكة وهوية الاعتماد خاصيتان صريحتان.
- تحتاج الإعدادات السرية دورة ونسخاً مضبوطة.
- لا يثبت فحص JSON أمن نشر فعلي.