أدوار Azure المخصصة
إذا لم تلبِّ الأدوار المضمنة في Azureالاحتياجات المحددة لمؤسستك، يمكنك إنشاء أدوار مخصصة خاصة بك. تماماً مثل الأدوار المضمنة، يمكنك تعيين أدوار مخصصة للمستخدمين والمجموعات ومديري الخدمات في مجموعة الإدارة والاشتراك ونطاقات مجموعة الموارد.
يمكن مشاركة الأدوار المخصصة بين الاشتراكات التي تثق في نفس مستأجر Microsoft Entra. هناك حد 5000 دور مخصص لكل مستأجر. (بالنسبة إلى Microsoft Azure المشغل بواسطة 21Vianet، الحد الأقصى هو 2000 دور مخصص.) يمكن إنشاء أدوار مخصصة باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.
خطوات إنشاء دور مخصص
فيما يلي الخطوات الأساسية لإنشاء دور مخصص.
حدد الأذونات التي تحتاجها.
عند إنشاء دور مخصص، تحتاج إلى معرفة الإجراءات المتوفرة لتعريف أذوناتك. عادة ما تبدأ بدور مضمن موجود ثم تقوم بتعديله وفقا لاحتياجاتك. ستضيف الإجراءات إلى
Actions
أوNotActions
خصائص تعريف الدور. إذا كان لديك إجراءات بيانات، فستضيفها إلى الخصائصDataActions
أوNotDataActions
.لمزيد من المعلومات، راجع القسم التالي كيفية تحديد الأذونات التي تحتاجها.
حدد الطريقة التي تريد بها إنشاء الدور المخصص.
يمكنك إنشاء أدوار مخصصة باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.
إنشاء الدور المخصص.
أسهل طريقة هي استخدام مدخل Microsoft Azure. للحصول على خطوات حول كيفية إنشاء دور مخصص باستخدام مدخل Microsoft Azure، راجع إنشاء أو تحديث أدوار Azure المخصصة باستخدام مدخل Microsoft Azure.
اختبر الدور المخصص.
بمجرد أن يكون لديك دورك المخصص، يجب عليك اختباره للتحقق من أنه يعمل كما تتوقع. إذا كنت بحاجة إلى إجراء تعديلات لاحقا، يمكنك تحديث الدور المخصص.
كيفية تحديد الأذونات التي تحتاجها
لدى Azure آلاف الأذونات التي يمكنك تضمينها في دورك المخصص. فيما يلي بعض الطرق التي يمكن أن تساعدك في تحديد الأذونات التي تريد إضافتها إلى دورك المخصص:
انظر إلى الأدوار المضمنة الموجودة.
قد تحتاج إلى تعديل دور موجود أو دمج الأذونات المستخدمة في أدوار متعددة.
سرد خدمات Azure التي تريد منح حق الوصول إليها.
حدد موفري الموارد الذين يتم تعيينهم إلى خدمات Azure.
تعرض خدمات Azure وظائفها وأذوناتها من خلال موفري الموارد. على سبيل المثال، يوفر موفر موارد Microsoft.Compute موارد الجهاز الظاهري، ويقوم موفر موارد Microsoft.Billing بتوفير موارد الاشتراك والفوترة. يمكن أن تساعدك معرفة موفري الموارد في تضييق نطاق الأذونات التي تحتاجها لدورك المخصص وتحديدها.
عند إنشاء دور مخصص باستخدام مدخل Microsoft Azure، يمكنك أيضا تحديد موفري الموارد عن طريق البحث عن الكلمات الأساسية. يتم وصف وظيفة البحث هذه في إنشاء أو تحديث أدوار Azure المخصصة باستخدام مدخل Microsoft Azure.
ابحث في الأذونات المتوفرة للعثور على الأذونات التي تريد تضمينها.
عند إنشاء دور مخصص باستخدام مدخل Microsoft Azure، يمكنك البحث عن الأذونات حسب الكلمة الأساسية. على سبيل المثال، يمكنك البحث عن أذونات الجهاز الظاهري أو الفوترة . يمكنك أيضا تنزيل كافة الأذونات كملف CSV ثم البحث في هذا الملف. يتم وصف وظيفة البحث هذه في إنشاء أو تحديث أدوار Azure المخصصة باستخدام مدخل Microsoft 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"
}
]
خصائص الدور المخصصة
يصف الجدول التالي معنى خصائص الدور المخصصة.
الخاصية | المطلوب | نوع | الوصف |
---|---|---|---|
Name roleName |
نعم | السلسلة | اسم العرض للدور المخصص. بينما تعريف الدور هو مجموعة إدارة أو مورد على مستوى الاشتراك، يمكن استخدام تعريف دور في اشتراكات متعددة تشترك في نفس مستأجر Microsoft Entra. يجب أن يكون اسم العرض هذا فريدا في نطاق مستأجر Microsoft Entra. يمكن أن تتضمن أحرفا وأرقاما ومسافات وأحرفا خاصة. الحد الأقصى لعدد الأحرف هو 512. |
Id name |
نعم | السلسلة | المعرف الفريد للدور المخصص. بالنسبة إلى Azure PowerShell وAzure CLI، يتم إنشاء هذا المعرف تلقائيا عند إنشاء دور جديد. |
IsCustom roleType |
نعم | السلسلة | يشير إلى ما إذا كان هذا دورا مخصصا أم لا. تعيين إلى true أو CustomRole للأدوار المخصصة. تعيين إلى false أو BuiltInRole للأدوار المضمنة. |
Description description |
نعم | السلسلة | وصف الدور المخصص. يمكن أن تتضمن أحرفا وأرقاما ومسافات وأحرفا خاصة. الحد الأقصى لعدد الأحرف هو 2048. |
Actions actions |
نعم | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى التحكم التي يسمح الدور بتنفيذها. للمزيد من المعلومات، راجع الإجراءات. |
NotActions notActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى التحكم المستبعدة من المسموح به Actions . لمزيد من المعلومات، راجع NotActions. |
DataActions dataActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى البيانات التي يسمح الدور بتنفيذها على بياناتك داخل هذا الكائن. إذا قمت بإنشاء دور مخصص باستخدام DataActions ، فلا يمكن تعيين هذا الدور في نطاق مجموعة الإدارة. لمزيد من المعلومات، راجع DataActions. |
NotDataActions notDataActions |
لا | سلسلة[] | صفيف من السلاسل التي تحدد إجراءات مستوى البيانات المستبعدة من المسموح به DataActions . لمزيد من المعلومات، راجع NotDataActions. |
AssignableScopes assignableScopes |
نعم | سلسلة[] | صفيف من السلاسل التي تحدد النطاقات التي يتوفر الدور المخصص للتعيين. الحد الأقصى لعدد AssignableScopes هو 2000. لمزيد من المعلومات، راجع AssignableScopes. |
سلاسل الأذونات غير حساسة لحالة الأحرف. عند إنشاء أدوارك المخصصة، يكون الاصطلاح هو مطابقة الحالة التي تراها للأذونات في عمليات موفر موارد Azure.
أذونات حرف البدل
Actions
DataActions
و NotActions
و تدعم 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/*
إشعار
يوصى بتحديد Actions
حرف DataActions
البدل (*
) بدلا من استخدامه بشكل صريح. الوصول الإضافي والأذونات الممنوحة من خلال المستقبل Actions
أو DataActions
قد تكون سلوكا غير مرغوب فيه باستخدام حرف البدل.
من يمكنه إنشاء دور مخصص أو حذفه أو تحديثه أو عرضه
تماما مثل الأدوار المضمنة، تحدد الخاصية AssignableScopes
النطاقات التي يتوفر فيها الدور للتعيين. AssignableScopes
تتحكم خاصية دور مخصص أيضا في من يمكنه إنشاء الدور المخصص أو حذفه أو تحديثه أو عرضه.
مهمة | الإجراء | الوصف |
---|---|---|
إنشاء/حذف دور مخصص | Microsoft.Authorization/ roleDefinitions/write |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء على جميع AssignableScopes الأدوار المخصصة إنشاء (أو حذف) أدوار مخصصة لاستخدامها في تلك النطاقات. على سبيل المثال، المالكون ومسؤولو وصول المستخدم لمجموعات الإدارة والاشتراكات ومجموعات الموارد. |
تحديث الدور المخصص | Microsoft.Authorization/ roleDefinitions/write |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء على جميع AssignableScopes الأدوار المخصصة تحديث الأدوار المخصصة في تلك النطاقات. على سبيل المثال، المالكون ومسؤولو وصول المستخدم لمجموعات الإدارة والاشتراكات ومجموعات الموارد. |
عرض دور مخصص | Microsoft.Authorization/ roleDefinitions/read |
يمكن للمستخدمين الذين تم منحهم هذا الإجراء في نطاق عرض الأدوار المخصصة المتوفرة للتعيين في هذا النطاق. تسمح جميع الأدوار المضمنة بتوفر الأدوار المُخصصة للتعيين. |
إشعار
حتى إذا تمت إعادة تسمية دور، لا يتغير معرف الدور. إذا كنت تستخدم برامج نصية أو أتمتة لإنشاء تعيينات الأدوار الخاصة بك، فمن أفضل الممارسات استخدام معرف الدور الفريد بدلا من اسم الدور. لذلك، إذا تمت إعادة تسمية دور، فمن المرجح أن تعمل البرامج النصية الخاصة بك.
البحث عن تعيينات الأدوار لحذف دور مخصص
قبل أن تتمكن من حذف دور مخصص، يجب إزالة أي تعيينات دور تستخدم الدور المخصص. إذا حاولت حذف دور مخصص مع تعيينات الدور، فستتلقى الرسالة: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments)
.
فيما يلي خطوات للمساعدة في العثور على تعيينات الدور قبل حذف دور مخصص:
- سرد تعريف الدور المخصص.
- في قسم AssignableScopes ، احصل على مجموعات الإدارة والاشتراكات ومجموعات الموارد.
- تكرار وسرد
AssignableScopes
تعيينات الدور. - إزالة تعيينات الدور التي تستخدم الدور المخصص.
- إذا كنت تستخدم Microsoft Entra إدارة الهويات المتميزة، فقم بإزالة تعيينات الأدوار المخصصة المؤهلة.
- احذف الدور المخصص.
للحصول على معلومات حول كيفية العثور على أدوار مخصصة غير مستخدمة، راجع العرض - لا يمكن إنشاء المزيد من تعريفات الأدوار.
حدود الدور المخصصة
تصف القائمة التالية حدود الأدوار المخصصة.
- يمكن أن يكون لكل مستأجر ما يصل إلى 5000 دور مخصص.
- يمكن أن يكون ل Microsoft Azure المشغل بواسطة 21Vianet ما يصل إلى 2000 دور مخصص لكل مستأجر.
- لا يمكنك التعيين
AssignableScopes
إلى النطاق الجذر ("/"
). - لا يمكنك استخدام أحرف البدل (
*
) فيAssignableScopes
. يساعد تقييد حرف البدل هذا على ضمان عدم تمكن المستخدم من الحصول على حق الوصول إلى نطاق عن طريق تحديث تعريف الدور. - يمكنك الحصول على حرف بدل واحد فقط في سلسلة إجراء.
- يمكنك تعريف مجموعة إدارة واحدة فقط في
AssignableScopes
دور مخصص. - لا يتحقق Azure Resource Manager من صحة وجود مجموعة الإدارة في تعريف
AssignableScopes
الدور . - لا يمكن تعيين أدوار مخصصة مع
DataActions
في نطاق مجموعة الإدارة. - يمكنك إنشاء دور مخصص مع
DataActions
ومجموعة إدارة واحدة فيAssignableScopes
. لا يمكنك تعيين الدور المخصص في نطاق مجموعة الإدارة نفسها؛ ومع ذلك، يمكنك تعيين الدور المخصص في نطاق الاشتراكات داخل مجموعة الإدارة. يمكن أن يكون هذا مفيدا إذا كنت بحاجة إلى إنشاء دور مخصص واحد معDataActions
الذي يحتاج إلى تعيينه في اشتراكات متعددة، بدلا من إنشاء دور مخصص منفصل لكل اشتراك.
لمزيد من المعلومات حول الأدوار المخصصة ومجموعات الإدارة، راجع ما هي مجموعات إدارة 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
لإنشاء دور مخصص أو تحديثه باستخدام واجهة برمجة تطبيقات REST، يجب توفير الإدخال التالي. هذا التنسيق هو نفس التنسيق الذي يتم إنشاؤه عند إنشاء دور مخصص باستخدام مدخل Microsoft 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": ""
}