فهم نطاق Azure RBAC

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

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

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

Scope for a role assignment

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

Management group and subscription hierarchy

تنسيق النطاق

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

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

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

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

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

أمثلة على النطاق

النطاق مثال
مجموعة الإدارة /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

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

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

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

    Resource IDs for a storage account in Azure portal

  • هناك طريقة أخرى تتمثل في استخدام مدخل 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. للحصول على قائمة كاملة بأنواع موارد الملحق، راجع أنواع الموارد التي توسع قدرات الموارد الأخرى.

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