RBAC وحسابات الخدمة
تقييد الوصول إلى العنقود.
RBAC وحسابات الخدمة درس مجاني في Cyber Security Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cyber Security Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
يتحكم RBAC في كل شيء
يحدد التحكم في الوصول القائم على الأدوار (RBAC) الهويات التي يمكنها تنفيذ إجراءات معينة على موارد محددة داخل العنقود. ويُصرّح بكل استدعاء لواجهة API بالاستناد إلى RBAC. ويُعد سوء إعداد RBAC السبب الرئيسي لتصعيد الامتيازات داخل العنقود.
- الجهات: المستخدمون والمجموعات وحسابات الخدمة.
- تربط الأدوار الأفعال بالموارد.
- تصل عمليات الربط الجهات بالأدوار.
مقارنة Role وClusterRole
يوجد نطاقان.
- Role + RoleBinding: صلاحيات على مستوى مساحة الاسم.
- ClusterRole + ClusterRoleBinding: صلاحيات على مستوى العنقود بأكمله.
يمنح ربط ClusterRoleBinding بـ cluster-admin سيطرة كاملة. ويُعد منحه لحساب خدمة خطأً شائعًا وخطيرًا.
رموز حسابات الخدمة
يعمل كل pod باستخدام حساب خدمة، ويثبّت رمزه المميز افتراضيًا. ويُعد هذا الرمز بيانات اعتماد لحاملها تنقل صلاحيات RBAC الخاصة بالحساب. فإذا اختُرق pod، اختُرق الرمز أيضًا.
تُصدر العناقيد الحديثة رموزًا مميزة مُسقطة قصيرة الأجل ومقيّدة بجمهور محدد، لكن رموز الأسرار القديمة طويلة الأجل ما تزال موجودة.
# Inspect which service account a pod uses
kubectl get pod web -o jsonpath='{.spec.serviceAccountName}'حصر صلاحياتك
بعد الحصول على رمز مميز، تتمثل الخطوة الأولى في معرفة ما يمكنه فعله. توفر Kubernetes واجهة API للتحقق الذاتي.
# What can this token do?
kubectl auth can-i --list
# Specific checks
kubectl auth can-i create pods
kubectl auth can-i create clusterrolebindingsتركيبات الصلاحيات الخطرة
تُعد بعض الأفعال أدوات أساسية للتصعيد حتى من دون cluster-admin.
create pods: جدولة pod ذي امتيازات أو يستخدم hostPath للخروج من الحاوية.create pods/exec: تشغيل أوامر في pods موجودة.get/list secrets: قراءة بيانات الاعتماد على مستوى العنقود.create rolebindings/clusterrolebindings: ربط نفسك بصلاحيات المسؤول.- تتيح أفعال
escalate/bindمنح صلاحيات لا تملكها. - impersonate: التصرّف بصفة جهة أخرى أكثر امتيازًا.
التصعيد عبر إنشاء pod
إذا كان حساب خدمة قادرًا على إنشاء pods، فغالبًا ما يمكنه السيطرة على العقدة. يجدول المهاجم pod يثبّت نظام ملفات المضيف أو يعمل بامتيازات، ثم يقرأ بيانات اعتماد العقدة أو يخرج من الحاوية.
# Pod spec snippet that mounts the host root
# volumes: hostPath path: / ; container mounts it at /host
kubectl apply -f evil-pod.yaml
kubectl exec -it evil -- chroot /host bashالتصعيد عبر الربط
إذا كنت تستطيع إنشاء rolebindings (بما فيها clusterrolebindings)، فقد تتمكن من ربط حساب الخدمة الخاص بك مباشرةً بـ cluster-admin. تحمي Kubernetes ذلك باستخدام فعلي bind/escalate، لكن الأدوار سيئة الإعداد تسمح به أحيانًا.
# Bind a service account to cluster-admin (if permitted)
kubectl create clusterrolebinding pwn \
--clusterrole=cluster-admin \
--serviceaccount=default:webإساءة استخدام انتحال الهوية
يتيح الفعل impersonate لجهة ما التصرّف بصفة أي مستخدم أو مجموعة أو حساب خدمة. وتمتلك الجهة ذات صلاحيات الانتحال الواسعة فعليًا كل صلاحيات العنقود.
# Act as a privileged user via impersonation
kubectl get secrets --as=admin-user --as-group=system:mastersتدقيق RBAC
ينبغي للمدافعين مراجعة RBAC باستمرار بحثًا عن المنح الخطرة.
- اعثر على الجهات المرتبطة بـ cluster-admin.
- ضع علامة على الأفعال أو الموارد ذات أحرف البدل (
*). - اكتشف منح secret-read وpod-create للحسابات غير الإدارية.
# Tools to audit RBAC
kubectl-who-can create pods
rbac-tool analysis
rakkess --as=system:serviceaccount:default:webتقوية حسابات الخدمة
طبّق مبدأ أقل قدر من الصلاحيات على الهويات.
- عيّن
automountServiceAccountToken: falseعندما لا يحتاج pod إلى الوصول إلى API. - امنح كل حمل عمل حساب خدمة مخصصًا ذا نطاق صلاحيات محدود قدر الإمكان.
- تجنب حساب الخدمة
defaultلأحمال العمل الفعلية. - استخدم رموزًا مميزة مُسقطة قصيرة الأجل مع جماهير محددة؛ ودوّرها واربطها.
- لا تربط أحمال العمل أبدًا بـ cluster-admin.
اختبار RBAC بطريقة أخلاقية
عند تقييم RBAC، فضّل عمليات التحقق غير المدمرة (auth can-i وdry-run) على إنشاء عمليات ربط بـ cluster-admin فعليًا في بيئة الإنتاج. وإذا كان لا بد من إثبات التصعيد، فاحصره في مساحة أسماء اختبارية وأزل أي عمليات ربط أو pods أنشأتها.
أبلغ عن الأدوار وعمليات الربط الدقيقة التي أتاحت التصعيد، حتى يمكن تشديدها.
تحقق سريع
تأكد من فهمك لـ RBAC.
مراجعة
تعلمت كيف تحكم RBAC وحسابات الخدمة الوصول إلى العنقود وتهددانه.
- يربط RBAC الجهات بالأفعال على الموارد؛ ويمثل cluster-admin سيطرة كاملة.
- تثبّت pods رموز حسابات الخدمة؛ وتكشف
auth can-iنطاق صلاحياتها. - تُعد create-pods والربط وsecret-read وimpersonate أدوات أساسية للتصعيد.
- تؤدي الحسابات ذات أقل قدر من الصلاحيات وتعطيل التثبيت التلقائي إلى تقوية العنقود.
التالي: أمان pods وسياسات الشبكة.
تعلم Cyber Security Academy مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 76
- الدروس
- 303
الأسئلة الشائعة
هل درس «RBAC وحسابات الخدمة» مجاني؟
نعم — نص درس «RBAC وحسابات الخدمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cyber Security Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Cyber Security Academy 4 دروس في المجموع.
ماذا ستتعلم في «RBAC وحسابات الخدمة»؟
تقييد الوصول إلى العنقود. تتمرن على Cyber Security Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cyber Security Academy؟
لا تُشترط خبرة سابقة. Cyber Security Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «RBAC وحسابات الخدمة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cyber Security Academy هذا؟
نعم. كل درس في Cyber Security Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- نموذج تهديدات Kubernetes
- RBAC وحسابات الخدمة
- أمان Pods وسياسات الشبكة
- تأمين سلسلة التوريد والأسرار