إدارة الوصول إلى مساحات عمل Azure التعلم الآلي

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

تلميح

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

تحذير

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

الأدوار الافتراضية

تحتوي مساحات عمل Azure التعلم الآلي على أدوار مضمنة متوفرة بشكل افتراضي. عند إضافة مستخدمين إلى مساحة عمل، يمكن تعيين أحد الأدوار التالية لهم.

الدور مستوى الوصول
عالم بيانات AzureML يمكن تنفيذ جميع الإجراءات داخل مساحة عمل التعلم الآلي من Azure، باستثناء إنشاء موارد الحساب أو حذفها وتعديل مساحة العمل نفسها.
عامل تشغيل حساب AzureML يمكنه إنشاء موارد الحوسبة وإدارتها وحذفها والوصول إليها داخل مساحة عمل.
القارئ إجراءات للقراءة فقط في مساحة العمل. يمكن للقراء إدراج وعرض الأصول، بما في ذلك بيانات اعتماد مخزن البيانات في مساحة العمل. لا يمكن للقراء إنشاء هذه الأصول أو تحديثها.
المساهم عرض الأصول أو إنشائها أو تحريرها أو حذفها (عند الاقتضاء) في مساحة عمل. على سبيل المثال، يمكن للمساهمين إنشاء تجربة، وإنشاء أو إرفاق مجموعة حوسبة، وإرسال تشغيل، ونشر خدمة ويب.
المالك الوصول الكامل إلى مساحة العمل، بما في ذلك القدرة على عرض الأصول أو إنشائها أو تحريرها أو حذفها في مساحة العمل. بالإضافة إلى ذلك، يمكنك تغيير تعيينات الأدوار.

بالإضافة إلى ذلك، تتمتع سجلات Azure التعلم الآلي بدور مستخدم سجل AzureML الذي يمكن تعيينه إلى مورد سجل لمنح أذونات على مستوى المستخدم لعلماء البيانات. للحصول على أذونات على مستوى المسؤول لإنشاء السجلات أو حذفها، استخدم دور المساهم أو المالك.

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

يمكنك الجمع بين الأدوار لمنح مستويات مختلفة من الوصول. على سبيل المثال، يمكنك منح مستخدم مساحة عمل أدوار كل من AzureML Data Scientist وAzureML Compute Operator للسماح للمستخدم بإجراء التجارب أثناء إنشاء الحسابات بطريقة الخدمة الذاتية.

هام

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

إدارة الوصول إلى مساحة العمل

إذا كنت مالكا لمساحة عمل، يمكنك إضافة أدوار لمساحة العمل وإزالتها منها. كما يمكنك تعيين أدوار للمستخدمين. استخدم الارتباطات التالية لاكتشاف كيفية إدارة الوصول:

على سبيل المثال، استخدم Azure CLI لتعيين دور المساهم إلى joe@contoso.com لمجموعة الموارد هذه-rg باستخدام الأمر التالي:

az role assignment create --role "Contributor" --assignee "joe@contoso.com" --resource-group this-rg

استخدام مجموعات أمان Microsoft Entra لإدارة الوصول إلى مساحة العمل

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

  • يمكن لقادة الفريق أو المشروع إدارة وصول المستخدم إلى مساحة العمل كمالكين لمجموعة الأمان، دون الحاجة إلى دور المالك في مورد مساحة العمل مباشرةً.
  • يمكنك تنظيم وإدارة وإبطال أذونات المستخدمين في مساحة العمل والموارد الأخرى كمجموعة، دون الحاجة إلى إدارة الأذونات على أساس المستخدم حسب المستخدم.
  • يساعدك استخدام مجموعات Microsoft Entra على تجنب الوصول إلى حد الاشتراك في تعيينات الأدوار.

لاستخدام مجموعات أمان Microsoft Entra:

  1. إنشاء مجموعة أمان.
  2. إضافة مالك المجموعة. لدى هذا المستخدم أذونات لإضافة أعضاء للمجموعة أو إزالتهم. لا يطلب من مالك المجموعة أن يكون عضوا في المجموعة، أو أن يكون له دور RBAC مباشر على مساحة العمل.
  3. قم بتعيين دور RBAC للمجموعة على مساحة العمل، مثل AzureML Data Scientist أو Reader أو Contributor.
  4. إضافة أعضاء المجموعة. يحصل الأعضاء على حق الوصول إلى مساحة العمل.

إنشاء دور مخصص

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

إشعار

يجب أن تكون مالكا للمورد على هذا المستوى لإنشاء أدوار مخصصة داخل هذا المورد.

لإنشاء دور مخصص، أنشئ أولا ملف JSON لتعريف الدور الذي يحدد الإذن والنطاق للدور. يحدد المثال التالي دورا مخصصا لعالم البيانات المخصص محدد النطاق على مستوى مساحة عمل محددة:

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute.",
    "Actions": ["*"],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.MachineLearningServices/workspaces/<workspaceName>"
    ]
}

تلميح

يمكنك تغيير الحقل AssignableScopes لتعيين نطاق هذا الدور المخصص على مستوى الاشتراك أو مستوى مجموعة الموارد أو مستوى مساحة عمل معين. الدور المخصص أعلاه هو مجرد مثال، راجع بعض الأدوار المخصصة المقترحة لخدمة التعلم الآلي من Azure.

هذا الدور المخصص يمكنه القيام بكل شيء في مساحة العمل باستثناء الإجراءات التالية:

  • لا يمكنه حذف مساحة العمل.
  • لا يمكنه إنشاء مساحة العمل أو تحديثها.
  • لا يمكنه إنشاء موارد الحوسبة أو تحديثها.
  • لا يمكنه حذف موارد الحوسبة.
  • لا يمكنه إضافة أو حذف أو تغيير تعيينات الأدوار.

لتوزيع هذا الدور المخصص، استخدم أمر Azure CLI التالي:

az role definition create --role-definition data_scientist_custom_role.json

بعد التوزيع، يتوفر هذا الدور في مساحة العمل المحددة. يمكنك الآن إضافة وتعيين هذا الدور في مدخل Azure.

لمزيد من المعلومات حول الأدوار المخصصة، راجع أدوار Azure المخصصة.

عمليات التعلم الآلي من Azure

لمزيد من المعلومات حول العمليات (الإجراءات وليس الإجراءات) القابلة للاستخدام مع الأدوار المخصصة، راجع عمليات موفر الموارد. استخدم أمر Azure CLI التالي لتصفية عمليات القائمة فقط:

az provider operation show –n Microsoft.MachineLearningServices

الأدوار المخصصة بالقائمة

في Azure CLI، شغِّل الأمر التالي:

az role definition list --subscription <subscriptionId> --custom-role-only true

لعرض تعريف دور لدور مخصص معين، استخدم الأمر التالي Azure CLI. <roleName> يجب أن يكون بالتنسيق نفسه الذي تم إرجاعه بواسطة الأمر السابق:

az role definition list -n <roleName> --subscription <subscriptionId>

تحديث الدور المخصص

في Azure CLI، شغِّل الأمر التالي:

az role definition update --role-definition update_def.json --subscription <subscriptionId>

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

إشعار

تحديثات الدور قد تستغرق من 15 دقيقة إلى ساعة لتطبيقها عبر جميع تعيينات الأدوار في هذا النطاق.

استخدم قوالب Azure Resource Manager للتكرار

إذا كنت تتوقع أنك ستحتاج إلى إعادة إنشاء تعيينات دور معقدة، يمكن أن يكون قالب Azure Resource Manager مساعدة كبيرة. يوضح قالب machine-learning-dependencies-role-assignment كيفية تحديد تعيينات الأدوار في التعليمات البرمجية المصدر لإعادة استخدامها.

السيناريوهات الشائعة

الجدول التالي هو ملخص لأنشطة التعلم الآلي من Azure والأذونات المطلوبة لتنفيذها على أقل نطاق. على سبيل المثال، إذا كان يمكن تنفيذ نشاط مع نطاق مساحة عمل (العمود 4)، فإن جميع النطاقات الأعلى مع هذا الإذن تعمل أيضا تلقائيا. بالنسبة لأنشطة معينة، تختلف الأذونات بين واجهات برمجة التطبيقات V1 وV2.

هام

جميع المسارات في هذا الجدول التي تبدأ بـ / عبارة عن مسارات نسبية إلى Microsoft.MachineLearningServices/:

النشاط نطاق مستوى الاشتراك نطاق مستوى مجموعة الموارد نطاق مستوى مساحة العمل
إنشاء مساحة عمل جديدة 1 غير مطلوب ⁧⁩المالك⁧⁩ أو ⁧⁩المساهم⁧⁩ غير متاح (يصبح المالك أو يرث دور نطاق أعلى بعد الإنشاء)
طلب حصة Amlcompute على مستوى الاشتراك أو تعيين الحصة على مستوى مساحة العمل المالك أو المساهم أو الدور المخصص
السماح /locations/updateQuotas/action
في نطاق الاشتراك
غير مصرح به غير مصرح به
إنشاء مجموعة حساب جديدة غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص يسمحون بما يلي: /workspaces/computes/write
إنشاء مثيل حساب جديد غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص يسمحون بما يلي: /workspaces/computes/write
إرسال أي نوع من أنواع التشغيل (V1) غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/*/read، /workspaces/environments/write، /workspaces/experiments/runs/write، /workspaces/metadata/artifacts/write، /workspaces/metadata/snapshots/write، /workspaces/environments/build/action، ، /workspaces/experiments/runs/submit/action/workspaces/environments/readSecrets/action
إرسال أي نوع من التشغيل (V2) غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/*/read، /workspaces/environments/write، /workspaces/jobs/*، /workspaces/metadata/artifacts/write، /workspaces/metadata/codes/*/write، ، /workspaces/environments/build/action/workspaces/environments/readSecrets/action
نشر المسارات ونقاط النهاية (V1) غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/endpoints/pipelines/*، ، /workspaces/pipelinedrafts/*/workspaces/modules/*
نشر المسارات ونقاط النهاية (V2) غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/endpoints/pipelines/*، ، /workspaces/pipelinedrafts/*/workspaces/components/*
إرفاق مورد AKS 2 غير مطلوب المالك أو المساهم في مجموعة الموارد التي تحتوي على AKS
توزيع نموذج مسجل على مورد AKS/ACI غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/services/aks/write، /workspaces/services/aci/write
التسجيل مقابل نقطة نهاية AKS موزعة غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/services/aks/score/action، /workspaces/services/aks/listkeys/action (عندما لا تستخدم مصادقة Microsoft Entra) OR /workspaces/read (عند استخدام مصادقة الرمز المميز)
الوصول إلى التخزين باستخدام دفاتر الملاحظات التفاعلية غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح بما يلي: /workspaces/computes/read، /workspaces/notebooks/samples/read، /workspaces/notebooks/storage/*، /workspaces/listStorageAccountKeys/action، /workspaces/listNotebookAccessToken/read
إنشاء دور مخصص جديد المالك أو المساهم أو الدور المخصص يسمحون بما يلي Microsoft.Authorization/roleDefinitions/write غير مطلوب المالك أو المساهم أو الدور المخصص يسمحون بما يلي: /workspaces/computes/write
إنشاء/ إدارة نقاط نهاية مُدارة عبر الإنترنت وعمليات توزيع غير مطلوب للنشر على الاستوديو، Microsoft.Resources/deployments/write المالك أو المساهم أو الدور المخصص الذي يسمح ب Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*.
استرداد بيانات اعتماد المصادقة لنقاط النهاية عبر الإنترنت غير مطلوب غير مطلوب المالك أو المساهم أو الدور المخصص الذي يسمح و Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/actionMicrosoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action
  1. إذا تلقيت فشلا عند محاولة إنشاء مساحة عمل للمرة الأولى، فتأكد من أن دورك يسمح .Microsoft.MachineLearningServices/register/action يتيح لك هذا الإجراء بتسجيل موفر موارد التعلم الآلي من Azure مع اشتراك Azure الخاص بك.

  2. عند إرفاق نظام مجموعة AKS، تحتاج أيضا إلى أن يكون لديك Azure Kubernetes Service Cluster مسؤول Role على نظام المجموعة.

النشر في شبكة ظاهرية أو شبكة فرعية

  • لتوزيع الموارد في شبكة ظاهرية أو شبكة فرعية، يجب أن يكون لحساب المستخدم الخاص بك أذونات للإجراءات التالية في التحكم في الوصول استناداً إلى الدور في Azure (Azure RBAC):

    • "Microsoft.Network/*/read" على مورد الشبكة الظاهرية. هذا الإذن غير مطلوب لنشر قالب Azure Resource Manager (ARM).
    • "Microsoft.Network/virtualNetworks/join/action" على مورد الشبكة الافتراضية.
    • "Microsoft.Network/virtualNetworks/subnets/join/action" على مورد الشبكة الفرعية.

    لمزيد من المعلومات حول Azure RBAC مع الشبكات، راجع الأدوار المضمنة في الشبكات

الاختلافات بين إجراءات واجهات برمجة التطبيقات V1 وV2

هناك اختلافات معينة بين إجراءات واجهات برمجة التطبيقات V1 وواجهات برمجة التطبيقات V2.

الأصل مسار الإجراء ل V1 API مسار الإجراء ل V2 API
مجموعة البيانات Microsoft.MachineLearningServices/workspaces/datasets Microsoft.MachineLearningServices/workspaces/datasets/versions
عمليات تشغيل التجربة والمهام Microsoft.MachineLearningServices/workspaces/experiments Microsoft.MachineLearningServices/workspaces/jobs
النماذج Microsoft.MachineLearningServices/workspaces/models Microsoft.MachineLearningServices/workspaces/models/versions
اللقطات والرمز Microsoft.MachineLearningServices/workspaces/snapshots Microsoft.MachineLearningServices/workspaces/codes/versions
الوحدات والمكونات Microsoft.MachineLearningServices/workspaces/modules Microsoft.MachineLearningServices/workspaces/components

يمكنك جعل الأدوار المخصصة متوافقة مع كل من V1 وV2 APIs عن طريق تضمين كلا الإجراءين أو استخدام أحرف البدل التي تتضمن كلا الإجراءين، على سبيل المثال Microsoft.MachineLearningServices/workspaces/datasets/*/read.

إنشاء مساحة عمل باستخدام مفتاح يديره العميل

عند استخدام مفتاح مدار من قبل العميل (CMK)، يتم استخدام Key Vault Azure لتخزين المفتاح. المستخدم أو كيان الخدمة المستخدَم لإنشاء مساحة العمل لابد أن يكون لهما حق وصول المالك أو المساهم إلى مخزن المفاتيح.

إذا تم تكوين مساحة العمل الخاصة بك بهوية مدارة معينة من قبل المستخدم، يجب منح الهوية الأدوار التالية. تسمح هذه الأدوار للهوية المدارة بإنشاء موارد Azure Storage وAzure Cosmos DB وAzure Search المستخدمة عند استخدام مفتاح مدار من قبل العميل:

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

داخل مفتاح الخزنة، لابد أن يكون للمستخدم أو كيان الخدمة حق الوصول إلى إنشاء حق الوصول إلى المفتاح والحصول عليه وحذفه ومسحه من خلال نهج الوصول إلى مفتاح الخزنة. لمزيد من المعلومات، راجع نظرة عامة على Azure Key Vault.

الهوية المدارة المعينة من قبل المستخدم مع نظام مجموعة حساب Azure التعلم الآلي

لتعيين هوية معينة من قبل المستخدم إلى نظام مجموعة حساب التعلم الآلي من Azure، تحتاج إلى أذونات الكتابة لإنشاء الحساب ودور عامل تشغيل الهوية المُدارة. لمزيد من المعلومات حول Azure RBAC مع الهويات المُدارة، اقرأ كيفية إدارة الهوية المعينة من قبل المستخدم

عمليات MLflow

لتنفيذ عمليات MLflow مع مساحة عمل التعلم الآلي من Azure، استخدم النطاقات التالية لدورك المخصص:

عملية MLflow النطاق
(V1) سرد التجارب أو قراءتها أو إنشائها أو تحديثها أو حذفها Microsoft.MachineLearningServices/workspaces/experiments/*
(V2) سرد المهام أو قراءتها أو إنشائها أو تحديثها أو حذفها Microsoft.MachineLearningServices/workspaces/jobs/*
احصل على نموذج مسجل بالاسم، وجلب قائمة بجميع النماذج المسجلة في السجل، وابحث عن النماذج المسجلة، وأحدث نماذج الإصدار لكل مرحلة طلبات، والحصول على إصدار نموذج مسجل، وإصدارات نموذج البحث، والحصول على URI حيث يتم تخزين البيانات الاصطناعية لإصدار النموذج، والبحث عن عمليات التشغيل بواسطة معرفات التجربة Microsoft.MachineLearningServices/workspaces/models/*/read
إنشاء نموذج مسجل جديد، وتحديث اسم/ وصف نموذج مسجل، وإعادة تسمية النموذج المسجل الحالي، وإنشاء إصدار جديد من النموذج، وتحديث وصف إصدار النموذج، ونقل نموذج مسجل إلى إحدى المراحل Microsoft.MachineLearningServices/workspaces/models/*/write
حذف نموذج مسجل مع جميع إصداراته، وحذف إصدارات محددة من نموذج مسجل Microsoft.MachineLearningServices/workspaces/models/*/delete

أمثلة على الأدوار المخصصة

عالم البيانات

يسمح لعالم البيانات بإجراء جميع العمليات داخل مساحة العمل، باستثناء:

  • إنشاء حساب
  • توزيع النماذج إلى نظام مجموعة AKS للإنتاج
  • توزيع نقطة نهاية البنية الأساسية لبرنامج ربط العمليات التجارية في الإنتاج

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/*/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

عالم البيانات مقيد

تعريف دور أكثر تقييدا دون أحرف بدل في الإجراءات المسموح بها. يمكنه تنفيذ جميع العمليات داخل مساحة عمل، باستثناء:

  • إنشاء حساب
  • توزيع النماذج إلى نظام مجموعة AKS للإنتاج
  • توزيع نقطة نهاية البنية الأساسية لبرنامج ربط العمليات التجارية في الإنتاج

data_scientist_restricted_custom_role.json :

{
    "Name": "Data Scientist Restricted Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/computes/start/action",
        "Microsoft.MachineLearningServices/workspaces/computes/stop/action",
        "Microsoft.MachineLearningServices/workspaces/computes/restart/action",
        "Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/models/*/write",
        "Microsoft.MachineLearningServices/workspaces/modules/write",
        "Microsoft.MachineLearningServices/workspaces/components/*/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/*/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/*/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",    
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/write",
        "Microsoft.MachineLearningServices/workspaces/datastores/delete"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

عالم بيانات MLflow

يسمح لعالم البيانات بإجراء جميع العمليات المدعومة من MLflow Azure التعلم الآلي باستثناء:

  • إنشاء حساب
  • توزيع النماذج إلى نظام مجموعة AKS للإنتاج
  • توزيع نقطة نهاية البنية الأساسية لبرنامج ربط العمليات التجارية في الإنتاج

mlflow_data_scientist_custom_role.json :

{
    "Name": "MLFlow Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/experiments/*",
        "Microsoft.MachineLearningServices/workspaces/jobs/*",
        "Microsoft.MachineLearningServices/workspaces/models/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

MLOps

يتيح لك تعيين دور إلى كيان خدمة واستخدام ذلك لأتمتة البنيات الأساسية لبرنامج ربط العمليات التجارية لـ MLOps. على سبيل المثال، لإرسال عمليات تشغيل مقابل البنية الأساسية لبرنامج ربط العمليات التجارية الموزعة بالفعل:

mlops_custom_role.json :

{
    "Name": "MLOps Custom",
    "IsCustom": true,
    "Description": "Can run pipelines against a published pipeline endpoint",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
        "Microsoft.MachineLearningServices/workspaces/environments/read",    
        "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
        "Microsoft.MachineLearningServices/workspaces/modules/read",
        "Microsoft.MachineLearningServices/workspaces/components/read",       
        "Microsoft.MachineLearningServices/workspaces/datasets/*/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/read",       
        "Microsoft.MachineLearningServices/workspaces/experiments/jobs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/codes/*/write",       
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

مسؤول مساحة العمل

يتيح لك تنفيذ جميع العمليات ضمن نطاق مساحة العمل، باستثناء:

  • إنشاء مساحة عمل جديدة
  • تعيين حصص على مستوى الاشتراك أو مساحة العمل

كما لا يمكن لمسؤول مساحة العمل إنشاء دور جديد. لا يمكنه سوى تعيين أدوار مضمنة أو مخصصة موجودة ضمن نطاق مساحة العمل الخاصة بهم:

workspace_admin_custom_role.json :

{
    "Name": "Workspace Admin Custom",
    "IsCustom": true,
    "Description": "Can perform all operations except quota management and upgrades",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/write",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.Authorization/roleAssignments/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

تسمية البيانات

هناك دور مضمن لتسمية البيانات، يتم تحديد نطاقه فقط لتسمية البيانات. تمنح الأدوار المخصصة التالية مستويات أخرى من الوصول لمشروع تسمية البيانات.

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

labeling_team_lead_custom_role.json :

{
    "Name": "Labeling Team Lead",
    "IsCustom": true,
    "Description": "Team lead for Labeling Projects",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/reject/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/update/action",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/write",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/delete",
        "Microsoft.MachineLearningServices/workspaces/labeling/export/action"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscriptionId>"
    ]
}

استكشاف الأخطاء وإصلاحها

فيما يلي بعض الأشياء التي يجب أن تكون على علم بها أثناء استخدام Azure RBAC:

  • عند إنشاء مورد في Azure، مثل مساحة عمل، فأنت لست مالك المورد مباشرة. يتم توريث دورك من أعلى دور نطاق يتم تخويلك مقابله في هذا الاشتراك. كمثال إذا كنت أحد مسؤول istrator للشبكة، ولديك الأذونات لإنشاء مساحة عمل التعلم الآلي، فسيتم تعيين دور Network مسؤول istrator مقابل مساحة العمل هذه، وليس دور المالك.

  • لتنفيذ عمليات الحصة في مساحة عمل، تحتاج إلى أذونات على مستوى الاشتراك. وهذا يعني أن تعيين الحصة على مستوى الاشتراك أو الحصة على مستوى مساحة العمل لموارد الحوسبة المُدارة لا يمكن أن يحدث إلا إذا كان لديك أذونات الكتابة في نطاق الاشتراك.

  • من أجل النشر على الاستوديو، تحتاج إلى Microsoft.Resources/deployments/write AND Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. بالنسبة إلى عمليات نشر SDK/CLI، تحتاج إلى Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/write. اتصل بمالك مساحة العمل/مجموعة الموارد للحصول على الأذونات الإضافية.

  • عندما يكون هناك تعيينان للدور لنفس مستخدم Microsoft Entra مع أقسام متعارضة من Actions/NotActions، قد لا تسري عملياتك المدرجة في NotActions من دور واحد إذا تم إدراجها أيضا كإجراءات في دور آخر. لمعرفة المزيد حول كيفية تحليل Azure لتعيينات الأدوار، اقرأ كيف يقوم Azure RBAC بتحديد ما إذا كان لدى المستخدم حق الوصول إلى مورد

  • قد يستغرق الأمر في بعض الأحيان ما يصل إلى ساعة واحدة حتى تسري تعيينات الأدوار الجديدة على الأذونات المخزنة مؤقتا عبر المكدس.

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