التحكم في الوصول المستند إلى الدور في Azure الذكاء الاصطناعي Studio

هام

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

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

تحذير

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

الذكاء الاصطناعي Studio hub مقابل المشروع

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

رسم تخطيطي للعلاقة بين موارد الذكاء الاصطناعي Studio.

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

الأدوار الافتراضية للمركز

يحتوي مركز الذكاء الاصطناعي Studio على أدوار مضمنة متوفرة بشكل افتراضي.

فيما يلي جدول للأدوار المضمنة وأذوناتها للمركز:

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

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

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

المجموعة الكاملة من الأذونات لدور "Azure الذكاء الاصطناعي Developer" الجديد هي كما يلي:

{
    "Permissions": [ 
        { 
        "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/listKeys/action", 
            "Microsoft.MachineLearningServices/workspaces/hubs/write", 
            "Microsoft.MachineLearningServices/workspaces/hubs/delete", 
            "Microsoft.MachineLearningServices/workspaces/featurestores/write", 
            "Microsoft.MachineLearningServices/workspaces/featurestores/delete" 
        ], 
        "DataActions": [ 
            "Microsoft.CognitiveServices/accounts/OpenAI/*", 
            "Microsoft.CognitiveServices/accounts/SpeechServices/*", 
            "Microsoft.CognitiveServices/accounts/ContentSafety/*" 
        ], 
        "NotDataActions": [], 
        "Condition": null, 
        "ConditionVersion": null 
        } 
    ] 
}

الأدوار الافتراضية للمشاريع

المشاريع في الذكاء الاصطناعي Studio لها أدوار مضمنة متوفرة بشكل افتراضي.

فيما يلي جدول للأدوار المضمنة وأذوناتها للمشروع:

الدور ‏‏الوصف
مالك الوصول الكامل إلى المشروع، بما في ذلك القدرة على تعيين أذونات لمستخدمي المشروع.
مساهم يتمتع المستخدم بالوصول الكامل إلى المشروع ولكن لا يمكنه تعيين أذونات لمستخدمي المشروع.
مطور Azure الذكاء الاصطناعي يمكن للمستخدم تنفيذ معظم الإجراءات، بما في ذلك إنشاء عمليات النشر، ولكن لا يمكنه تعيين أذونات لمستخدمي المشروع.
عامل تشغيل Azure الذكاء الاصطناعي Inference Deployment تنفيذ كافة الإجراءات المطلوبة لإنشاء نشر مورد داخل مجموعة موارد.
القارئ الوصول للقراءة فقط إلى المشروع.

عند منح مستخدم حق الوصول إلى مشروع (على سبيل المثال، من خلال إدارة أذونات الذكاء الاصطناعي Studio)، يتم تعيين دورين إضافيين للمستخدم تلقائيا. الدور الأول هو Reader على المركز. الدور الثاني هو دور عامل تشغيل نشر الاستدلال، والذي يسمح للمستخدم بإنشاء عمليات نشر على مجموعة الموارد التي يوجد بها المشروع. يتكون هذا الدور من هذين الإذنين: "Microsoft.Authorization/*/read" و "Microsoft.Resources/deployments/*".

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

الحد الأدنى من الأذونات اللازمة لإنشاء مشروع هو دور له الإجراء Microsoft.MachineLearningServices/workspaces/hubs/join المسموح به على المركز. يحتوي دور مطور Azure الذكاء الاصطناعي المضمن على هذا الإذن.

أذونات Azure RBAC لخدمة التبعية

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

الإذن الغرض
Microsoft.Storage/storageAccounts/write إنشاء حساب تخزين باستخدام المعلمات المحددة أو تحديث الخصائص أو العلامات أو إضافة مجال مخصص لحساب التخزين المحدد.
Microsoft.KeyVault/vaults/write إنشاء مخزن مفاتيح جديد أو تحديث خصائص مخزن مفاتيح موجود. قد تتطلب بعض الخصائص المزيد من الأذونات.
Microsoft.CognitiveServices/accounts/write كتابة حسابات واجهة برمجة التطبيقات.
Microsoft.MachineLearningServices/workspaces/write إنشاء مساحة عمل جديدة أو تحديث خصائص مساحة عمل موجودة.

نموذج إعداد التحكم في الوصول استنادا إلى الدور على مستوى المؤسسة

الجدول التالي هو مثال على كيفية إعداد التحكم في الوصول استنادا إلى الدور ل Azure الذكاء الاصطناعي Studio لمؤسسة.

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

الوصول إلى الموارد التي تم إنشاؤها خارج المركز

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

  • المورد الذي تحاول استخدامه لديه أذونات معدة للسماح لك بالوصول إليه.
  • يسمح لمركزك بالوصول إليه.

على سبيل المثال، إذا كنت تحاول استهلاك تخزين Blob جديد، فستحتاج إلى التأكد من إضافة الهوية المدارة للمركز إلى دور Blob Storage Reader ل Blob. إذا كنت تحاول استخدام مصدر بحث Azure الذكاء الاصطناعي جديد، فقد تحتاج إلى إضافة المركز إلى تعيينات أدوار Azure الذكاء الاصطناعي Search.

إدارة الوصول باستخدام الأدوار

إذا كنت مالكا لمركز، يمكنك إضافة أدوار الذكاء الاصطناعي Studio وإزالتها. انتقل إلى الصفحة الرئيسية في الذكاء الاصطناعي Studio وحدد المركز الخاص بك. ثم حدد المستخدمون لإضافة مستخدمين للمركز وإزالته. يمكنك أيضا إدارة الأذونات من مدخل Microsoft Azure ضمن Access Control (IAM) أو من خلال Azure CLI. على سبيل المثال، استخدم Azure CLI لتعيين دور مطور Azure الذكاء الاصطناعي إلى "joe@contoso.com" لمجموعة الموارد "this-rg" مع الأمر التالي:

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

إنشاء أدوار مُخصصة

إشعار

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

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

إشعار

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

يعرف مثال JSON التالي دور مطور الذكاء الاصطناعي Studio مخصص على مستوى الاشتراك:

{
    "properties": {
        "roleName": "AI Studio Developer",
        "description": "Custom role for AI Studio. At subscription level",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/endpoints/write",
                    "Microsoft.Storage/storageAccounts/write",
                    "Microsoft.Resources/deployments/validate/action",
                    "Microsoft.KeyVault/vaults/write",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read",
                    "Microsoft.CognitiveServices/*/read"
                ],
                "notActions": [
                    "Microsoft.MachineLearningServices/workspaces/delete",
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/listKeys/action",
                    "Microsoft.MachineLearningServices/workspaces/hubs/write",
                    "Microsoft.MachineLearningServices/workspaces/hubs/delete",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/write",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
                ],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action"
                ],
                "notDataActions": []
            }
        ]
    }
}

السيناريو: استخدام مفتاح مدار من قبل العميل

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

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

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

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

السيناريو: استخدام مورد Azure OpenAI موجود

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

السيناريو: استخدام Azure Container Registry

مثيل Azure Container Registry هو تبعية اختيارية لمركز Azure الذكاء الاصطناعي Studio. يسرد الجدول التالي مصفوفة الدعم عند مصادقة مركز إلى Azure Container Registry، اعتمادا على أسلوب المصادقة وتكوين الوصول إلى الشبكة العامة ل Azure Container Registry.

أسلوب المصادقة تعطيل الوصول إلى
الشبكة العامة
تمكين الوصول إلى الشبكة العامة لسجل
حاويات Azure
مستخدم مسؤول جديد
الهوية المدارة المعينة من قبل نظام الذكاء الاصطناعي Studio hub
الذكاء الاصطناعي Studio hub الهوية المدارة
المعينة من قبل المستخدم مع دور ACRPull المعين للهوية

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

السيناريو: استخدام Azure Application Insights للتسجيل

Azure Application Insights هو تبعية اختيارية لمركز Azure الذكاء الاصطناعي Studio. يسرد الجدول التالي الأذونات المطلوبة إذا كنت تريد استخدام Application Insights عند إنشاء مركز. يحتاج الشخص الذي يقوم بإنشاء المركز إلى هذه الأذونات. لا يحتاج الشخص الذي يقوم بإنشاء مشروع من المركز إلى هذه الأذونات.

الإذن الغرض
Microsoft.Insights/Components/Write الكتابة إلى تكوين مكون application insights.
Microsoft.OperationalInsights/workspaces/write إنشاء مساحة عمل جديدة أو ارتباطات إلى مساحة عمل موجودة من خلال توفير معرف العميل من مساحة العمل الموجودة.

السيناريو: مشتري وحدة الإنتاجية المتوفرة

يحدد المثال التالي دورا مخصصا يمكنه شراء وحدات معدل النقل المتوفرة (PTU).

{
    "properties": {
        "roleName": "PTU procurer",
        "description": "Custom role to purchase PTU",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.CognitiveServices/locations/commitmentTiers/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.Features/features/read",
                    "Microsoft.Features/providers/features/read",
                    "Microsoft.Features/providers/features/register/action",
                    "Microsoft.Insights/logDefinitions/read",
                    "Microsoft.Insights/metricdefinitions/read",
                    "Microsoft.Insights/metrics/read",
                    "Microsoft.ResourceHealth/availabilityStatuses/read",
                    "Microsoft.Resources/deployments/operations/read",
                    "Microsoft.Resources/subscriptions/operationresults/read",
                    "Microsoft.Resources/subscriptions/read",
                    "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                    "Microsoft.Resources/subscriptions/resourceGroups/read"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

السيناريو: واجهة برمجة تطبيقات مساعدي Azure OpenAI

يحدد المثال التالي دورا لمطور يستخدم مساعدي Azure OpenAI.

{
    "id": "",
    "properties": {
        "roleName": "CognitiveServices OpenAI Assistants API Developer",
        "description": "Custom role to work with AOAI Assistants API",
        "assignableScopes": [
            "<your-scope>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/steps/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

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