التحكم في الوصول المستند إلى الأدوار (RBAC)
أدِر أذونات المستخدمين وحسابات الخدمة داخل عنقودك باستخدام أدوار RBAC وربطاتها
التحكم في الوصول المستند إلى الأدوار (RBAC) درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ما المقصود بـ RBAC في Kubernetes؟
مرحبًا! سنتعمق في هذا الدرس في التحكم في الوصول المستند إلى الأدوار (RBAC)، وهو إحدى ميزات الأمان المهمة في Kubernetes.
يساعدك RBAC على إدارة من يمكنه تنفيذ ماذا داخل الكتلة الخاصة بك. ويمكن تشبيهه بحارس موارد Kubernetes، إذ يضمن عدم تنفيذ إجراءات محددة إلا من قِبل المستخدمين والتطبيقات المصرح لهم.
لماذا يُعد RBAC ضروريًا؟
من دون RBAC، قد يتمكن أي شخص لديه وصول إلى الكتلة من تنفيذ أي إجراء، مما يؤدي إلى مخاطر أمنية أو أضرار عرضية.
- الأمان: يمنع الوصول والعمليات غير المصرح بها.
- الامتثال: يساعد على تلبية المتطلبات التنظيمية للتحكم في الوصول.
- أقل قدر من الامتيازات: يضمن حصول المستخدمين والتطبيقات على الصلاحيات التي يحتاجون إليها بالفعل فقط.
مفاهيم RBAC الأساسية
يعتمد RBAC في Kubernetes على بعض المكونات الأساسية:
- Subjects: تمثل «من» (المستخدمين وحسابات الخدمة والمجموعات).
- Roles: تمثل «ماذا» (مجموعة من الصلاحيات).
- RoleBindings: تمثل «كيف» (تربط Role بـ Subject).
- ClusterRoles وClusterRoleBindings: إصدارات على مستوى الكتلة من Roles وRoleBindings.
Subjects: المستخدمون وحسابات الخدمة
تحتاج Kubernetes إلى معرفة الجهة التي تطلب تنفيذ إجراء ما. وتُسمى هذه الجهات Subjects:
- المستخدمون: عادةً ما يكونون مسؤولين أو مطورين بشريين. لا تدير Kubernetes المستخدمين مباشرةً، بل تعتمد على المصادقة الخارجية.
- حسابات الخدمة: كائنات في Kubernetes تستخدمها التطبيقات أو العمليات التي تعمل داخل الـ pods. وهي ضرورية للتواصل بين الـ pod وخادم API.
تحديد الصلاحيات باستخدام Roles
يحدد Role مجموعة من الصلاحيات داخل namespace محدد. كما يحدد الإجراءات (الأفعال) التي يمكن تنفيذها على موارد معينة.
على سبيل المثال، قد يسمح Role بتنفيذ عمليتي «الحصول على» و«سرد» الـ pods في default namespace.
مثال على Role: قارئ الـ Pod
إليك تعريف YAML لـ Role باسم pod-reader. يمنح هذا Role صلاحية تنفيذ عمليات «get» و«list» و«watch» (المراقبة) على الـ pods.
لاحظ apiGroups: [""]، الذي يشير إلى مجموعة Kubernetes الأساسية لواجهة API.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]منح الصلاحيات باستخدام RoleBindings
يربط RoleBinding عنصر Role محددًا بواحد أو أكثر من Subjects (المستخدمين أو حسابات الخدمة أو المجموعات) داخل namespace محدد.
وهو الرابط الذي يعني: «يمكن لهذا المستخدم أو التطبيق تنفيذ ما يسمح به هذا Role في هذا الـ namespace».
مثال على RoleBinding: منح الوصول
يربط RoleBinding هذا Role pod-reader بحساب خدمة يُسمى my-app-sa في default namespace. والآن يمكن لـ my-app-sa قراءة الـ pods.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa # The service account getting permissions
namespace: default
roleRef:
kind: Role
name: pod-reader # The Role being granted
apiGroup: rbac.authorization.k8s.ioClusterRoles وClusterRoleBindings
أحيانًا تحتاج إلى صلاحيات تنطبق على الكتلة بأكملها، وليس على namespace واحد فقط. وهنا يأتي دور ClusterRoles وClusterRoleBindings.
- ClusterRole: يحدد الصلاحيات للموارد ذات النطاق العنقودي (مثل العقد ووحدات التخزين الدائمة)، أو للإجراءات التي تشمل جميع الـ namespaces (مثل «سرد جميع الـ pods»).
- ClusterRoleBinding: يربط ClusterRole بـ Subjects، مانحًا صلاحيات على مستوى الكتلة بأكملها.
اختبار سريع حول RBAC
يحتاج مطور إلى نشر تطبيقات جديدة في dev namespace فقط. ما موردا Kubernetes من موارد RBAC اللذان ستستخدمهما أساسًا لمنحه هذه الصلاحية المحددة؟
مراجعة: أساسيات RBAC
أحسنت! لقد تعلمت أساسيات RBAC في Kubernetes:
- يتحكم RBAC في الجهات التي يمكنها التفاعل مع موارد الكتلة.
- تحدد Roles الصلاحيات داخل namespace.
- تربط RoleBindings عناصر Roles بـ Subjects (المستخدمين وحسابات الخدمة).
- تتولى ClusterRoles وClusterRoleBindings إدارة الصلاحيات على مستوى الكتلة بأكملها.
يُعد إتقان RBAC أمرًا أساسيًا لتأمين بيئة Kubernetes الخاصة بك!
الأسئلة الشائعة
هل درس «التحكم في الوصول المستند إلى الأدوار (RBAC)» مجاني؟
نعم — نص درس «التحكم في الوصول المستند إلى الأدوار (RBAC)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «التحكم في الوصول المستند إلى الأدوار (RBAC)»؟
أدِر أذونات المستخدمين وحسابات الخدمة داخل عنقودك باستخدام أدوار RBAC وربطاتها تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «التحكم في الوصول المستند إلى الأدوار (RBAC)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التحكم في الوصول المستند إلى الأدوار (RBAC)
- سياسات الشبكة للعزل
- معايير أمان الوحدات
- حسابات الخدمة وهوية أحمال العمل