خيارات الوصول والهوية لخدمة 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:
- قم بالوصول إلى مورد AKS في اشتراك Azure الخاص بك.
- تحكم في توسيع نطاق المجموعة أو ترقيتها باستخدام AKS APIs.
- اسحب
kubeconfig
الخاص بك.
- الوصول إلى Kubernetes API. يتم التحكم في هذا الوصول إما من خلال:
- Kubernetes RBAC(تقليديًّا).
- دمج Azure RBAC مع AKS لترخيص Kubernetes.
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، ستتبع جميع الطلبات إلى واجهة برمجة تطبيقات 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 لتوفير مصدر واحد لإدارة الحساب والأمان.
باستخدام مجموعات AKS المتكاملة من Microsoft Entra، يمكنك منح المستخدمين أو المجموعات حق الوصول إلى موارد Kubernetes داخل مساحة اسم أو عبر نظام المجموعة.
- للحصول على سياق تكوين
kubectl
، يقوم المستخدم بتشغيل الأمر az aks get-credentials. - عندما يتفاعل مستخدم مع نظام مجموعة AKS مع
kubectl
، تتم مطالبته بتسجيل الدخول باستخدام بيانات اعتماد Microsoft Entra الخاصة به.
يوفر هذا الأسلوب مصدراً واحداً لإدارة حساب المستخدم وبيانات اعتماد كلمة المرور. يمكن للمستخدم الوصول إلى الموارد كما هو محدد من قبل مسؤول المجموعة فقط.
يتم توفير مصادقة Microsoft Entra لمجموعات AKS مع OpenID Connect. OpenID Connect عبارة عن طبقة هوية مبنية على أعلى بروتوكول OAuth 2.0. لمزيد من المعلومات حول OpenID Connect، راجع وثائق OpenID Connect. من داخل مجموعة Kubernetes، تُستخدم مصادقة Webhook Token للتحقق من رموز المصادقة. يتم تكوين مصادقة Webhook token وإدارتها كجزء من مجموعة AKS.
خادم Webhook وAPI
كما هو موضح في الرسم أعلاه، يستدعي خادم واجهة برمجة التطبيقات خادم خطاف الويب AKS وينفذ الخطوات التالية:
kubectl
يستخدم تطبيق عميل Microsoft Entra لتسجيل دخول المستخدمين باستخدام تدفق منح تخويل الجهاز OAuth 2.0.- يوفر معرف Microsoft Entra access_token id_token refresh_token.
- يقوم المستخدم بتقديم طلب إلى
kubectl
باستخدام access_token منkubeconfig
. kubectl
يرسل access_token إلى خادم API.- يتم تكوين خادم API باستخدام خادم Auth WebHook لإجراء التحقق من الصحة.
- يؤكد خادم إخطار على الويب للمصادقة أن توقيع رمز ويب JSON صالح عن طريق التحقق من مفتاح التوقيع العام ل Microsoft Entra.
- يستخدم تطبيق الخادم بيانات الاعتماد التي يوفرها المستخدم للاستعلام عن عضوية المجموعة للمستخدم الذي قام بتسجيل الدخول من MS Graph API.
- يتم إرسال استجابة إلى خادم API بمعلومات المستخدم مثل المطالبة بالاسم الأساسي للمستخدم (UPN) لرمز الوصول وعضوية المجموعة للمستخدم بناءً على معرف الكائن.
- تقوم API بتنفيذ قرار تفويض بناءً على دور Kubernetes / RoleBinding.
- بمجرد الحصول على الترخيص، يقوم خادم واجهة برمجة التطبيقات بإرجاع استجابة إلى
kubectl
. 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. في جميع الحالات، يكون تسلسل أوامر المستخدم هو:
تشغيل
az login
للمصادقة على Azure.قم بتشغيل
az aks get-credentials
لتنزيل بيانات الاعتماد الخاصة بالمجموعة بتنسيق.kube/config
.قم بتشغيل الأوامر
kubectl
.- قد يؤدي الأمر الأول إلى تشغيل المصادقة المستندة إلى المستعرض للمصادقة على الكتلة، كما هو موضح في الجدول التالي.
في مدخل Microsoft Azure، يمكنك العثور على:
- يتم عرض منح الدور (منح دور Azure RBAC) المشار إليه في العمود الثاني في علامة التبويب التحكم في الوصول.
- يتم عرض مجموعة Cluster Admin 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. |
الخطوات التالية
- لبدء استخدام معرف Microsoft Entra وKubernetes RBAC، راجع دمج معرف Microsoft Entra مع AKS.
- للحصول على أفضل الممارسات ذات الصلة، راجع أفضل الممارسات للمصادقة والتفويض في AKS.
- لبدء استخدام Azure RBAC للحصول على ترخيص Kubernetes، راجع استخدام Azure RBAC لتخويل الوصول داخل مجموعة Azure Kubernetes Service (AKS).
- للبدء في
kubeconfig
تأمين الملف، راجع تقييد الوصول إلى ملف تكوين نظام المجموعة. - للبدء في الهويات المدارة في AKS، راجع استخدام هوية مدارة في AKS.
لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية:
Azure Kubernetes Service