أدوار Azure المخصصة

إذا لم تلبِّ الأدوار المضمنة في Azureالاحتياجات المحددة لمؤسستك، يمكنك إنشاء أدوار مخصصة خاصة بك. تماماً مثل الأدوار المضمنة، يمكنك تعيين أدوار مخصصة للمستخدمين والمجموعات ومديري الخدمات في مجموعة الإدارة والاشتراك ونطاقات مجموعة الموارد.

يمكن مشاركة الأدوار المخصصة بين الاشتراكات التي تثق في نفس مستأجر Microsoft Entra. هناك حد 5000 دور مخصص لكل مستأجر. (بالنسبة إلى Microsoft Azure المشغل بواسطة 21Vianet، الحد الأقصى هو 2000 دور مخصص.) يمكن إنشاء أدوار مخصصة باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.

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

فيما يلي الخطوات الأساسية لإنشاء دور مخصص.

  1. حدد الأذونات التي تحتاجها.

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

    لمزيد من المعلومات، راجع القسم التالي كيفية تحديد الأذونات التي تحتاجها.

  2. حدد الطريقة التي تريد بها إنشاء الدور المخصص.

    يمكنك إنشاء أدوار مخصصة باستخدام مدخل Microsoft Azure أو Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.

  3. إنشاء الدور المخصص.

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

  4. اختبر الدور المخصص.

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

كيفية تحديد الأذونات التي تحتاجها

لدى Azure آلاف الأذونات التي يمكنك تضمينها في دورك المخصص. فيما يلي بعض الطرق التي يمكن أن تساعدك في تحديد الأذونات التي تريد إضافتها إلى دورك المخصص:

  • انظر إلى الأدوار المضمنة الموجودة.

    قد تحتاج إلى تعديل دور موجود أو دمج الأذونات المستخدمة في أدوار متعددة.

  • سرد خدمات Azure التي تريد منح حق الوصول إليها.

  • حدد موفري الموارد الذين يتم تعيينهم إلى خدمات Azure.

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

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

    Add permissions pane with resource provider

  • ابحث في الأذونات المتوفرة للعثور على الأذونات التي تريد تضمينها.

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

    Add permissions list

مثال دور مخصص

يوضح ما يلي شكل الدور المخصص كما هو معروض باستخدام 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.

أذونات حرف البدل

ActionsDataActionsو 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 قد تكون سلوكا غير مرغوب فيه باستخدام حرف البدل.

يمكن روبوت Who إنشاء دور مخصص أو حذفه أو تحديثه أو عرضه

تماما مثل الأدوار المضمنة، تحدد الخاصية AssignableScopes النطاقات التي يتوفر فيها الدور للتعيين. AssignableScopes تتحكم خاصية دور مخصص أيضا في من يمكنه إنشاء الدور المخصص أو حذفه أو تحديثه أو عرضه.

مهمة الإجراء ‏‏الوصف
إنشاء/حذف دور مخصص Microsoft.Authorization/ roleDefinitions/write يمكن للمستخدمين الذين تم منحهم هذا الإجراء على جميع AssignableScopes الأدوار المخصصة إنشاء (أو حذف) أدوار مخصصة لاستخدامها في تلك النطاقات. على سبيل المثال، المالكون ووصول المستخدم مسؤول istrators لمجموعات الإدارة والاشتراكات ومجموعات الموارد.
تحديث الدور المخصص Microsoft.Authorization/ roleDefinitions/write يمكن للمستخدمين الذين تم منحهم هذا الإجراء على جميع AssignableScopes الأدوار المخصصة تحديث الأدوار المخصصة في تلك النطاقات. على سبيل المثال، المالكون ووصول المستخدم مسؤول istrators لمجموعات الإدارة والاشتراكات ومجموعات الموارد.
عرض دور مخصص Microsoft.Authorization/ roleDefinitions/read يمكن للمستخدمين الذين تم منحهم هذا الإجراء في نطاق عرض الأدوار المخصصة المتوفرة للتعيين في هذا النطاق. تسمح جميع الأدوار المضمنة بتوفر الأدوار المُخصصة للتعيين.

البحث عن تعيينات الأدوار لحذف دور مخصص

قبل أن تتمكن من حذف دور مخصص، يجب إزالة أي تعيينات دور تستخدم الدور المخصص. إذا حاولت حذف دور مخصص مع تعيينات الدور، فستتلقى الرسالة: There are existing role assignments referencing role (code: RoleDefinitionHasAssignments).

فيما يلي خطوات للمساعدة في العثور على تعيينات الدور قبل حذف دور مخصص:

حدود الدور المخصصة

تصف القائمة التالية حدود الأدوار المخصصة.

  • يمكن أن يكون لكل مستأجر ما يصل إلى 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": ""
}

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