Elasticsearch / المتقدم: استرجاع صامد وقابل للتعافي / الدرس 15
TLS ومفاتيح الواجهة وحدود الوصول
حدد حساب بحث ذا صلاحيات ضيقة، وميّز الثقة بقناة النقل والمصادقة والتفويض.
في هذه الصفحة
أهداف الدرس
- قيد بيانات الاعتماد بأفعال ووجهات تشغيل صريحة.
- اشرح تقاطع الأدوار وحدود شروط التصفية وتشكيل حقول المصدر.
الثقة والهوية والإذن فحوص مختلفة
يتحقق TLS من قناة الاتصال ويحميها عندما يُضبط على النحو الصحيح. تحدد المصادقة هوية الحساب، ويقرر التفويض الأفعال والبيانات التي يستطيع ذلك الحساب الوصول إليها. لا يُصلح خطأ الثقة بالشهادة بتوسيع صلاحيات الفهرس؛ ولا يُصلح منع إجراء بتعطيل التحقق من الشهادة. سجل اسم الوجهة المقصود وسلسلة الشهادات الموثوقة وهوية التشغيل كحقائق منفصلة. وتختلف إجراءات الإعداد بين نماذج نشر Elastic؛ فافحص البيئة الفعلية، ولا تفترض أن كل حزمة لها التهيئة الآلية نفسها. لا توفر الدورة بيانات اعتماد ولا تتصل بعنوان خدمة.
افصل البحث والإدخال والإدارة
تحتاج خدمة البحث في فهرس عام عادة إلى قراءة هدف منطقي مضبوط، لا إلى إنشاء فهارس أو إدارة خطوط معالجة بيانات أو حذف لقطات. وللإدخال مجموعة أفعال مختلفة، ولإدارة النشر هوية أخرى. يمنح مقطع الدور أدناه قراءة اسم بديل خيالي هو museum-search فقط. يجب مراجعة دلالات صلاحيات الاسم البديل والفهرس المادي لمسار الوصول الفعلي. هذا اقتراح سياسة، وليس دوراً أنشئ. احفظ اختبارات الأفعال الممنوعة مع الاستدعاءات المسموحة، حتى يتحقق الفريق من أن نجاح البحث لم يمنح عرضياً سطح صيانة واسعاً.
{"cluster":[],"indices":[{"names":["museum-search"],"privileges":["read"],"allow_restricted_indices":false}]}
هذا جزء وصف دور للمراجعة. لم يُرسل إلى واجهة الأدوار، ولا يتضمن سراً.
مفتاح الواجهة سر مدار بسلطة محدودة
يمكن لطلب إنشاء مفتاح API تضمين أوصاف أدوار ووقت انتهاء. تتقيد السلطة الفعلية بالتقاطع الموثق مع صلاحيات المنشئ، لا بنص الدور المطلوب وحده. وقد يؤدي حذف الأوصاف إلى حفظ مجموعة أوسع من صلاحيات المنشئ عند الإنشاء؛ فاختر النطاق عمداً. قد تكون المفاتيح الافتراضية بلا انتهاء إذا لم تحدد مدة. ومثال اليوم الواحد قيمة للسيناريو، لا سياسة تدوير عامة. يصف الجسم مفتاح قراءة اصطناعياً من دون إنشائه. لا تضع بيانات الاعتماد المعادة في شيفرة المتصفح أو ملفات الدورة أو السجلات أو أدلة الدعم العامة.
{"name":"museum-search-lab","expiration":"1d","role_descriptors":{"catalog_reader":{"cluster":[],"indices":[{"names":["museum-search"],"privileges":["read"]}]}}}
هذا جسم توضيحي لطلب مفتاح API فقط. لم يُولد مفتاح أو يخزن أو يعرض، ويجب أن يملك المنشئ سلطة إدارة مفاتيح معتمدة.
شرط الواجهة ليس حداً أمنياً
يمكن حذف شرط تطبيق مثل department=public إذا كان مستدعٍ غير موثوق يتحكم في DSL اعتباطياً. كذلك تغير _source filtering شكل الرد، ولا تمثل أمناً على مستوى الحقل. افرض السياسة الإلزامية في طبقة تطبيق موثوقة وبضوابط أمنية مدعومة. ولأمن المستندات والحقول حدود ميزات واشتراك يجب التحقق منها للعرض المحدد. كما أن للاسم البديل المرشح قيوداً موثقة، فلا تعتبره آلية تفويض عامة. راجع كل وجهة متاحة، بما فيها جلب المستند المباشر والتجميعات وأسماء الفهارس البديلة، مقابل حد البيانات المقصود.
تشمل دورة السر الأدلة والتعافي
حدد ملكية تخزين السر وتدويره وإلغاءه والاستجابة للحوادث وكيف يعيد التطبيق تحميله. قد يجعل السر الملغى العملاء يعيدون الطلب بلا نهاية إذا لم تصنّف الإخفاقات وتُعرض بوضوح. احتفظ بمعرّفات مفاتيح محجوبة عند الحاجة، لا بقيم الأسرار. اختبر بحثاً مسموحاً، وكتابة وإدارة ووصولاً إلى أهداف أخرى يجب منعها، في مختبر اصطناعي مستقل ومصرح به. تحقق مستقلاً من ترخيص المصدر وشروط التوزيعة وميزات الاشتراك: فخيار AGPL لأجزاء مصدر مؤهلة لا يعني أن كل ميزة ثنائية أو خدمة مدارة تحت Apache أو مجانية. لا ينشئ الدرس حساباً أو مفتاحاً أو دوراً أو إعداد TLS، ولا يدعي اختبار أمن على عنقود.
الأخطاء الشائعة وإصلاحها
security_exception
- لماذا يحدث؟
- فشلت المصادقة، أو يفتقد الحساب المصادق عليه صلاحية الإجراء المطلوب.
- كيف تصلحه؟
- احفظ حالة HTTP والسبب التفصيلي، ثم افحص الهوية والنطاق المقصود.
- كيف تتجنب تكراره؟
- تحقق من صلاحيات التشغيل بحالات سماح ومنع ضيقة.
يُعطل التحقق من الشهادة حتى يعمل الطلب
- لماذا يحدث؟
- تُجاوز إخفاق الثقة في النقل بدلاً من إصلاحه.
- كيف تصلحه؟
- أصلح اسم الوجهة المعتمد وسلسلة الثقة.
- كيف تتجنب تكراره؟
- احفظ الشهادات الموثوقة وهوية الوجهة في إعدادات النشر.
يستطيع مفتاح البحث إجراء صيانة غير مقصودة
- لماذا يحدث؟
- ورثت بيانات الاعتماد سلطة أوسع من اللازم أو مُنحت إياها.
- كيف تصلحه؟
- راجع الأوصاف وتقاطع صلاحيات المنشئ ودليل منع الأفعال الفعلي.
- كيف تتجنب تكراره؟
- افصل هويات البحث أثناء التشغيل عن الإدخال والإدارة.
اختبر فهمك
1. هل يمنع _source:["title"] الحساب من قراءة حقول أخرى بطلب مختلف؟
اعرض الحل المشروح
لا. إنه يشكل تلك الاستجابة فقط. افرض سياسة الوصول الفعلية للحقول والمستندات بضوابط مدعومة ومصرح بها وواجهة موثوقة. اختبر مسارات الجلب الأخرى، وتحقق من حدود الاشتراك قبل الاعتماد على ميزات أمن متخصصة.
2. لماذا قد يكون مفتاح API بلا أوصاف أدوار أوسع مما يُتوقع؟
اعرض الحل المشروح
قد يحفظ السلوك الموثق صلاحيات المستخدم المنشئ وقت الإنشاء. تقيد الأوصاف الصريحة النطاق من خلال التقاطع، لكنها لا تنشئ سلطة يفتقدها المنشئ. استخدم منشئاً مناسباً ودور تشغيل مراجعاً، ثم تحقق من منع الأفعال غير المطلوبة من دون كشف السر المولد.
أهم ما تعلمته
- تحتاج الثقة بالنقل والتفويض إلى أدلة مختلفة.
- ينبغي ألا تتيح بيانات اعتماد البحث إلا واجهة التشغيل التي خضعت للمراجعة.