بنيت Kubernetes؟ جرب الآن أدوات RBAC الخمسة هذه لتدقيق الأذونات
نشرت: 2022-03-14Kubernetes RBAC هي طريقة ترخيص فعالة تستند إلى الأدوار تُستخدم لتوفير وصول دقيق إلى الموارد في مجموعة Kubernetes.
ومع ذلك ، إذا لم يتم استخدامه بشكل صحيح ، فقد يتسبب بسهولة في كارثة الامتثال. لهذا السبب نحتاج إلى أدوات RBAC للتدقيق وتحديد الأذونات الخطرة في Kubernetes.
في هذه المقالة ، سنناقش ماهية Kubernetes RBAC ، ولماذا من المهم تدقيق الأذونات المحفوفة بالمخاطر واكتشاف الأدوات التي يمكن أن تساعدنا بشكل أفضل في تدقيق الأذونات المحفوفة بالمخاطر!
ما هو RBAC؟
التحكم في الوصول المستند إلى الدور (RBAC) هو آلية أمان يعتمد فيها كل ترخيص وصول على الأدوار التي يتم تعيينها للمستخدم. باستخدام هذا النظام ، من الممكن ، بالتالي ، تقييد الوصول إلى موارد مجموعة Kubernetes (مساحات الأسماء ، البودات ، الوظائف) للتطبيقات أو المستخدمين.
في Kubernetes ، يمكن استخدام سياسات RBAC لإدارة حقوق الوصول لمستخدم النظام (مستخدم أو مجموعة) بالإضافة إلى حسابات الخدمة (حساب الخدمة).
هناك طرق أخرى لتفويض المستخدمين في Kubernetes مثل ABAC (التحكم في الوصول المستند إلى السمات) ، من خلال Webhook أو Node Authorization ، ولكن آلية الترخيص الأصلية الأكثر استخدامًا والمتاحة في الإصدار الثابت هي RBAC.
عمليًا ، يتم التفاعل مع الموارد من خلال خادم واجهة برمجة التطبيقات (API) الخاص به ، مما يعني أنه في النهاية ، يقتصر كل شيء على تقديم طلبات HTTP إلى الخادم المذكور (عنصر أساسي في العقدة / العقدة الرئيسية أو لوحة التحكم).
يحتوي Kubernetes على أربعة كائنات ذات صلة بـ RBAC يمكن دمجها لتعيين أذونات الوصول إلى موارد المجموعة. هذه هي Role و ClusterRole و RoleBinding و ClusterRoleBinding. للعمل مع هذه الكائنات ، مثل جميع كائنات Kubernetes ، يجب استخدام واجهة برمجة تطبيقات Kubernetes.
الأدوار في Kubernetes
في Kubernetes ، هناك نوعان من الأدوار تسمى الدور و ClusterRole. يتمثل الاختلاف الأكبر بين الاثنين في أن الدور ينتمي إلى مساحة اسم محددة ، بينما ClusterRole عامة بالنسبة إلى الكتلة. لذلك ، في حالة ClusterRole ، يجب أن يكون اسمها فريدًا لأنه ينتمي إلى الكتلة. في حالة الدور ، يمكن أن يكون لمساحات اسم مختلفة دور بنفس الاسم.
هناك اختلاف آخر يجب ذكره وهو أن الدور يسمح بالوصول إلى الموارد الموجودة ضمن نفس مساحة الاسم ، في حين أن ClusterRole ، بالإضافة إلى القدرة على منح الوصول إلى الموارد في أي مساحة اسم ، يمكنها أيضًا منح الوصول إلى الموارد في نفس مساحة الاسم مثل العقد من بين أمور أخرى.
الآن بعد أن عرفنا أنواع الأدوار ، فإن الشيء التالي هو معرفة من يمكننا تعيين هذه الأدوار. في هذه الحالة ، لدينا حسابات مستخدمين وحسابات خدمة ومجموعات. حسابات المستخدمين هي حسابات مخصصة لمستخدم معين ، بينما يتم استخدام حسابات الخدمة بواسطة العمليات. على سبيل المثال ، تخيل أن تطبيقنا يحتاج إلى الوصول برمجيًا إلى الموارد من المجموعة ، لذلك سنستخدم حساب خدمة.
أخيرًا ، نحتاج إلى "الغراء" الذي يربط دورًا بحساب (مستخدم أو خدمة) أو مجموعة. هناك نوعان من الموارد في Kubernetes لهذا: RoleBinding و ClusterRoleBinding. يمكن لـ RoleBinding الإشارة إلى دور موجود في نفس مساحة الاسم ، بينما يمكن لـ ClusterRoleBinding الإشارة إلى أي دور في أي مساحة اسم وتعيين الأذونات بشكل عام.
كملاحظة ، تسمح الأذونات فقط بالوصول إلى الموارد ، لأنه "افتراضيًا ، يتم رفض كل شيء" ومن الممكن تعيين عدة أدوار لنفس المستخدم
الشرط المسبق الوحيد لاستخدام RBAC هو تمكينه في مجموعتنا باستخدام خيار " –authorization-mode=RBAC
". يمكننا التحقق من ذلك باستخدام الأمر:
kubectl api-versions
ما هي أذونات RBAC المحفوفة بالمخاطر وكيفية إصلاحها؟
أي إذن يسمح أو يسمح بالوصول غير المصرح به إلى موارد البودات يعتبر إذنًا محفوفًا بالمخاطر. على سبيل المثال ، إذا كان لدى المستخدم إذن تعديل ، فيمكنه تعديل دوره الخاص ويمكنه الوصول إلى الموارد التي لا يُسمح له بخلاف ذلك بالوصول إليها. يمكن أن يؤدي هذا إلى مشكلة الامتثال. وبالمثل ، إذا تُركت الأذونات القديمة بدون تحديد ، فيمكن لبعض المستخدمين الوصول إلى الموارد التي لم يعودوا بحاجة إليها.

من الصعب ويستغرق وقتًا طويلاً أن تجد مثل هذا الإذن المحفوف بالمخاطر يدويًا عندما يكون لديك عدد كبير من الأدوار. لإجراء هذه العملية ، يوجد عدد من أدوات تدقيق أذونات RBAC التي تساعد على فحص الكتلة بالكامل لتحديد أي أذونات محفوفة بالمخاطر. من المهم أيضًا أن نفهم أن فعالية RBAC تعتمد على سياسة RBAC محدثة والتي تتطلب بدورها تدقيق إذن منتظم.
فيما يلي بعض من أفضل أدوات RBAC لمراجعة الأذونات بناءً على اللغات المختلفة وواجهات المستخدم.
KubiScan
KubiScan هي أداة RBAC مستندة إلى Python لمسح الأذونات الخطرة في مجموعة Kubernetes. يجب تنفيذ الأداة داخل العقدة الرئيسية ومن ثم يمكن تشغيلها مباشرة من الجهاز لإعطاء قائمة بالأذونات الخطرة. يمكن استخدام Kubiscan للعثور على الأدوار المحفوفة بالمخاطر ، وأدوار الكتلة ، و RoleBindings ، و ClusterBindings ، والموضوعات ، و Pods ، وحتى الحاوية.
كرين
Krane by Appvia هي أداة تحليل وتصور ثابتة Kubernetes RBAC مقرها في Ruby. يمكن تشغيله محليًا كـ CLI أو في خط أنابيب CI / CD. علاوة على ذلك ، يمكن أن تعمل أيضًا كخدمة مستقلة داخل حاوية Kubernetes. يوفر Krane ميزة تحليل أذونات RBAC من خلال عروض شبكة الرسم البياني والشجرة ذات الأوجه. كما أنه يعطي تنبيهات لأي أذونات محفوفة بالمخاطر من خلال تكامل Slack.

أداة RBAC
أداة RBAC من InsightCloudSec هي أداة مستقلة لتدقيق الإذن تم إنشاؤها باستخدام Go. لا يسمح لك فقط بفحص أذونات RBAC المحفوفة بالمخاطر وتسليط الضوء عليها ، ولكنه يتيح لك أيضًا إنشاء سياسة RBAC من تدقيق الأذونات من خلال ميزة Auditgen الخاصة به. توفر أداة RBAC أيضًا ميزة تصور RBAC.
رياح عادلة
Fairwinds Insight هي أداة قائمة بذاتها توفر عددًا من ميزات الأمان والامتثال لـ Kubernetes. تتيح لك ميزة إنفاذ السياسة الخاصة بها تدقيق أذونات RBAC ومسحها ضوئيًا وفقًا للسياسات القياسية والمخصصة. تقدم Fairwinds عرضًا توضيحيًا عند الطلب.

مدير الأذونات
Permission Manager من Sighup هو أداة إدارة أذونات Kubernetes المستندة إلى Javascript. يوفر طريقة سهلة ومبادرة لإدارة أذونات المستخدم داخل مجموعة Kubernetes. يوفر Permission Manager أيضًا إصدارًا مؤسسيًا من الأداة التي تسمح لك بإجراء تدقيق أساسي لأذونات RBAC.
استنتاج
Kubernetes RBAC هي طريقة فعالة لإدارة الوصول إلى الموارد في مجموعة Kubernetes. ومع ذلك ، إذا لم يتم تنفيذه بشكل صحيح ، فقد يؤدي ذلك إلى مشكلات تتعلق بالأمان والامتثال. ومع ذلك ، يمكن تجنب ذلك عن طريق المراجعة المستمرة للأذونات من خلال أدوات تدقيق RBAC.
قد تكون مهتمًا أيضًا بأفضل ممارسات Kubernetes.