أدوار مُخصصة في Azure
هام
إضافة مجموعة إدارة إلى AssignableScopes قيد المعاينة حاليًا
يتم توفير إصدار المعاينة هذا بدون اتفاقية مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة
لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
إذا لم تلبِّ الأدوار المضمنة في Azureالاحتياجات المحددة لمؤسستك، يمكنك إنشاء أدوار مخصصة خاصة بك. تماما مثل الأدوار المضمنة، يمكنك تعيين أدوار مخصصة للمستخدمين والمجموعات ومديري الخدمات في مجموعة الإدارة (في المعاينة فقط) والاشتراك ونطاقات مجموعة الموارد.
يمكن مشاركة الأدوار المخصصة بين الاشتراكات التي تثق في دليل Azure AD نفسه. هناك حد أقصى يبلغ 5000 دور مخصص لكل دليل. (بالنسبة إلى Azure Germany وAzure China 21Vianet، الحد الأقصى هو 2000 دور مخصص.) يمكن إنشاء أدوار مخصصة باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.
خطوات إنشاء دور مخصص
فيما يلي الخطوات الأساسية لإنشاء دور مخصص.
حدد الأذونات التي تحتاجها.
عند إنشاء دور مخصص، تحتاج إلى معرفة الإجراءات المتوفرة لتحديد الأذونات الخاصة بك. عادة، تبدأ بدور مضمن موجود ثم تقوم بتعديله وفقا لاحتياجاتك. ستضيف الإجراءات إلى
Actionsتعريف الدور أوNotActionsخصائصه. إذا كانت لديك إجراءات بيانات، فستضيفها إلى الخصائص أوNotDataActionsالخصائصDataActions.لمزيد من المعلومات، راجع القسم التالي كيفية تحديد الأذونات التي تحتاجها.
حدد الطريقة التي تريد بها إنشاء الدور المخصص.
يمكنك إنشاء أدوار مخصصة باستخدام مدخل Azure أو Azure PowerShell أو AzureCLIأوواجهة برمجة تطبيقات REST.
إنشاء الدور المخصص.
أسهل طريقة هي استخدام مدخل Azure. للحصول على خطوات حول كيفية إنشاء دور مخصص باستخدام مدخل Azure، راجع إنشاء أدوار مخصصة ل Azure أو تحديثها باستخدام مدخل Azure.
اختبر الدور المخصص.
بمجرد حصولك على دورك المخصص ، يجب عليك اختباره للتحقق من أنه يعمل كما تتوقع. إذا كنت بحاجة إلى إجراء تعديلات لاحقا، يمكنك تحديث الدور المخصص.
كيفية تحديد الأذونات التي تحتاجها
يحتوي Azure على آلاف الأذونات التي يمكنك تضمينها في دورك المخصص. فيما يلي بعض الطرق التي يمكن أن تساعدك في تحديد الأذونات التي تريد إضافتها إلى دورك المخصص:
انظر إلى الأدوار المضمنة الموجودة.
قد ترغب في تعديل دور موجود أو دمج الأذونات المستخدمة في أدوار متعددة.
أدرج خدمات Azure التي تريد منحها حق الوصول إليها.
تحديد موفري الموارد الذين يعينون إلى خدمات Azure.
تعرض خدمات Azure وظائفها وأذوناتها من خلال موفري الموارد. على سبيل المثال، يوفر موفر موارد Microsoft.Compute موارد الجهاز الظاهري ويوفر موفر موارد Microsoft.Billing موارد الاشتراك والفوترة. يمكن أن تساعدك معرفة موفري الموارد في تضييق نطاق الأذونات التي تحتاجها لدورك المخصص وتحديدها.
عند إنشاء دور مخصص باستخدام مدخل Azure، يمكنك أيضا تحديد موفري الموارد من خلال البحث عن الكلمات الأساسية. يتم وصف وظيفة البحث هذه في إنشاء أدوار Azure المخصصة أو تحديثها باستخدام مدخل Azure.

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

مثال على دور مخصص
يوضح ما يلي الشكل الذي يبدو عليه الدور المخصص كما هو معروض باستخدام Azure PowerShell بتنسيق JSON. يمكن استخدام هذا الدور المخصص لمراقبة الأجهزة الظاهرية وإعادة تشغيلها.
{
"Name": "Virtual Machine Operator",
"Id": "88888888-8888-8888-8888-888888888888",
"IsCustom": true,
"Description": "Can monitor and restart virtual machines.",
"Actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
]
}
يعرض ما يلي نفس الدور المخصص كما هو معروض باستخدام Azure CLI.
[
{
"assignableScopes": [
"/subscriptions/{subscriptionId1}",
"/subscriptions/{subscriptionId2}",
"/providers/Microsoft.Management/managementGroups/{groupId1}"
],
"description": "Can monitor and restart virtual machines.",
"id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/88888888-8888-8888-8888-888888888888",
"name": "88888888-8888-8888-8888-888888888888",
"permissions": [
{
"actions": [
"Microsoft.Storage/*/read",
"Microsoft.Network/*/read",
"Microsoft.Compute/*/read",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Authorization/*/read",
"Microsoft.ResourceHealth/availabilityStatuses/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Insights/diagnosticSettings/*",
"Microsoft.Support/*"
],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "Virtual Machine Operator",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
خصائص الدور المخصص
يصف الجدول التالي ما تعنيه خصائص الدور المخصص.
| الخاصية | مطلوب | النوع | الوصف |
|---|---|---|---|
NameroleName |
نعم | سلسلة | اسم العرض للدور المخصص. في حين أن تعريف الدور هو مجموعة إدارة أو مورد على مستوى الاشتراك، يمكن استخدام تعريف الدور في اشتراكات متعددة تشترك في نفس دليل Azure AD. يجب أن يكون اسم العرض هذا فريدا في نطاق دليل Azure AD. يمكن أن تتضمن الحروف والأرقام والمسافات والأحرف الخاصة. الحد الأقصى لعدد الأحرف هو 128. |
Idname |
نعم | سلسلة | المعرف الفريد للدور المخصص. بالنسبة إلى Azure PowerShell وAzure CLI، يتم إنشاء هذا المعرف تلقائيا عند إنشاء دور جديد. |
IsCustomroleType |
نعم | سلسلة | يشير إلى ما إذا كان هذا دورا مخصصا أم لا. قم بالتعيين إلى true الأدوار المخصصة أو CustomRole لها. قم بالتعيين إلى false الأدوار المضمنة أو BuiltInRole لأجلها. |
Descriptiondescription |
نعم | سلسلة | وصف الدور المخصص. يمكن أن تتضمن الحروف والأرقام والمسافات والأحرف الخاصة. الحد الأقصى لعدد الأحرف هو 1024. |
Actionsactions |
نعم | String[] | مجموعة من السلاسل التي تحدد إجراءات مستوى التحكم التي يسمح الدور بتنفيذها. لمزيد من المعلومات، راجع الإجراءات. |
NotActionsnotActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى التحكم المستبعدة من المسموح به Actions. لمزيد من المعلومات، راجع NotActions. |
DataActionsdataActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى البيانات التي يسمح الدور بتنفيذها على بياناتك داخل هذا الكائن. إذا قمت بإنشاء دور مخصص باستخدام DataActions، فلا يمكن تعيين هذا الدور في نطاق مجموعة الإدارة. لمزيد من المعلومات، راجع إجراءات البيانات. |
NotDataActionsnotDataActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى البيانات المستبعدة من المسموح به DataActions. لمزيد من المعلومات، راجع NotDataActions. |
AssignableScopesassignableScopes |
نعم | String[] | صفيف من السلاسل التي تحدد النطاقات التي يتوفر فيها الدور المخصص للتعيين. يمكنك تعريف مجموعة إدارة واحدة فقط في AssignableScopes دور مخصص. إضافة مجموعة إدارة إلى AssignableScopes قيد المعاينة حاليًا لمزيد من المعلومات، راجع AssignableScopes. |
سلاسل الأذونات غير حساسة لحالة الأحرف. عند إنشاء أدوارك المخصصة، يجب أن تتطابق الاتفاقية مع الحالة التي تراها للأذونات في عمليات موفر موارد Azure.
أذونات أحرف البدل
Actions، ، NotActionsDataActionsودعم NotDataActions أحرف البدل (*) لتحديد الأذونات. يوسع حرف البدل (*) إذنا لكل ما يطابق سلسلة الإجراءات التي تقدمها. على سبيل المثال، افترض أنك تريد إضافة كافة الأذونات المتعلقة بإدارة تكاليف Azure والصادرات. يمكنك إضافة كل سلاسل الإجراءات التالية:
Microsoft.CostManagement/exports/action
Microsoft.CostManagement/exports/read
Microsoft.CostManagement/exports/write
Microsoft.CostManagement/exports/delete
Microsoft.CostManagement/exports/run/action
بدلا من إضافة كل هذه السلاسل ، يمكنك فقط إضافة سلسلة أحرف بدل. على سبيل المثال، سلسلة أحرف البدل التالية تعادل السلاسل الخمس السابقة. وسيشمل ذلك أيضا أي أذونات تصدير مستقبلية يمكن إضافتها.
Microsoft.CostManagement/exports/*
روبوت Who إنشاء دور مخصص أو حذفه أو تحديثه أو عرضه
تماما مثل الأدوار المضمنة AssignableScopes ، تحدد الخاصية النطاقات التي يتوفر فيها الدور للتعيين. تتحكم AssignableScopes الخاصية الخاصة بدور مخصص أيضا في من يمكنه إنشاء الدور المخصص أو حذفه أو تحديثه أو عرضه.
| المهمة | إجراء | الوصف |
|---|---|---|
| إنشاء/حذف دور مخصص | Microsoft.Authorization/ roleDefinitions/write |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء على كل AssignableScopes الدور المخصص إنشاء (أو حذف) أدوار مخصصة لاستخدامها في هذه النطاقات. على سبيل المثال، المالكونومسؤولو وصول المستخدم لمجموعات الإدارة والاشتراكات ومجموعات الموارد. |
| تحديث الدور المخصص | Microsoft.Authorization/ roleDefinitions/write |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء على كافة AssignableScopes الأدوار المخصصة تحديث الأدوار المخصصة في تلك النطاقات. على سبيل المثال، المالكونومسؤولو وصول المستخدم لمجموعات الإدارة والاشتراكات ومجموعات الموارد. |
| عرض دور مخصص | Microsoft.Authorization/ roleDefinitions/read |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء في نطاق عرض الأدوار المخصصة المتوفرة للتعيين في هذا النطاق. تسمح جميع الأدوار المضمنة بتوفر الأدوار المُخصصة للتعيين. |
حدود الدور المخصصة
تصف القائمة التالية حدود الأدوار المخصصة.
- يمكن أن يكون لكل دليل ما يصل إلى 5000 دور مخصص.
- يمكن أن يكون Azure ألمانيا وAzure الصين 21Vianet ما يصل إلى 2000 الأدوار المخصصة لكل دليل.
- لا يمكنك التعيين
AssignableScopesإلى نطاق الجذر ("/"). - لا يمكنك استخدام أحرف البدل (
*) فيAssignableScopes. يساعد تقييد أحرف البدل هذا على ضمان عدم تمكن المستخدم من الوصول إلى نطاق من خلال تحديث تعريف الدور. - يمكنك تعريف مجموعة إدارة واحدة فقط في
AssignableScopesدور مخصص. إضافة مجموعة إدارة إلى AssignableScopes قيد المعاينة حاليًا - يمكنك الحصول على حرف بدل واحد فقط في سلسلة إجراءات.
- لا يمكن تعيين الأدوار المخصصة في
DataActionsنطاق مجموعة الإدارة. - لا يتحقق Azure Resource Manager من وجود مجموعة الإدارة في نطاق تعريف الدور القابل للتعيين.
لمزيد من المعلومات حول الأدوار المخصصة ومجموعات الإدارة، راجع ما هي مجموعات إدارة Azure؟.
تنسيقات الإدخال والإخراج
لإنشاء دور مخصص باستخدام سطر الأوامر، عادة ما تستخدم JSON لتحديد الخصائص التي تريدها للدور المخصص. اعتمادا على الأدوات التي تستخدمها ، ستبدو تنسيقات الإدخال والإخراج مختلفة قليلا. يسرد هذا القسم تنسيقات الإدخال والإخراج اعتمادا على الأداة.
Azure PowerShell
لإنشاء دور مخصص باستخدام Azure PowerShell، يجب توفير الإدخال التالي.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
لتحديث دور مخصص باستخدام Azure PowerShell، يجب توفير الإدخال التالي. لاحظ أنه Id تمت إضافة مكان الإقامة.
{
"Name": "",
"Id": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
يوضح ما يلي مثالا على الإخراج عند إدراج دور مخصص باستخدام Azure PowerShell والأمر ConvertTo-Json .
{
"Name": "",
"Id": "",
"IsCustom": true,
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
Azure CLI
لإنشاء دور مخصص أو تحديثه باستخدام Azure CLI، يجب توفير الإدخال التالي. هذا التنسيق هو نفس التنسيق عند إنشاء دور مخصص باستخدام Azure PowerShell.
{
"Name": "",
"Description": "",
"Actions": [],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": []
}
يوضح ما يلي مثالا على الإخراج عند إدراج دور مخصص باستخدام Azure CLI.
[
{
"assignableScopes": [],
"description": "",
"id": "",
"name": "",
"permissions": [
{
"actions": [],
"dataActions": [],
"notActions": [],
"notDataActions": []
}
],
"roleName": "",
"roleType": "CustomRole",
"type": "Microsoft.Authorization/roleDefinitions"
}
]
REST API
لإنشاء دور مخصص أو تحديثه باستخدام واجهة برمجة تطبيقات REST، يجب توفير الإدخال التالي. هذا التنسيق هو نفس التنسيق الذي يتم إنشاؤه عند إنشاء دور مخصص باستخدام مدخل Azure.
{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
]
}
}
يوضح ما يلي مثالا على الإخراج عند إدراج دور مخصص باستخدام واجهة برمجة تطبيقات REST.
{
"properties": {
"roleName": "",
"type": "CustomRole",
"description": "",
"assignableScopes": [],
"permissions": [
{
"actions": [],
"notActions": [],
"dataActions": [],
"notDataActions": []
}
],
"createdOn": "",
"updatedOn": "",
"createdBy": "",
"updatedBy": ""
},
"id": "",
"type": "Microsoft.Authorization/roleDefinitions",
"name": ""
}