مشاركة عبر


فهم نطاق Azure RBAC

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

مستويات النطاق

في Azure، يمكنك تحديد نطاق على أربعة مستويات: مجموعة الإدارة والاشتراك ومجموعة الموارد والموارد. تُنظم النطاقات على أساس العلاقات الأصل-الفرعي. يجعل كل مستوى من التدرج الهرمي النطاق أكثر تحديدًا. يُمكنك تعيين أدوار على جميع مستويات النطاق. يقرر المستوى الذي تحدده مدى تطبيق الدور. ترث المستويات الأدنى الإعدادات من المستويات الأعلى.

رسم تخطيطي لنطاق تعيين دور.

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

رسم تخطيطي لمجموعة الإدارة والتسلسل الهرمي للاشتراك.

تنسيق النطاق

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

يتكون النطاق من سلسلة من المعرفات مفصولة بحرف الشرطة المائلة (/). يمكنك التفكير في هذه السلسلة على أنها تعبر عن التسلسل الهرمي التالي، حيث يكون النص بدون عناصر نائبة ({}) معرفات ثابتة:

/subscriptions
    /{subscriptionId}
        /resourcegroups
            /{resourceGroupName}
                /providers
                    /{providerName}
                        /{resourceType}
                            /{resourceSubType1}
                                /{resourceSubType2}
                                    /{resourceName}
  • {subscriptionId} هو معرف الاشتراك المراد استخدامه (GUID).
  • {resourceGroupName} هو اسم مجموعة الموارد التي تحتوي عليها.
  • {providerName} هو اسم موفر الموارد الذي يعالج المورد، ثم {resourceType}{resourceSubType*} تحديد مستويات أخرى داخل موفر الموارد هذا.
  • {resourceName} هو الجزء الأخير من السلسلة الذي يعرف موردا معينا.

مجموعات الإدارة هي مستوى أعلى من الاشتراكات ونطاقها الأوسع (الأقل تحديدا). تنطبق تعيينات الأدوار على هذا المستوى على الاشتراكات داخل مجموعة الإدارة. يحتوي نطاق مجموعة الإدارة على التنسيق التالي:

/providers
    /Microsoft.Management
        /managementGroups
            /{managementGroupName}

أمثلة النطاق

نطاق مثال
مجموعة الإدارة /providers/Microsoft.Management/managementGroups/marketing-group
الاشتراك /subscriptions/00000000-0000-0000-0000-000000000000
مجموعة الموارد /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/pharma-sales
مورد /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyVirtualNetworkResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVirtualNetwork12345

كيفية تحديد نطاق مورد

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

  • في مدخل Microsoft Azure، افتح المورد ثم انظر إلى الخصائص. يجب أن يسرد المورد معرف المورد حيث يمكنك تحديد النطاق. على سبيل المثال، فيما يلي معرفات الموارد لحساب تخزين.

    لقطة شاشة لمعرفات الموارد لحساب تخزين في مدخل Microsoft Azure.

  • طريقة أخرى هي استخدام مدخل Azure لتعيين دور مؤقتا في نطاق المورد ثم استخدام Azure PowerShell أو Azure CLI لسرد تعيين الدور. في الإخراج، سيتم سرد النطاق كخاصية.

    RoleAssignmentId   : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/pro
                         viders/Microsoft.Authorization/roleAssignments/<roleAssignmentId>
    Scope              : /subscriptions/<subscriptionId>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01
    DisplayName        : User
    SignInName         : user@contoso.com
    RoleDefinitionName : Storage Blob Data Reader
    RoleDefinitionId   : 2a2b9908-6ea1-4ae2-8e65-a410df84e7d1
    ObjectId           : <principalId>
    ObjectType         : User
    CanDelegate        : False
    Description        :
    ConditionVersion   :
    Condition          :
    
    {
        "canDelegate": null,
        "condition": null,
        "conditionVersion": null,
        "description": null,
        "id": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
        "name": "{roleAssignmentId}",
        "principalId": "{principalId}",
        "principalName": "user@contoso.com",
        "principalType": "User",
        "resourceGroup": "test-rg",
        "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
        "roleDefinitionName": "Storage Blob Data Reader",
        "scope": "/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Storage/storageAccounts/azurestorage12345/blobServices/default/containers/blob-container-01",
        "type": "Microsoft.Authorization/roleAssignments"
      }
    

قوالب النطاق وARM

تعيين الدور هو نوع خاص في Azure Resource Manager يسمى مورد ملحق . مورد الامتداد هو مورد يضيف إلى إمكانات مورد آخر. وهي موجودة دائما كملحق (مثل تابع) لمورد آخر. على سبيل المثال، تعيين دور في نطاق الاشتراك هو مورد ملحق للاشتراك. اسم تعيين الدور هو دائما اسم المورد الذي تقوم بتوسيعه بالإضافة إلى /Microsoft.Authorization/roleAssignments/{roleAssignmentId}. عند تعيين الأدوار باستخدام قالب Azure Resource Manager (قالب ARM)، لا تحتاج عادة إلى توفير النطاق. والسبب هو أن حقل النطاق ينتهي دائما بمعرف المورد الذي تقوم بتوسيعه. يمكن تحديد النطاق من معرف تعيين الدور نفسه. يعرض الجدول التالي أمثلة لمعرف تعيين دور والنطاق المقابل:

معرف تعيين الدور نطاق
/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} /subscriptions/{subscriptionId}/resourceGroups/Example-Storage-rg

لمزيد من المعلومات حول النطاق وقوالب ARM، راجع تعيين أدوار Azure باستخدام قوالب Azure Resource Manager. للحصول على قائمة كاملة بأنواع موارد الملحقات، راجع أنواع الموارد التي توسع قدرات الموارد الأخرى.

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