⁧⁩أدوار مُخصصة في Azure⁧⁩

هام

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

يحتوي 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
نعم سلسلة اسم العرض للدور المخصص. في حين أن تعريف الدور هو مجموعة إدارة أو مورد على مستوى الاشتراك، يمكن استخدام تعريف الدور في اشتراكات متعددة تشترك في نفس دليل Azure AD. يجب أن يكون اسم العرض هذا فريدا في نطاق دليل Azure AD. يمكن أن تتضمن الحروف والأرقام والمسافات والأحرف الخاصة. الحد الأقصى لعدد الأحرف هو 128.
Id
name
نعم سلسلة المعرف الفريد للدور المخصص. بالنسبة إلى Azure PowerShell وAzure CLI، يتم إنشاء هذا المعرف تلقائيا عند إنشاء دور جديد.
IsCustom
roleType
نعم سلسلة يشير إلى ما إذا كان هذا دورا مخصصا أم لا. قم بالتعيين إلى true الأدوار المخصصة أو CustomRole لها. قم بالتعيين إلى false الأدوار المضمنة أو BuiltInRole لأجلها.
Description
description
نعم سلسلة وصف الدور المخصص. يمكن أن تتضمن الحروف والأرقام والمسافات والأحرف الخاصة. الحد الأقصى لعدد الأحرف هو 1024.
Actions
actions
نعم String[] مجموعة من السلاسل التي تحدد إجراءات مستوى التحكم التي يسمح الدور بتنفيذها. لمزيد من المعلومات، راجع الإجراءات.
NotActions
notActions
لا سلسلة[] صفيف من السلاسل التي تحدد إجراءات مستوى التحكم المستبعدة من المسموح به Actions. لمزيد من المعلومات، راجع NotActions.
DataActions
dataActions
لا سلسلة[] صفيف من السلاسل التي تحدد إجراءات مستوى البيانات التي يسمح الدور بتنفيذها على بياناتك داخل هذا الكائن. إذا قمت بإنشاء دور مخصص باستخدام DataActions، فلا يمكن تعيين هذا الدور في نطاق مجموعة الإدارة. لمزيد من المعلومات، راجع إجراءات البيانات.
NotDataActions
notDataActions
لا سلسلة[] صفيف من السلاسل التي تحدد إجراءات مستوى البيانات المستبعدة من المسموح به DataActions. لمزيد من المعلومات، راجع NotDataActions.
AssignableScopes
assignableScopes
نعم 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": ""
}

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