RabbitMQ / المتوسط: العمل المنسوخ وسلامة المحاولات وأدلة التشغيل / الدرس 11
المضيفات الافتراضية والصلاحيات وTLS
فصل اختيار النطاق والهوية والصلاحيات وثقة النقل عند مراجعة الوصول.
في هذه الصفحة
أهداف الدرس
- شرح نطاق vhost وصلاحيات configure وwrite وread.
- تشخيص المصادقة وTLS دون توسيع الوصول.
يحدد vhost نطاق موارد المراسلة
يجمع vhost المبادلات والصفوف والروابط والصلاحيات في نطاق أسماء منطقي. يشير اسم صف متساو في مضيفين إلى موردين مختلفين. يختار المضيف أثناء الاتصال، وما زال المستخدم المصادق يحتاج صلاحية له. ليس vhost وسيطاً فيزيائياً مخصصاً أو نطاق فشل مستقلًا أو ضمان عزل موارد تلقائياً؛ فقد تبقى السعة وحدود الثقة مشتركة. أدرج متطلبات البيئة والمستأجر في التصميم، ثم راجع كفاية الفصل المنطقي، بدلاً من اعتبار بادئة اسم أو تسمية مضيف بنية أمان كاملة.
منح عمليات على أسماء الموارد المقصودة
يميز تفويض RabbitMQ configure وwrite وread على الموارد وفق الخلفية والبروتوكول المختارين. ليست أنماط الصلاحيات مجرد تسميات واجهة. لا ينبغي أن يحصل ناشر لمبادل واحد تلقائياً على إعداد أو إدارة واسعين. قد تحتاج إعلانات البنية والروابط صلاحيات أخرى؛ فاربط عمليات العميل الفعلية بمرجع التحكم الرسمي. يختلف دور خدمة لا تبدأ إلا إذا استطاعت إنشاء كل صف عن خدمة تستخدم بنية مهيأة مسبقاً. راجع العمليات المسموحة والممنوعات المقصودة لكشف توسيع غير مقصود أثناء إصلاح حادث.
تختلف ثقة النقل عن سلطة التطبيق
يحمي TLS النقل ويتحقق من هوية الطرف وفق مادة الثقة وقواعد الاسم وإعداد العميل. تثبت المصادقة الهوية، ويقرر التفويض عمليات مواردها. لا يثبت نجاح TLS الوصول إلى vhost أو صف. لا تعالج خطأ شهادة بتعطيل التحقق، ولا تكشف كلمات المرور في عناوين اتصال تطبع بالسجلات. لتدوير الشهادة والاعتماد دورتان مرتبطتان ومستقلتان. قد تختار خدمة مدارة آليات مصادقة وقيود إدارة مختلفة؛ فراجع عقد المنتج الدقيق قبل نقل مثال ذاتي الإدارة إلى منصة أخرى.
حفظ هوية كاملة النطاق في التشخيص
يبين نموذج القيم المحلي أن lab-a/labels وlab-b/labels موردان مختلفان. ينبغي أن يتضمن التشخيص المضيف ونوع المورد، لا اسم الصف المختصر فقط. يسرد JSON دور ناشر اصطناعياً دون أسرار؛ وليس طلب API إدارة أو سياسة وسيط متحققة. تحتاج الأنماط الحقيقية تثبيتاً وتهريباً دقيقين لمطابقة الأسماء المقصودة، وقد تتضمن عملية البروتوكول عدة موارد. راجع الهوية المصادق عليها فعلاً، ولا تفترض أن اسم عرض التطبيق يساوي اسم المستخدم الذي فوضه الوسيط.
resource_a = ('lab-a', 'queue', 'labels')
resource_b = ('lab-b', 'queue', 'labels')
assert resource_a != resource_b
print(len({resource_a, resource_b}))
2
تبقى الأسماء المختصرة المتساوية موارد مختلفة بنطاقاتها.
{"principal":"lab-publisher","vhost":"lab-orders","intended_operation":"publish","exchange":"lab.events","administer_broker":false,"secret_material_in_record":false}
يسمي السلطة المقصودة دون ضبط نمط وسيط أو التعامل مع اعتماد.
إصلاح الطبقة المحددة فقط
تحتاج مهلة الاتصال وفشل TLS ورفض المصادقة ورفض المضيف وخطأ مورد القناة أدلة مختلفة. احفظ نقطة الاتصال والهوية والمضيف وفئة الخطأ الدقيقة بعد التنقيح قبل التغيير. قد تخفي منح عامة العرض وتخالف الدور المقصود. تحقق بعد تصحيح مصرح به من عملية مطلوبة وأخرى ممنوعة عمداً بسياق العميل الفعلي. لا يقرأ الدرس اعتماداً أو يتصل بوسيط أو يعدل صلاحية أو يمسح شبكة. تدعم المقارنة والجرد المراجعة فقط، ويبقى إنفاذ TLS والتفويض غير مختبر.
الأخطاء الشائعة وإصلاحها
نجاح المصادقة ورفض المضيف الافتراضي.
- لماذا يحدث؟
- الخلط بين تحقق الهوية وتفويض المضيف.
- كيف تصلحه؟
- راجع الهوية ومنح المضيف المحدود.
- كيف تتجنب تكراره؟
- احفظ اختيار المضيف في عقد الاتصال.
إخفاء اختلاف الشهادة بتعطيل التحقق.
- لماذا يحدث؟
- إزالة الحد بدلاً من تصحيح الهوية.
- كيف تصلحه؟
- صحح الأسماء أو الشهادة أو الثقة بالمسار المعتمد.
- كيف تتجنب تكراره؟
- اختبر الثقة وتغطية الاسم عند التدوير.
منح الناشر إعداداً عاماً لعلاج خطأ نشر.
- لماذا يحدث؟
- عدم تحديد عملية المورد الفاشلة.
- كيف تصلحه؟
- اربط العملية وطبق السياسة المحددة.
- كيف تتجنب تكراره؟
- تحقق من المنع بعد الإصلاح.
اختبر فهمك
1. هل يضمن vhost سعة فيزيائية ونطاق فشل مستقلين؟
اعرض الحل المشروح
لا؛ يوفر نطاق موارد وصلاحيات منطقياً وقد تشترك العقد والسعة. راجع البنية والحصص والثقة منفصلة. لا يثبت فصل الأسماء تعافياً مستقلاً أو حماية من جار مزعج أو عزلاً عن كل إدارة مميزة.
2. لماذا يشمل التحقق عملية ممنوعة عمداً؟
اعرض الحل المشروح
قد ينجح الإيجابي بمنح أوسع من المطلوب. يساعد السلبي في إثبات حفظ الدور. اختر المورد والعملية وفق الخلفية، ولا تختبر الإنفاذ الحقيقي إلا في بيئة تجريبية مصرح بها وهويات اصطناعية.
أهم ما تعلمته
- النطاق والمصادقة والتفويض وثقة TLS عقود منفصلة.
- استخدم الهوية والمورد الدقيقين في كل تشخيص.