خيارات الوصول والهوية لخدمة Azure Kubernetes (AKS)

يمكنك مصادقة الوصول إلى مجموعات Kubernetes وتخويله وتأمينه والتحكم فيه بطرق متنوعة:

  • باستخدام التحكم في الوصول المستند إلى الدور Kubernetes (Kubernetes RBAC)، يمكنك منح المستخدمين والمجموعات وحسابات الخدمة حق الوصول إلى الموارد التي يحتاجون إليها فقط.
  • باستخدام Azure Kubernetes Service (AKS)، يمكنك زيادة تحسين بنية الأمان والأذونات باستخدام معرف Microsoft Entra وAzure RBAC.

تساعدك Kubernetes RBAC و AKS في تأمين وصول المجموعة لديك وتوفر فقط الحد الأدنى من الأذونات المطلوبة للمطورين والمشغلين.

تقدم هذه المقالة المفاهيم الأساسية التي تساعدك على المصادقة وتعيين الأذونات في AKS.

Kubernetes RBAC

يوفر Kubernetes RBAC تصفية دقيقة لإجراءات المستخدم. باستخدام آلية التحكم المذكورة يمكننا القيام بما يلي:

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

لمزيد من المعلومات، راجع استخدام ترخيص Kubernetes RBAC.

الأدوار وClusterRoles

الأدوار

قبل تعيين أذونات للمستخدمين مع Kubernetes RBAC، ستحدد أذونات المستخدم كـدور. امنح الأذونات داخل مساحة الاسم باستخدام الأدوار.

إشعار

تمنح أدوار Kubernetes الأذونات؛ لا يرفضون الأذونات.

لمنح أذونات عبر الكتلة بالكامل أو لتكتل الموارد خارج مساحة اسم معينة، يمكنك بدلًا من ذلك استخدامأدوار المجموعات.

أدوار نظام المجموعة

يمنح دور الكتلة الأذونات ويطبقها على الموارد عبر الكتلة بالكامل، وليس مساحة اسم محددة.

RoleBindings وClusterRoleBindings

بمجرد تحديد الأدوار لمنح أذونات للموارد، فإنك تقوم بتعيين أذونات Kubernetes RBAC هذه باستخدام RoleBinding. إذا كان نظام مجموعة AKS الخاص بك يتكامل مع معرف Microsoft Entra، تمنح RoleBindings أذونات لمستخدمي Microsoft Entra لتنفيذ الإجراءات داخل نظام المجموعة. راجع كيفية التحكم في الوصول إلى موارد نظام المجموعة باستخدام التحكم في الوصول المستند إلى دور Kubernetes وهويات Microsoft Entra.

RoleBindings

قم بتعيين الأدوار للمستخدمين لمساحة اسم معينة باستخدام RoleBindings. باستخدام RoleBindings، يمكنك فصل مجموعة AKS واحدة منطقيًّا، مما يتيح فقط للمستخدمين الوصول إلى موارد التطبيق في مساحة الاسم المخصصة لهم.

لربط الأدوار عبر الكتلة بالكامل، أو لتجميع الموارد خارج مساحة اسم معينة، يمكنك بدلًا من ذلك استخدام ClusterRoleBindings.

ClusterRoleBinding

باستخدام ClusterRoleBinding، يمكنك ربط الأدوار بالمستخدمين وتطبيقها على الموارد عبر الكتلة بالكامل، وليس مساحة اسم محددة. يتيح لك هذا الأسلوب منح المسؤولين أو مهندسي الدعم حق الوصول إلى جميع الموارد في مجموعة AKS.

إشعار

تنفذ Microsoft / AKS أي إجراءات مجموعة بموافقة المستخدم بموجب دور Kubernetes المدمج وaks-serviceربط الدور المضمنaks-service-rolebinding.

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

حسابات خدمة Kubernetes

تعد حسابات الخدمة أحد أنواع المستخدمين الأساسية في Kubernetes. تحتفظ Kubernetes API بحسابات الخدمة وتديرها. يتم تخزين بيانات اعتماد حساب الخدمة كأسرار Kubernetes، مما يسمح باستخدامها بواسطة أجهزة الكمبيوتر المعتمدة للتواصل مع خادم API. توفر معظم طلبات واجهة برمجة التطبيقات رمز مصادقة لحساب خدمة أو حساب مستخدم عادي.

تسمح حسابات المستخدم العادية بالوصول التقليدي للمسؤولين أو المطورين البشريين، وليس فقط الخدمات والعمليات. بينما لا يوفر Kubernetes حلاً لإدارة الهوية لتخزين حسابات المستخدمين وكلمات المرور العادية، يمكنك دمج حلول الهوية الخارجية في Kubernetes. بالنسبة لمجموعات AKS، حل الهوية المتكامل هذا هو معرف Microsoft Entra.

لمزيد من المعلومات حول خيارات الهوية في Kubernetes، راجع مصادقة Kubernetes.

عنصر تحكم الوصول المستند إلى دور Azure

إن التحكم في الوصول المستند إلى الدور (RBAC) في Azure هو نظام مصادقة تم إنشاؤه على Azure Resource Manager الذي يوفر إدارة وصول دقيقة لموارد Azure.

نظام التحكم في الوصول استنادًا إلى الدور ‏‏الوصف
Kubernetes RBAC مصمم للعمل على موارد Kubernetes داخل مجموعة AKS الخاصة بك.
Azure RBAC مصمم للعمل على الموارد ضمن اشتراك Azure.

باستخدام Azure RBAC، يمكنك إنشاء تعريف دور يحدد الأذونات التي سيتم تطبيقها. يمكنك بعد ذلك تعيين مستخدم أو مجموعة لتعريف هذا الدور عبر تعيين دورلنطاق معين. يمكن أن يكون النطاق موردًا فرديًّا أو مجموعة موارد أو عبر الاشتراك.

لمزيد من المعلومات، راجع ما هو التحكم في الوصول المستند إلى الدور Azure (Azure RBAC) ؟

هناك مستويان من الوصول مطلوبان للتشغيل الكامل لمجموعة أجهزة الكمبيوتر AKS:

Azure RBAC لتخويل الوصول إلى مورد AKS

باستخدام Azure RBAC، يمكنك تزويد المستخدمين (أو الهويات) بوصول دقيق إلى موارد AKS عبر اشتراك واحد أو أكثر. على سبيل المثال، يمكنك استخدام دور Azure Kubernetes Service Contributor لتوسيع نطاق مجموعتك وترقيتها. وفي الوقت نفسه، فإن مستخدم آخر لديه دور مسؤول مجموعة خدمة Azure Kubernetesلديه إذن فقط لسحب المسؤولkubeconfig.

استخدم Azure RBAC لتحديد الوصول إلى ملف تكوين Kubernetes في AKS.

Azure RBAC لترخيص Kubernetes

مع تكامل Azure RBAC، ستستخدم AKS خادم إخطار على الويب الخاص بتخويل Kubernetes حتى تتمكن من إدارة أذونات موارد مجموعة Kubernetes المتكاملة من Microsoft Entra وتعييناتها باستخدام تعريف دور Azure وتعيينات الأدوار.

Azure RBAC for Kubernetes authorization flow

كما هو موضح في الرسم التخطيطي أعلاه، عند استخدام تكامل Azure RBAC، ستتبع جميع الطلبات إلى واجهة برمجة تطبيقات Kubernetes نفس تدفق المصادقة كما هو موضح في قسم تكامل Microsoft Entra.

إذا كانت الهوية التي تقدم الطلب موجودة في Microsoft Entra ID، فسيشترك Azure مع Kubernetes RBAC لتخويل الطلب. إذا كانت الهوية موجودة خارج معرف Microsoft Entra (أي حساب خدمة Kubernetes)، فسيؤجل التخويل إلى Kubernetes RBAC العادي.

في هذا السيناريو، يمكنك استخدام آليات Azure RBAC وواجهات برمجة التطبيقات لتعيين أدوار مضمنة للمستخدمين أو إنشاء أدوار مخصصة، تمامًا كما تفعل مع أدوار Kubernetes.

باستخدام هذه الميزة، لا تمنح المستخدمين أذونات لمورد AKS عبر الاشتراكات فحسب، بل يمكنك أيضًا تكوين الدور والأذونات لكل من هذه المجموعات التي تتحكم في وصول Kubernetes API. على سبيل المثال، يمكنك منح الدور Azure Kubernetes Service RBAC Readerفي نطاق الاشتراك. سيتمكن مستلم الدور من سرد جميع كائنات Kubernetes من كل المجموعات والحصول عليها دون تعديلها.

هام

تحتاج إلى تمكين Azure RBAC لترخيص Kubernetes قبل استخدام هذه الميزة. لمزيد من التفاصيل والإرشادات خطوة بخطوة، اتبع دليلنا الإرشادي لاستخدام Azure RBAC لمصادقة Kubernetes.

أدوار مدمجة

توفر AKS الأدوار الأربعة التالية. إنها تشبه الأدوار المضمنة في Kubernetes مع بعض الاختلافات، مثل دعم CRDs. اطلع على القائمة الكاملة للإجراءات المسموح بها بواسطة كلدور مضمن في Azure.

الدور ‏‏الوصف
قارئ RBAC لخدمة Azure Kubernetes يسمح بالوصول للقراءة فقط لرؤية معظم العناصر في مساحة الاسم.
لا يسمح بعرض الأدوار أو ارتباطات الأدوار.
لا يسمح بالمشاهدةSecrets. تتيحSecrets قراءة المحتويات الوصول إلىServiceAccount بيانات الاعتماد في مساحة الاسم، مما سيسمح بالوصول إلى واجهة برمجة التطبيقات مثل أيServiceAccount مساحة في مساحة الاسم (شكل من أشكال تصعيد الامتياز).
كاتب RBAC لخدمة Azure Kubernetes يسمح بالوصول للقراءة/الكتابة إلى معظم العناصر في مساحة الاسم.
لا يسمح بعرض الأدوار أو تغييرها أو روابط الأدوار.
ولكن يسمح هذا الدور بالوصولSecrets إلى القرون وتشغيلها كأي ServiceAccount في مساحة الاسم، بحيث يمكن استخدامه للحصول على مستويات الوصول إلى واجهة برمجة التطبيقات من أي ServiceAccount في مساحة الاسم.
Azure Kubernetes Service RBAC Admin يسمح بوصول المسؤول، الذي تم منحه ضمن مساحة الاسم.
يسمح بالوصول للقراءة/الكتابة في معظم الموارد في مساحة الاسم (أو نطاق الكتلة)، بما في ذلك القدرة على إنشاء أدوار وربطات الأدوار داخل مساحة الاسم.
لا يسمح بالوصول للكتابة إلى حصة الموارد أو مساحة الاسم نفسها.
Azure Kubernetes Service RBAC Cluster Admin يسمح للمستخدم الفائق بالوصول إلى تنفيذ أي إجراء على أي مورد.
يمنح السيطرة الكاملة على كل مورد في الكتلة وفي جميع مساحات الأسماء.

تكامل Microsoft Entra

تحسين أمان نظام مجموعة AKS الخاص بك مع تكامل Microsoft Entra. تم بناء معرف Microsoft Entra على عقود من إدارة هوية المؤسسة، وهو دليل متعدد المستأجرين وقائم على السحابة وخدمة إدارة الهوية التي تجمع بين خدمات الدليل الأساسية وإدارة الوصول إلى التطبيقات وحماية الهوية. باستخدام معرف Microsoft Entra، يمكنك دمج الهويات المحلية في مجموعات AKS لتوفير مصدر واحد لإدارة الحساب والأمان.

Microsoft Entra integration with AKS clusters

باستخدام مجموعات AKS المتكاملة من Microsoft Entra، يمكنك منح المستخدمين أو المجموعات حق الوصول إلى موارد Kubernetes داخل مساحة اسم أو عبر نظام المجموعة.

  1. للحصول على سياق تكوين kubectl، يقوم المستخدم بتشغيل الأمر az aks get-credentials.
  2. عندما يتفاعل مستخدم مع نظام مجموعة AKS مع kubectl، تتم مطالبته بتسجيل الدخول باستخدام بيانات اعتماد Microsoft Entra الخاصة به.

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

يتم توفير مصادقة Microsoft Entra لمجموعات AKS مع openID الاتصال. OpenID Connect عبارة عن طبقة هوية مبنية على أعلى بروتوكول OAuth 2.0. لمزيد من المعلومات حول الاتصال OpenID، راجع وثائق الاتصال OpenID. من داخل مجموعة Kubernetes، تُستخدم مصادقة Webhook Token للتحقق من رموز المصادقة. يتم تكوين مصادقة Webhook token وإدارتها كجزء من مجموعة AKS.

خادم Webhook وAPI

Webhook and API server authentication flow

كما هو موضح في الرسم أعلاه، يستدعي خادم واجهة برمجة التطبيقات خادم خطاف الويب AKS وينفذ الخطوات التالية:

  1. kubectl يستخدم تطبيق عميل Microsoft Entra لتسجيل دخول المستخدمين باستخدام تدفق منح تخويل الجهاز OAuth 2.0.
  2. يوفر معرف Microsoft Entra access_token id_token refresh_token.
  3. يقوم المستخدم بتقديم طلب إلىkubectl باستخدام access_token منkubeconfig.
  4. kubectlيرسل access_token إلى خادم API.
  5. يتم تكوين خادم API باستخدام خادم Auth WebHook لإجراء التحقق من الصحة.
  6. يؤكد خادم إخطار على الويب للمصادقة أن توقيع رمز ويب JSON صالح عن طريق التحقق من مفتاح التوقيع العام ل Microsoft Entra.
  7. يستخدم تطبيق الخادم بيانات الاعتماد التي يوفرها المستخدم للاستعلام عن عضوية المجموعة للمستخدم الذي قام بتسجيل الدخول من MS Graph API.
  8. يتم إرسال استجابة إلى خادم API بمعلومات المستخدم مثل المطالبة بالاسم الأساسي للمستخدم (UPN) لرمز الوصول وعضوية المجموعة للمستخدم بناءً على معرف الكائن.
  9. تقوم API بتنفيذ قرار تفويض بناءً على دور Kubernetes / RoleBinding.
  10. بمجرد الحصول على الترخيص، يقوم خادم واجهة برمجة التطبيقات بإرجاع استجابة إلى kubectl.
  11. kubectlيقدم ملاحظات للمستخدم.

تعرف على كيفية تكامل AKS مع معرف Microsoft Entra مع دليل كيفية تكامل Microsoft Entra المدار بواسطة AKS.

أذونات خدمة AKS

عند إنشاء مجموعة، تنشئ AKS أو تعدل الموارد التي تحتاجها (مثل VMs و NIC) لإنشاء وتشغيل الكتلة نيابة عن المستخدم. تختلف هذه الهوية عن إذن هوية الكتلة، الذي يتم إنشاؤه أثناء إنشاء الكتلة.

إنشاء الهوية وتشغيل أذونات الكتلة

الأذونات التالية مطلوبة من قبل الهوية التي تنشئ وتشغيل الكتلة.

إذن السبب
Microsoft.Compute/diskEncryptionSets/read مطلوب لقراءة معرف مجموعة تشفير القرص.
Microsoft.Compute/proximityPlacementGroups/write مطلوب لتحديث مجموعات المواضع القريبة.
Microsoft.Network/applicationGateways/read
Microsoft.Network/applicationGateways/write
Microsoft.Network/virtualNetworks/subnets/join/action
مطلوب لتكوين بوابات التطبيق والانضمام إلى الشبكة الفرعية.
Microsoft.Network/virtualNetworks/subnets/join/action ضروري لتكوين مجموعة أمان الشبكة للشبكة الفرعية عند استخدام VNET مخصص.
Microsoft.Network/publicIPAddresses/join/action
Microsoft.Network/publicIPPrefixes/join/action
مطلوب لتكوين عناوين IP العامة الصادرة في موازن التحميل القياسي.
Microsoft.OperationalInsights/workspaces/sharedkeys/read
Microsoft.OperationalInsights/workspaces/read
Microsoft.OperationsManagement/solutions/write
Microsoft.OperationsManagement/solutions/read
Microsoft.ManagedIdentity/userAssignedIdentities/assign/action
مطلوب لإنشاء مساحات عمل تحليلات السجل وتحديثها ومراقبة Azure للحاويات.
Microsoft.Network/virtualNetworks/joinLoadBalancer/action مطلوب لتكوين تجمعات الواجهة الخلفية لموازن التحميل المستندة إلى IP.

أذونات هوية الكتلة AKS

يتم استخدام الأذونات التالية بواسطة هوية مجموعة AKS، والتي يتم إنشاؤها وربطها بمجموعة AKS. يجري استخدام كل إذن للأسباب التالية:

إذن السبب
Microsoft.ContainerService/managedClusters/*
مطلوب لإنشاء المستخدمين وتشغيل نظام مجموعة
Microsoft.Network/loadBalancers/delete
Microsoft.Network/loadBalancers/read
Microsoft.Network/loadBalancers/write
لازم لتكوين موازن التحميل لخدمة LoadBalancer.
Microsoft.Network/publicIPAddresses/delete
Microsoft.Network/publicIPAddresses/read
Microsoft.Network/publicIPAddresses/write
مطلوب للبحث عن عناوين IP العامة وتكوينها لخدمة LoadBalancer.
Microsoft.Network/publicIPAddresses/join/action مطلوب لتكوين عناوين IP العامة لخدمة LoadBalancer.
Microsoft.Network/networkSecurityGroups/read
Microsoft.Network/networkSecurityGroups/write
مطلوب لإنشاء قواعد أمان أو حذفها لخدمة LoadBalancer.
Microsoft.Compute/disks/delete
Microsoft.Compute/disks/read
Microsoft.Compute/disks/write
Microsoft.Compute/locations/DiskOperations/read
مطلوب لتكوين AzureDisks.
Microsoft.Storage/storageAccounts/delete
Microsoft.Storage/storageAccounts/listKeys/action
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/write
Microsoft.Storage/operations/read
لازم لتكوين حسابات التخزين لـ AzureFile أو AzureDisk.
Microsoft.Network/routeTables/read
Microsoft.Network/routeTables/routes/delete
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
Microsoft.Network/routeTables/write
لازم لتكوين جداول التوجيه والمسارات للعقد.
Microsoft.Compute/virtualMachines/read مطلوب للعثور على معلومات للأجهزة الافتراضية في VMAS، مثل المناطق ومجال الخطأ والحجم وأقراص البيانات.
Microsoft.Compute/virtualMachines/write مطلوب لإرفاق AzureDisks بجهاز افتراضي في VMAS.
Microsoft.Compute/virtualMachineScaleSets/read
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/instanceView/read
مطلوب للعثور على معلومات للأجهزة الظاهرية في مجموعة مقياس آلة افتراضية، مثل المناطق ومجال الخطأ والحجم وأقراص البيانات.
Microsoft.Network/networkInterfaces/write مطلوب لإضافة جهاز ظاهري في VMAS إلى تجمع عناوين الواجهة الخلفية لموازنة التحميل.
Microsoft.Compute/virtualMachineScaleSets/write مطلوب لإضافة مقياس جهاز ظاهري تم تعيينه إلى تجمعات عناوين الواجهة الخلفية لموازنة التحميل وتوسيع نطاق العقد في مجموعة مقياس جهاز ظاهري.
Microsoft.Compute/virtualMachineScaleSets/delete مطلوب لحذف مقياس جهاز ظاهري تم تعيينه إلى قوائم عناوين الواجهة الخلفية لموازنة التحميل وتوسيع نطاق العقد في مجموعة مقياس جهاز ظاهري.
Microsoft.Compute/virtualMachineScaleSets/virtualmachines/write مطلوب لإرفاق AzureDisks وإضافة جهاز افتراضي من مقياس جهاز ظاهري تم تعيينه إلى موازن التحميل.
Microsoft.Network/networkInterfaces/read مطلوب للبحث في عناوين IP الداخلية وتحميل مجموعات عناوين الواجهة الخلفية للموازنة للأجهزة الافتراضية في VMAS.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/read مطلوب للبحث في عناوين IP الداخلية وتحميل تجمعات عناوين الواجهة الخلفية لموازنة جهاز ظاهري في مجموعة مقياس جهاز ظاهري.
Microsoft.Compute/virtualMachineScaleSets/virtualMachines/networkInterfaces/ipconfigurations/publicipaddresses/read مطلوب للعثور على عناوين IP العامة لجهاز ظاهري في مجموعة مقياس آلة افتراضية.
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/read
مطلوب للتحقق من وجود شبكة فرعية لموازن التحميل الداخلي في مجموعة موارد أخرى.
Microsoft.Compute/snapshots/delete
Microsoft.Compute/snapshots/read
Microsoft.Compute/snapshots/write
مطلوب لتكوين اللقطات لـ AzureDisk.
Microsoft.Compute/locations/vmSizes/read
Microsoft.Compute/locations/operations/read
مطلوب للعثور على أحجام الأجهزة الظاهرية للعثور على حدود حجم AzureDisk.

أذونات هوية نظام المجموعة الإضافية

عند إنشاء نظام مجموعة بسمات محددة، ستحتاج إلى الأذونات الإضافية التالية لهوية الكتلة. نظرًا لأنه لا يتم تعيين هذه الأذونات تلقائيًّا، يجب عليك إضافتها إلى هوية الكتلة بعد إنشائها.

إذن السبب
Microsoft.Network/networkSecurityGroups/write
Microsoft.Network/networkSecurityGroups/read
مطلوب في حالة استخدام مجموعة أمان شبكة في مجموعة موارد أخرى. لازم لتكوين قواعد الأمان لخدمة LoadBalancer.
Microsoft.Network/virtualNetworks/subnets/read
Microsoft.Network/virtualNetworks/subnets/join/action
مطلوب في حالة استخدام شبكة فرعية في مجموعة موارد أخرى مثل VNET مخصص.
Microsoft.Network/routeTables/routes/read
Microsoft.Network/routeTables/routes/write
مطلوب في حالة استخدام شبكة فرعية مرتبطة بجدول توجيه في مجموعة موارد أخرى مثل VNET مخصص مع جدول توجيه مخصص. مطلوب للتحقق مما إذا كانت الشبكة الفرعية موجودة بالفعل للشبكة الفرعية في مجموعة الموارد الأخرى.
Microsoft.Network/virtualNetworks/subnets/read مطلوب في حالة استخدام موازن تحميل داخلي في مجموعة موارد أخرى. لازم للتحقق مما إذا كانت الشبكة الفرعية موجودة بالفعل لموازن التحميل الداخلي في مجموعة الموارد.
Microsoft.Network/privatednszones/* مطلوب في حالة استخدام منطقة DNS خاصة في مجموعة موارد أخرى مثل privateDNSZone المخصص.

وصول عقدة AKS

لا يلزم افتراضيًّا الوصول إلى العقدة لـ AKS. يلزم الوصول التالي للعقدة إذا تم رفع مستوى مكون معين.

Access السبب
kubelet مطلوب لمنح MSI حق الوصول إلى ACR.
http app routing مطلوب للحصول على إذن الكتابة إلى "اسم عشوائي" .aksapp.io.
container insights مطلوب لمنح الإذن لمساحة عمل Log Analytics.

الملخص

اعرض الجدول للحصول على ملخص سريع لكيفية مصادقة المستخدمين إلى Kubernetes عند تمكين تكامل Microsoft Entra. في جميع الحالات، يكون تسلسل أوامر المستخدم هو:

  1. تشغيلaz login للمصادقة على Azure.

  2. قم بتشغيل az aks get-credentials لتنزيل بيانات الاعتماد الخاصة بالمجموعة بتنسيق.kube/config.

  3. قم بتشغيل الأوامرkubectl.

    • قد يؤدي الأمر الأول إلى تشغيل المصادقة المستندة إلى المستعرض للمصادقة على الكتلة، كما هو موضح في الجدول التالي.

في مدخل Microsoft Azure، يمكنك العثور على:

  • يتم عرض منح الدور (منح دور Azure RBAC) المشار إليه في العمود الثاني في علامة التبويب التحكم في الوصول.
  • تظهر المجموعة Cluster مسؤول Microsoft Entra في علامة التبويب Configuration.
    • تم العثور عليه أيضًا مع اسم المعلمة--aad-admin-group-object-ids في Azure CLI.
‏‏الوصف منحة الدور اللازمة مجموعة (مجموعات) Microsoft Entra لمسؤول نظام المجموعة وقت الاستخدام
تسجيل دخول المسؤول القديم عبر شهادة العميل دور مسؤول خدمة Azure Kubernetes. يسمح az aks get-credentials هذا الدور باستخدام العلامة --admin ، التي تقوم بتنزيل شهادة مسؤول مجموعة قديمة (غير Microsoft Entra) في المستخدم .kube/config. هذا هو الغرض الوحيد من "دور مسؤول Azure Kubernetes". غير متوفر إذا تم حظرك بشكل دائم من خلال عدم الوصول إلى مجموعة Microsoft Entra صالحة مع الوصول إلى نظام المجموعة الخاص بك.
معرف Microsoft Entra مع RoleBindings اليدوي (نظام المجموعة) دور مستخدم نظام مجموعة خدمة Azure Kubernetes. يسمح دور «المستخدم»az aks get-credentials باستخدامه بدون العلامة --admin. (هذا هو الغرض الوحيد من "دور مستخدم نظام مجموعة خدمة Azure Kubernetes".) النتيجة، على نظام مجموعة Microsoft Entra ID ممكن، هي تنزيل إدخال فارغ في .kube/config، والذي يؤدي إلى تشغيل المصادقة المستندة إلى المستعرض عند استخدامها لأول مرة من قبل kubectl . المستخدم ليس في أي من هذه المجموعات. نظرًا لأن المستخدم ليس في أي مجموعة من مجموعات إدارة الكتلة، فسيتم التحكم في حقوقهم بالكامل بواسطة أي RoleBindings أو ClusterRoleBindings تم إعدادها بواسطة مسؤولي الكتلة. (نظام المجموعة)RoleBindings ترشح مستخدمي Microsoft Entra أو مجموعات Microsoft Entra ك .subjects إذا لم يتم إعداد مثل هذه الارتباطات، فلن يتمكن المستخدم من تنفيذ أي أوامر kubectl. إذا كنت تريد تحكمًا دقيقًا في الوصول، ولا تستخدم Azure RBAC لمصادقة Kubernetes. لاحظ أن المستخدم الذي قام بإعداد الروابط يجب أن يقوم بتسجيل الدخول بإحدى الطرق الأخرى المدرجة في هذا الجدول.
معرف Microsoft Entra من قبل عضو في مجموعة المسؤولين نفس ما سبق المستخدم عضو في إحدى المجموعات المدرجة هنا. تنشئ AKS تلقائيًّا ClusterRoleBinding الذي يربط جميع المجموعات المدرجةcluster-adminبدور Kubernetes. لذلك يمكن للمستخدمين في هذه المجموعات تشغيل جميع الأوامر kubectl بصيغة cluster-admin. إذا كنت ترغب في منح المستخدمين حقوق المسؤول الكاملة بشكل ملائم، ولا تستخدم Azure RBAC لترخيص Kubernetes.
معرف Microsoft Entra مع Azure RBAC لتخويل Kubernetes دوران:
أولا، دور مستخدم نظام مجموعة خدمة Azure Kubernetes (كما هو موضح أعلاه).
ثانيًا، أحد أدوار «Azure Kubernetes Service RBAC... » المذكورة أعلاه، أو البديل المخصص الخاص بك.
حقل أدوار المسؤول في علامة التبويب "التكوين" غير ذي صلة عندما يتم تمكين Azure RBAC for Kubernetes Authorization. أنت تستخدم Azure RBAC لترخيص Kubernetes. يمنحك هذا الأسلوب تحكمًا دقيقًا، دون الحاجة إلى إعداد RoleBindings أو ClusterRoleBindings.

الخطوات التالية

لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية: