عرض سجلات النشاط لتغييرات Azure RBAC

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

العمليات التي تم تسجيلها

فيما يلي العمليات المتعلقة ب Azure RBAC التي تم تسجيلها في سجل النشاط:

  • إنشاء تعيين دور
  • حذف تعيين الدور
  • إنشاء تعريف دور مخصص أو تحديثه
  • حذف تعريف دور مخصص

مدخل Azure

أسهل طريقة للبدء هي عرض سجلات النشاط باستخدام مدخل Microsoft Azure. تظهر لقطة الشاشة التالية مثالا لعمليات تعيين الدور في سجل النشاط. كما يتضمن خيارا لتنزيل السجلات كملف CSV.

سجلات النشاط باستخدام المدخل - لقطة شاشة

للحصول على مزيد من المعلومات، انقر فوق إدخال لفتح جزء الملخص. انقر فوق علامة التبويب JSON للحصول على سجل مفصل.

سجلات النشاط باستخدام المدخل مع فتح جزء الملخص - لقطة شاشة

يحتوي سجل النشاط في المدخل على العديد من عوامل التصفية. فيما يلي عوامل التصفية المتعلقة ب Azure RBAC:

عامل التصفية القيمة‬
فئة حدث
  • إداري
العملية
  • إنشاء تعيين دور
  • حذف تعيين الدور
  • إنشاء تعريف دور مخصص أو تحديثه
  • حذف تعريف دور مخصص

لمزيد من المعلومات حول سجلات النشاط، راجع سجل نشاط Azure.

تفسير إدخال سجل

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

الخاصية قيم الأمثلة ‏‏الوصف
التخويل:إجراء Microsoft.Authorization/roleAssignments/write إنشاء تعيين دور
Microsoft.Authorization/roleAssignments/delete حذف تعيين الدور
Microsoft.Authorization/roleDefinitions/write إنشاء تعريف الدور أو تحديثه
Microsoft.Authorization/roleDefinitions/delete حذف تعريف الدور
التخويل:النطاق /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
نطاق الإجراء
متصل admin@example.com
{objectId}
من بدأ الإجراء
eventTimestamp 2021-03-01T22:07:41.126243Z الوقت الذي حدث فيه الإجراء
الحالة:القيمة بدأ
تم بنجاح
فاشل
حالة الإجراء

Azure PowerShell

لعرض سجلات النشاط باستخدام Azure PowerShell، استخدم الأمر Get-AzLog .

يسرد هذا الأمر جميع تغييرات تعيين الدور في اشتراك خلال الأيام السبعة الماضية:

Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleAssignments/*'}

يسرد هذا الأمر جميع تغييرات تعريف الدور في مجموعة موارد خلال الأيام السبعة الماضية:

Get-AzLog -ResourceGroupName pharma-sales -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleDefinitions/*'}

إخراج سجل التصفية

يمكن أن يتضمن إخراج السجل الكثير من المعلومات. يسرد هذا الأمر جميع تغييرات تعيين الدور وتعريف الدور في اشتراك خلال الأيام السبعة الماضية ويصفي الإخراج:

Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/role*'} | Format-List Caller,EventTimestamp,{$_.Authorization.Action},Properties

يوضح ما يلي مثالا على إخراج السجل الذي تمت تصفيته عند إنشاء تعيين دور:

Caller                  : admin@example.com
EventTimestamp          : 3/1/2021 10:07:42 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties              :
                          statusCode     : Created
                          serviceRequestId: {serviceRequestId}
                          eventCategory  : Administrative
                          entity         : /subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
                          message        : Microsoft.Authorization/roleAssignments/write
                          hierarchy      : {tenantId}/{subscriptionId}

Caller                  : admin@example.com
EventTimestamp          : 3/1/2021 10:07:41 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties              :
                          requestbody    : {"Id":"{roleAssignmentId}","Properties":{"PrincipalId":"{principalId}","PrincipalType":"User","RoleDefinitionId":"/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64","Scope":"/subscriptions/
                          {subscriptionId}/resourceGroups/example-group"}}
                          eventCategory  : Administrative
                          entity         : /subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
                          message        : Microsoft.Authorization/roleAssignments/write
                          hierarchy      : {tenantId}/{subscriptionId}

إذا كنت تستخدم كيان خدمة لإنشاء تعيينات الأدوار، ستكون الخاصية Caller معرف كائن كيان الخدمة. يمكنك استخدام Get-AzADServicePrincipal للحصول على معلومات حول كيان الخدمة.

Caller                  : {objectId}
EventTimestamp          : 3/1/2021 9:43:08 PM
$_.Authorization.Action : Microsoft.Authorization/roleAssignments/write
Properties              : 
                          statusCode     : Created
                          serviceRequestId: {serviceRequestId}
                          eventCategory  : Administrative

Azure CLI

لعرض سجلات النشاط باستخدام Azure CLI، استخدم الأمر az monitor activity-log list .

يسرد هذا الأمر سجلات النشاط في مجموعة موارد من 1 مارس، مع التطلع إلى سبعة أيام:

az monitor activity-log list --resource-group example-group --start-time 2021-03-01 --offset 7d

يسرد هذا الأمر سجلات النشاط لموفر موارد التخويل من 1 مارس، مع التطلع إلى سبعة أيام:

az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d

إخراج سجل التصفية

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

az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d --query '[].{authorization:authorization, caller:caller, eventTimestamp:eventTimestamp, properties:properties}'

يوضح ما يلي مثالا على إخراج السجل الذي تمت تصفيته عند إنشاء تعيين دور:

[
 {
    "authorization": {
      "action": "Microsoft.Authorization/roleAssignments/write",
      "role": null,
      "scope": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}"
    },
    "caller": "admin@example.com",
    "eventTimestamp": "2021-03-01T22:07:42.456241+00:00",
    "properties": {
      "entity": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
      "eventCategory": "Administrative",
      "hierarchy": "{tenantId}/{subscriptionId}",
      "message": "Microsoft.Authorization/roleAssignments/write",
      "serviceRequestId": "{serviceRequestId}",
      "statusCode": "Created"
    }
  },
  {
    "authorization": {
      "action": "Microsoft.Authorization/roleAssignments/write",
      "role": null,
      "scope": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}"
    },
    "caller": "admin@example.com",
    "eventTimestamp": "2021-03-01T22:07:41.126243+00:00",
    "properties": {
      "entity": "/subscriptions/{subscriptionId}/resourceGroups/example-group/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}",
      "eventCategory": "Administrative",
      "hierarchy": "{tenantId}/{subscriptionId}",
      "message": "Microsoft.Authorization/roleAssignments/write",
      "requestbody": "{\"Id\":\"{roleAssignmentId}\",\"Properties\":{\"PrincipalId\":\"{principalId}\",\"PrincipalType\":\"User\",\"RoleDefinitionId\":\"/providers/Microsoft.Authorization/roleDefinitions/fa23ad8b-c56e-40d8-ac0c-ce449e1d2c64\",\"Scope\":\"/subscriptions/{subscriptionId}/resourceGroups/example-group\"}}"
    }
  }
]

سجلات Azure Monitor

سجلات Azure Monitor هي أداة أخرى يمكنك استخدامها لجمع وتحليل تغييرات Azure RBAC لجميع موارد Azure. تحتوي سجلات Azure Monitor على المزايا التالية:

  • كتابة الاستعلامات المعقدة والمنطق
  • التكامل مع التنبيهات وPower BI والأدوات الأخرى
  • حفظ البيانات لفترات استبقاء أطول
  • إسناد ترافقي مع سجلات أخرى مثل الأمان والجهاز الظاهري والمخصص

فيما يلي الخطوات الأساسية للبدء:

  1. إنشاء مساحة عمل Log Analytics.

  2. تكوين النشاط لمساحة العمل الخاصة بك.

  3. عرض سجلات النشاط Insights. هناك طريقة سريعة للانتقال إلى صفحة نظرة عامة على سجل النشاط وهي النقر فوق الخيار سجلات .

    خيار سجلات Azure Monitor في المدخل

  4. اختياريا، استخدم Azure Monitor Log Analytics للاستعلام عن السجلات وعرضها. لمزيد من المعلومات، راجع البدء في استعلامات السجل في Azure Monitor.

فيما يلي استعلام يقوم بإرجاع تعيينات دور جديدة منظمة بواسطة موفر الموارد الهدف:

AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments/write" and ActivityStatus == "Succeeded"
| parse ResourceId with * "/providers/" TargetResourceAuthProvider "/" *
| summarize count(), makeset(Caller) by TargetResourceAuthProvider

فيما يلي استعلام يقوم بإرجاع تغييرات تعيين الدور المعروضة في مخطط:

AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments"
| summarize count() by bin(TimeGenerated, 1d), OperationName
| render timechart

سجلات النشاط باستخدام مدخل التحليلات المتقدمة - لقطة شاشة

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