رفع مستوى الوصول لإدارة جميع اشتراكات Azure ومجموعات الإدارة

بصفتك مسؤولاً عاماً في Azure Active Directory (Azure AD)، قد لا تتمكن من الوصول إلى جميع الاشتراكات ومجموعات الإدارة في دليلك. توضح هذه المقالة الطرق التي يمكنك من خلالها رفع مستوى وصولك إلى جميع الاشتراكات ومجموعات الإدارة.

ملاحظة

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

لماذا تحتاج إلى رفع مستوى وصولك؟

إذا كنت مسؤولا عموميا، فقد تكون هناك أوقات تريد فيها تنفيذ الإجراءات التالية:

  • استعادة الوصول إلى اشتراك Azure أو مجموعة إدارة عندما يفقد مستخدم إمكانية الوصول
  • منح مستخدم آخر أو نفسك حق الوصول إلى اشتراك Azure أو مجموعة إدارة
  • الاطلاع على جميع اشتراكات Azure أو مجموعات الإدارة في مؤسسة
  • السماح لتطبيق التشغيل التلقائي (مثل تطبيق الفواتير أو التدقيق) بالوصول إلى جميع اشتراكات Azure أو مجموعات الإدارة

كيف يعمل الوصول المرتفع؟

تُؤمَّن موارد Azure AD وAzure بصفةٍ مستقلةٍ عن بعضها البعض. أي أن تعيينات دور Azure AD لا تمنح حق الوصول إلى موارد Azure، ولا تمنح تعيينات دور Azure حق الوصول إلى Azure AD. ومع ذلك، إذا كنت مسؤولا عاما في Azure AD، فيمكنك تعيين حق الوصول إلى جميع اشتراكات Azure ومجموعات الإدارة في دليلك. استخدم هذه الإمكانية إذا لم يكن لديك حق الوصول إلى موارد اشتراك Azure، مثل الأجهزة الظاهرية أو حسابات التخزين، وتريد استخدام امتياز المسؤول العمومي للوصول إلى هذه الموارد.

عند رفع مستوى وصولك، سيتم تعيين دور مسؤول وصول المستخدم في Azure في نطاق الجذر (/). يتيح لك ذلك عرض جميع الموارد وتعيين الوصول في أي اشتراك أو مجموعة إدارة في الدليل. يمكن إزالة تعيينات دور مسؤول وصول المستخدم باستخدام Azure PowerShell أو Azure CLI أو REST API.

يجب عليك إلغاء هذا الوصول المرتفع بمجرد إجراء التغييرات التي تحتاج إلى إجرائها في نطاق الجذر.

Elevate access

مدخل Azure

رفع مستوى الوصول إلى مسؤول عام

اتبع هذه الخطوات لرفع الوصول لمسؤول عام باستخدام مدخل Azure.

  1. سجل الدخول إلى مدخل Azure أو مركز إدارة Azure Active Directory كمسؤول عمومي.

    إذا كنت تستخدم Azure AD إدارة الهويات المتميزة، فقم بتنشيط تعيين دور المسؤول العمومي.

  2. فتح Azure Active Directory.

  3. تحت إدارة، حدد الخصائص.

    Select Properties for Azure Active Directory properties - screenshot

  4. ضمن Access management for Azure resources، عين زر التبديل إلى Yes.

    Access management for Azure resources - screenshot

    عند تعيين التبديل إلى نعم، يتم تعيين دور "مسؤول وصول المستخدم" في Azure RBAC في نطاق الجذر (/). يمنحك هذا إذناً لتعيين الأدوار في جميع اشتراكات Azure ومجموعات الإدارة المرتبطة بدليل Azure AD هذا. إمكانية التبديل هذه متاحة فقط للمستخدمين الذين عُين إليهم دور المسؤول العام لهم في Azure AD.

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

    ملاحظة

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

  5. انقر على Save لحفظ إعداداتك.

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

  6. تسجيل الخروج وإعادة تسجيل الدخول لتحديث وصولك.

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

    Subscription role assignments with root scope - screenshot

  7. باشر بإجراء التغييرات التي تريد إجراؤها عند الوصول المرتفع.

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

  8. نفذ الخطوات الواردة في القسم التالي لإزالة الوصول المرتفع.

إزالة الوصول المرتفع

لإزالة تعيين دور "مسؤول وصول المستخدم" في نطاق الجذر (/)، اتبع الخطوات التالية.

  1. بادر بتسجيل الدخول باعتبارك نفس المستخدم الذي اُستخدِم لرفع مستوى الوصول.

  2. في قائمة التنقل، انقر فوق Azure Active Directory ثم انقر فوق Properties.

  3. عين زر تبديل Access management for Azure resources، مرةً أخرى إلى No. نظراً لأن هذا إعداد لكل مستخدم، يجب أن تسجل الدخول باعتبارك نفس المستخدم الذي اُستخدِم لرفع مستوى الوصول.

    إذا حاولت إزالة تعيين دور مسؤول وصول المستخدم في جزء التحكم بالوصول (IAM)، فسترى الرسالة التالية. لإزالة تعيين الدور، يجب تعيين زر التبديل مرةً أخرى إلى No أو استخدم Azure PowerShell أو Azure CLI أو واجهة برمجة تطبيقات REST.

    Remove role assignments with root scope

  4. تسجيل الخروج بصفة مسؤول عام.

    إذا كنت تستخدم إدارة الهويات المتميزة، فقم بإلغاء تنشيط تعيين دور المسؤول العمومي.

    ملاحظة

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

Azure PowerShell

ملاحظة

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

تعيين دور القائمة في نطاق الجذر (/)

لإدراج تعيين دور "مسؤول وصول المستخدم" لمستخدم في نطاق الجذر (/)، استخدم الأمر Get-AzRoleAssignment .

Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
  -and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId   : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /
DisplayName        : username
SignInName         : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId   : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : User
CanDelegate        : False

إزالة الوصول المرتفع

لإزالة تعيين دور "مسؤول وصول المستخدم" لنفسك أو لمستخدم آخر في نطاق الجذر (/)، اتبع الخطوات التالية.

  1. سجل الدخول كمستخدم يمكنه إزالة الوصول المرتفع. يمكن أن يكون هذا هو نفس المستخدم الذي تم استخدامه لرفع مستوى الوصول أو مسؤول عمومي آخر لديه وصول مرتفع في نطاق الجذر.

  2. استخدم الأمر إزالة-AzRoleAssignment لإزالة تعيين دور مسؤول وصول المستخدم.

    Remove-AzRoleAssignment -SignInName <username@example.com> `
      -RoleDefinitionName "User Access Administrator" -Scope "/"
    

Azure CLI

رفع مستوى الوصول إلى مسؤول عام

اتبع الخطوات الأساسية التالية لرفع مستوى الوصول لمسؤول عمومي باستخدام Azure CLI.

  1. استخدم الأمر az rest لاستدعاء elevateAccess نقطة النهاية، والذي يمنحك دور مسؤول وصول المستخدم في نطاق الجذر (/).

    az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
    
  2. باشر بإجراء التغييرات التي تريد إجراؤها عند الوصول المرتفع.

    للحصول على معلومات حول تعيين الأدوار، راجع تعيين أدوار Azure باستخدام Azure CLI.

  3. نفذ الخطوات الواردة في قسم لاحق لإزالة الوصول المرتفع.

تعيين دور القائمة في نطاق الجذر (/)

لإدراج تعيين دور "مسؤول وصول المستخدم" لمستخدم في نطاق الجذر (/)، استخدم الأمر "قائمة تعيين دور az ".

az role assignment list --role "User Access Administrator" --scope "/"
[
  {
    "canDelegate": null,
    "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
    "name": "11111111-1111-1111-1111-111111111111",
    "principalId": "22222222-2222-2222-2222-222222222222",
    "principalName": "username@example.com",
    "principalType": "User",
    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
    "roleDefinitionName": "User Access Administrator",
    "scope": "/",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]

إزالة الوصول المرتفع

لإزالة تعيين دور "مسؤول وصول المستخدم" لنفسك أو لمستخدم آخر في نطاق الجذر (/)، اتبع الخطوات التالية.

  1. سجل الدخول كمستخدم يمكنه إزالة الوصول المرتفع. يمكن أن يكون هذا هو نفس المستخدم الذي تم استخدامه لرفع مستوى الوصول أو مسؤول عمومي آخر لديه وصول مرتفع في نطاق الجذر.

  2. استخدم الأمر حذف تعيين دور az لإزالة تعيين دور مسؤول وصول المستخدم.

    az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
    

REST API

رفع مستوى الوصول إلى مسؤول عام

استخدم الخطوات الأساسية التالية لرفع مستوى الوصول لمسؤول عمومي باستخدام واجهة برمجة تطبيقات REST.

  1. باستخدام REST ، اتصل elevateAccess، والذي يمنحك دور مسؤول وصول المستخدم في نطاق الجذر (/).

    POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
    
  2. باشر بإجراء التغييرات التي تريد إجراؤها عند الوصول المرتفع.

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

  3. نفذ الخطوات الواردة في قسم لاحق لإزالة الوصول المرتفع.

سرد تعيينات الأدوار في نطاق الجذر (/)

يمكنك سرد كافة تعيينات الأدوار لمستخدم في نطاق الجذر (/).

  • اتصل ب GET roleAssignments حيث {objectIdOfUser} يوجد معرف الكائن للمستخدم الذي تريد استرداد تعيينات دوره.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter=principalId+eq+'{objectIdOfUser}'
    

قائمة برفض التعيينات في نطاق الجذر (/)

يمكنك سرد كافة تعيينات الرفض لمستخدم في نطاق الجذر (/).

  • اتصل ب GET denyAssignments حيث {objectIdOfUser} يوجد معرف الكائن الخاص بالمستخدم الذي تريد استرداد مهام الرفض.

    GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2018-07-01-preview&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
    

إزالة الوصول المرتفع

عند الاتصال elevateAccess، يمكنك إنشاء تعيين دور لنفسك ، لذلك لإلغاء هذه الامتيازات ، تحتاج إلى إزالة تعيين دور مسؤول وصول المستخدم لنفسك في نطاق الجذر (/).

  1. استدعاء GET roleDefinitions حيث roleName يساوي مسؤول وصول المستخدم لتحديد معرف اسم دور مسؤول وصول المستخدم.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2015-07-01&$filter=roleName+eq+'User Access Administrator'
    
    {
      "value": [
        {
          "properties": {
      "roleName": "User Access Administrator",
      "type": "BuiltInRole",
      "description": "Lets you manage user access to Azure resources.",
      "assignableScopes": [
        "/"
      ],
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Authorization/*",
            "Microsoft.Support/*"
          ],
          "notActions": []
        }
      ],
      "createdOn": "0001-01-01T08:00:00.0000000Z",
      "updatedOn": "2016-05-31T23:14:04.6964687Z",
      "createdBy": null,
      "updatedBy": null
          },
          "id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
          "type": "Microsoft.Authorization/roleDefinitions",
          "name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
        }
      ],
      "nextLink": null
    }
    

    احفظ المعرف من المعلمة name ، في هذه الحالة 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9.

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

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter=principalId+eq+'{objectid}'
    

    ملاحظة

    يجب ألا يكون لدى مسؤول الدليل العديد من المهام، إذا كان الاستعلام السابق يعرض الكثير من المهام، فيمكنك أيضا الاستعلام عن جميع المهام على مستوى نطاق الدليل فقط، ثم تصفية النتائج: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter=atScope()

  3. تعرض المكالمات السابقة قائمة بتعيينات الأدوار. ابحث عن تعيين الدور حيث يوجد "/" النطاق وينتهي roleDefinitionId بمعرف اسم الدور الذي عثرت عليه في الخطوة 1 ويطابق principalId objectId الخاص بمسؤول الدليل.

    نموذج تعيين الدور:

    {
      "value": [
        {
          "properties": {
            "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
            "principalId": "{objectID}",
            "scope": "/",
            "createdOn": "2016-08-17T19:21:16.3422480Z",
            "updatedOn": "2016-08-17T19:21:16.3422480Z",
            "createdBy": "22222222-2222-2222-2222-222222222222",
            "updatedBy": "22222222-2222-2222-2222-222222222222"
          },
          "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
          "type": "Microsoft.Authorization/roleAssignments",
          "name": "11111111-1111-1111-1111-111111111111"
        }
      ],
      "nextLink": null
    }
    

    مرة أخرى ، احفظ المعرف من المعلمة name ، في هذه الحالة 11111111-1111-1111-1111-111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

  4. وأخيرا، استخدم معرف تعيين الدور لإزالة المهمة المضافة بواسطة elevateAccess:

    DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2015-07-01
    

عرض سجلات الوصول المرتفع

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

عرض سجلات الوصول المرتفعة باستخدام مدخل Azure

  1. اتبع الخطوات السابقة في هذه المقالة لرفع مستوى وصولك.

  2. سجل الدخول إلى مدخل Azure كمسؤول عام.

  3. افتح سجل نشاط MonitorActivity>.

  4. تغيير قائمة الأنشطة إلى نشاط الدليل.

  5. ابحث عن العملية التالية، التي تشير إلى إجراء رفع الوصول.

    Assigns the caller to User Access Administrator role

    Screenshot showing directory activity logs in Monitor.

  6. اتبع الخطوات السابقة في هذه المقالة لإزالة الوصول المرتفع.

عرض سجلات الوصول المرتفع باستخدام Azure CLI

  1. اتبع الخطوات السابقة في هذه المقالة لرفع مستوى وصولك.

  2. استخدم الأمر az login لتسجيل الدخول كمسؤول عمومي.

  3. استخدم الأمر az rest لإجراء المكالمة التالية حيث سيتعين عليك التصفية حسب التاريخ كما هو موضح مع الطابع الزمني للمثال وتحديد اسم ملف حيث تريد تخزين السجلات.

    url يستدعي واجهة برمجة التطبيقات لاسترداد السجلات في Microsoft.Insights. سيتم حفظ الإخراج في ملفك.

    az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
    
  4. في ملف الإخراج، ابحث عن elevateAccess.

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

      "submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
      "subscriptionId": "",
      "tenantId": "33333333-3333-3333-3333-333333333333"
    },
    {
      "authorization": {
        "action": "Microsoft.Authorization/elevateAccess/action",
        "scope": "/providers/Microsoft.Authorization"
      },
      "caller": "user@example.com",
      "category": {
        "localizedValue": "Administrative",
        "value": "Administrative"
      },
    
  5. اتبع الخطوات السابقة في هذه المقالة لإزالة الوصول المرتفع.

تفويض الوصول إلى مجموعة لعرض سجلات الوصول المرتفعة باستخدام Azure CLI

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

  1. Open Azure Active DirectoryGroups>.

  2. إنشاء مجموعة أمان جديدة وتدوين معرف كائن المجموعة.

  3. اتبع الخطوات السابقة في هذه المقالة لرفع مستوى وصولك.

  4. استخدم الأمر az login لتسجيل الدخول كمسؤول عمومي.

  5. استخدم الأمر إنشاء تعيين دور az لتعيين دور القارئ إلى المجموعة التي يمكنها فقط قراءة السجلات على مستوى الدليل ، والتي توجد في Microsoft/Insights.

    az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
    
  6. أضف مستخدما سيقرأ السجلات إلى المجموعة التي تم إنشاؤها مسبقا.

  7. اتبع الخطوات السابقة في هذه المقالة لإزالة الوصول المرتفع.

يمكن للمستخدم في المجموعة الآن تشغيل الأمر az rest بشكل دوري لعرض سجلات الوصول المرتفعة.

az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt

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