فهم تعيينات دور Azure

تمكنك تعيينات الأدوار من منح حق الوصول الأساسي (مثل مستخدم أو مجموعة أو هوية مدارة أو كيان خدمة) إلى مورد Azure معين. توضح هذه المقالة تفاصيل تعيينات الأدوار.

تعيين الدور

يتم منح الوصول إلى موارد Azure عن طريق إنشاء تعيين دور، ويتم إبطال الوصول عن طريق إزالة تعيين دور.

يحتوي تعيين الدور على العديد من المكونات، بما في ذلك:

  • الأساسي، أو من تم تعيين الدور له.
  • الدور الذي تم تعيينه لهم.
  • النطاق الذي يتم تعيين الدور فيه.
  • اسم تعيين الدور ووصف يساعدك على شرح سبب تعيين الدور.

على سبيل المثال، يمكنك استخدام Azure RBAC لتعيين أدوار مثل:

  • لدى المستخدم سالي حق وصول المالك إلى حساب التخزين contoso123 في مجموعة الموارد ContosoStorage.
  • يتمتع كل شخص في مجموعة Cloud مسؤول istrators في Microsoft Entra ID بإمكانية وصول القارئ إلى جميع الموارد في مجموعة الموارد ContosoStorage.
  • يسمح للهوية المدارة المقترنة بتطبيق بإعادة تشغيل الأجهزة الظاهرية ضمن اشتراك Contoso.

يوضح ما يلي مثالا على الخصائص في تعيين دور عند عرضه باستخدام Azure PowerShell:

{
  "RoleAssignmentName": "00000000-0000-0000-0000-000000000000",
  "RoleAssignmentId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "Scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "DisplayName": "User Name",
  "SignInName": "user@contoso.com",
  "RoleDefinitionName": "Contributor",
  "RoleDefinitionId": "b24988ac-6180-42a0-ab88-20f7382dd24c",
  "ObjectId": "22222222-2222-2222-2222-222222222222",
  "ObjectType": "User",
  "CanDelegate": false,
  "Description": null,
  "ConditionVersion": null,
  "Condition": null
}

يوضح ما يلي مثالا على الخصائص في تعيين دور عند عرضه باستخدام Azure CLI أو واجهة برمجة تطبيقات REST:

{
  "canDelegate": null,
  "condition": null,
  "conditionVersion": null,
  "description": null,
  "id": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "principalId": "22222222-2222-2222-2222-222222222222",
  "principalName": "user@contoso.com",
  "principalType": "User",
  "roleDefinitionId": "/subscriptions/11111111-1111-1111-1111-111111111111/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c",
  "roleDefinitionName": "Contributor",
  "scope": "/subscriptions/11111111-1111-1111-1111-111111111111",
  "type": "Microsoft.Authorization/roleAssignments"
}

يصف الجدول التالي معنى خصائص تعيين الدور.

الخاصية ‏‏الوصف
RoleAssignmentName
name
اسم تعيين الدور، وهو معرف فريد عمومي (GUID).
RoleAssignmentId
id
المعرف الفريد لتعيين الدور، والذي يتضمن الاسم.
Scope
scope
معرف مورد Azure الذي يتم تحديد نطاق تعيين الدور له.
RoleDefinitionId
roleDefinitionId
المعرف الفريد للدور.
RoleDefinitionName
roleDefinitionName
اسم الدور.
ObjectId
principalId
معرف كائن Microsoft Entra للمدير الذي لديه الدور المعين.
ObjectType
principalType
نوع كائن Microsoft Entra الذي يمثله الأساسي. تتضمن Userالقيم الصالحة و Groupو.ServicePrincipal
DisplayName بالنسبة لتعيينات الأدوار للمستخدمين، اسم العرض للمستخدم.
SignInName
principalName
الاسم الأساسي الفريد (UPN) للمستخدم، أو اسم التطبيق المقترن بكيان الخدمة.
Description
description
وصف تعيين الدور.
Condition
condition
عبارة الشرط التي تم إنشاؤها باستخدام إجراء واحد أو أكثر من تعريف الدور والسمات.
ConditionVersion
conditionVersion
رقم إصدار الشرط. الافتراضيات إلى 2.0 وهي الإصدار الوحيد المدعوم.
CanDelegate
canDelegate
غير مطبّق.

Scope

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

تلميح

استخدم أصغر نطاق تحتاج إليه لتلبية متطلباتك.

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

لمزيد من المعلومات حول النطاق، انظر فهم النطاق.

الدور المراد تعيينه

يرتبط تعيين الدور بتعريف دور. يحدد تعريف الدور الأذونات التي يجب أن يكون لدى الأساسي ضمن نطاق تعيين الدور.

يمكنك تعيين تعريف دور مضمن أو تعريف دور مخصص. عند إنشاء تعيين دور، تتطلب بعض الأدوات استخدام معرف تعريف الدور بينما تسمح لك الأدوات الأخرى بتوفير اسم الدور.

لمزيد من المعلومات حول تعريفات الأدوار، راجع فهم تعريفات الأدوار.

أساسي

تتضمن الأساسيات المستخدمين ومجموعات الأمان والهويات المدارة وهويات حمل العمل وكيانات الخدمة. يتم إنشاء الأساسيات وإدارتها في مستأجر Microsoft Entra. يمكنك تعيين دور لأي كيان. استخدم معرف كائن معرف Microsoft Entra لتعريف الأساسي الذي تريد تعيين الدور إليه.

عند إنشاء تعيين دور باستخدام Azure PowerShell أو Azure CLI أو Bicep أو بنية أساسية أخرى كتقنيات التعليمات البرمجية (IaC)، فإنك تحدد النوع الأساسي. تتضمن الأنواع الأساسية المستخدم والمجموعة وServicePrincipal. من المهم تحديد النوع الأساسي الصحيح. وإلا، قد تحصل على أخطاء توزيع متقطعة، خاصة عند العمل مع كيانات الخدمة والهويات المُدارة.

الاسم

يجب أن يكون اسم مورد تعيين الدور معرفًا فريدًا عالميًا (GUID).

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

تلميح

عند إنشاء تعيين دور باستخدام مدخل Azure أو Azure PowerShell أو Azure CLI، تمنح عملية الإنشاء تعيين الدور اسما فريدا لك تلقائيا.

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

سلوك حذف الموارد

عند حذف مستخدم أو مجموعة أو كيان خدمة أو هوية مدارة من معرف Microsoft Entra، من الممارسات الجيدة حذف أي تعيينات أدوار. لا يتم حذفها تلقائيًا. أي تعيينات دور تشير إلى معرف أساسي محذوف تصبح غير صالحة.

إذا حاولت إعادة استخدام اسم تعيين دور لتعيين دور آخر، سيفشل النشر. من المرجح أن تحدث هذه المشكلة عند استخدام Bicep أو قالب Azure Resource Manager (قالب ARM) لنشر تعيينات الدور، لأنه يجب عليك تعيين اسم تعيين الدور بشكل صريح عند استخدام هذه الأدوات. لحل هذا السلوك، يجب إما إزالة تعيين الدور القديم قبل إعادة إنشائه، أو التأكد من استخدام اسم فريد عند توزيع تعيين دور جديد.

‏‏الوصف

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

الشروط

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

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

عادة ما تقوم بإنشاء شروط باستخدام محرر شرط مرئي، ولكن إليك ما يبدو عليه مثال الشرط في التعليمات البرمجية:

((!(ActionMatches{'Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read'} AND NOT SubOperationMatches{'Blob.List'})) OR (@resource[Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags:Project<$key_case_sensitive$>] StringEqualsIgnoreCase 'Cascade'))

يسمح الشرط السابق للمستخدمين بقراءة الكائنات الثنائية كبيرة الحجم باستخدام مفتاح علامة فهرس كائن ثنائي كبير الحجم ل Project وقيمة تتالي.

لمزيد من المعلومات حول الشروط، راجع ما هو التحكم في الوصول المستند إلى سمة Azure (Azure ABAC)؟

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