نمط Gatekeeper

Azure Dedicated Host

حماية التطبيقات والخدمات باستخدام مثيل مضيف مخصص للتوسط في الطلبات بين العملاء والتطبيق أو الخدمة. يتحقق الوسيط من صحة الطلبات ويطهرها، ويمكنه توفير طبقة إضافية من الأمان والحد من سطح هجوم النظام.

السياق والمشكلة

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

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

حل

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

نظرة عامة عالية المستوى على هذا النمط

يمكن استخدام نمط حارس البوابة لحماية التخزين، أو يمكن استخدامه كواجهة أكثر شمولا لحماية جميع وظائف التطبيق. العوامل المهمة هي:

  • التحقق المتحكم فيه. يتحقق حارس البوابة من صحة جميع الطلبات، ويرفض الطلبات التي لا تفي بمتطلبات التحقق من الصحة.
  • محدودية المخاطر والتعرض. لا يستطيع Gatekeeper الوصول إلى معلومات تسجيل الدخول أو المفاتيح التي يستخدمها المضيف الموثوق به للوصول إلى التخزين والخدمات. إذا تم اختراق Gatekeeper، فلن يتمكن المهاجم من الوصول إلى معلومات تسجيل الدخول أو المفاتيح هذه.
  • الأمان المناسب. يعمل Gatekeeper في وضع امتياز محدود، بينما يعمل باقي التطبيق في وضع الثقة الكامل المطلوب للوصول إلى التخزين والخدمات. إذا تم اختراق Gatekeeper، فلن يتمكن من الوصول مباشرة إلى خدمات التطبيق أو البيانات.

يعمل هذا النمط كجدار حماية في تضاريس شبكة نموذجية. يسمح لبرنامج حماية بفحص الطلبات واتخاذ قرار بشأن تمرير الطلب إلى المضيف الموثوق به الذي يؤدي المهام المطلوبة. يتطلب هذا القرار عادةً من Gatekeeper التحقق من صحة محتوى الطلب وتعقيمه قبل تمريره إلى المضيف الموثوق به.

المسائل والاعتبارات

راع النقاط التالية عند تحديد كيفية تنفيذ هذا النمط:

  • تأكد من أن المضيفين الموثوق بهم يعرضون نقاط النهاية الداخلية أو المحمية فقط، التي يستخدمها حارس البوابة فقط. يجب ألا يكشف المضيفون الموثوق بهم عن أي نقاط نهاية أو واجهات خارجية.
  • يجب تشغيل حارس البوابة في وضع امتياز محدود، والذي يتطلب عادة تشغيل حارس البوابة والمضيف الموثوق به في خدمات مستضافة منفصلة أو أجهزة ظاهرية.
  • يجب ألا يقوم حارس البوابة بأي معالجة تتعلق بالتطبيق أو الخدمات أو الوصول إلى أي بيانات. وتتمثل وظيفتها فقط في التحقق من صحة الطلبات وتعقيمها. قد يحتاج المضيفون الموثوق بهم إلى إجراء التحقق من صحة الطلب الإضافي، ولكن يجب على حارس البوابة إجراء التحقق الأساسي.
  • استخدم قناة اتصال آمنة (HTTPS أو SSL أو TLS) بين حارس البوابة والمضيفين الموثوق بهم أو المهام حيثما أمكن ذلك. ومع ذلك، فإن بعض بيئات الاستضافة لا تدعم HTTPS في نقاط النهاية الداخلية.
  • من المحتمل أن تؤثر إضافة الطبقة الإضافية لتنفيذ نمط حارس البوابة على الأداء بسبب المعالجة الإضافية والاتصال بالشبكة المطلوبة.
  • يمكن أن يكون مثيل Gatekeeper نقطة واحدة من الفشل. لتقليل تأثير الفشل، ضع في اعتبارك نشر مثيلات زائدة عن الحاجة واستخدام آلية التحجيم التلقائي لضمان القدرة على الحفاظ على التوفر.

موعد استخدام النمط

هذا النمط مفيد للتطبيقات التي:

  • معالجة المعلومات الحساسة
  • كشف الخدمات التي تتطلب درجة عالية من الحماية من الهجمات الضارة
  • تنفيذ العمليات الحرجة للمهمة التي لا يمكن تعطيلها.
  • طلب إجراء التحقق من صحة الطلب بشكل منفصل عن المهام الرئيسية، أو لمركزية هذا التحقق لتبسيط الصيانة والإدارة

تصميم حمل العمل

يجب على المهندس المعماري تقييم كيفية استخدام نمط Gatekeeper في تصميم حمل العمل الخاص بهم لمعالجة الأهداف والمبادئ التي تغطيها ركائز Azure Well-Architected Framework. على سبيل المثال:

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

- SE:06 عناصر التحكم في الشبكة
- SE:10 المراقبة والكشف عن التهديدات
تساعد كفاءة الأداء حمل العمل الخاص بك على تلبية الطلبات بكفاءة من خلال التحسينات في التحجيم والبيانات والرمز. هذا النمط هو كيفية تنفيذ التقييد على مستوى البوابة بدلا من تنفيذ عمليات التحقق من المعدل على مستوى العقدة. تنسيق حالة المعدل بين جميع العقد ليس أداء بطبيعته.

- PE:03 تحديد الخدمات

كما هو الحال مع أي قرار تصميم، ضع في اعتبارك أي مفاضلات ضد أهداف الركائز الأخرى التي يمكن إدخالها مع هذا النمط.

مثال

في سيناريو مستضاف على السحابة، يمكن تنفيذ هذا النمط عن طريق فصل دور حارس البوابة أو الجهاز الظاهري، عن الأدوار والخدمات الموثوق بها في التطبيق. يمكن للتطبيق استخدام نقطة نهاية داخلية أو قائمة انتظار أو تخزين كآلية اتصال وسيطة. يوضح الشكل استخدام نقطة نهاية داخلية.

مثال على النمط الذي يستخدم أدوار الويب والعاملين في الخدمات السحابية

قد يكون نمط Valet Key ذا صلة أيضاً عند تنفيذ نمط Gatekeeper. عند الاتصال بين Gatekeeper والأدوار الموثوقة، من الممارسات الجيدة تحسين الأمان باستخدام المفاتيح أو الرموز المميزة التي تحد من أذونات الوصول إلى الموارد. يصف النمط استخدام رمز مميز أو مفتاح يوفر للعملاء وصولا مقيدا ومباشرا إلى مورد أو خدمة معينة.