عرض سجلات النشاط لتغييرات 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 والأدوات الأخرى
- حفظ البيانات لفترات استبقاء أطول
- إسناد ترافقي مع سجلات أخرى مثل الأمان والجهاز الظاهري والمخصص
فيما يلي الخطوات الأساسية للبدء:
تكوين النشاط لمساحة العمل الخاصة بك.
عرض سجلات النشاط Insights. هناك طريقة سريعة للانتقال إلى صفحة نظرة عامة على سجل النشاط وهي النقر فوق الخيار سجلات .
اختياريا، استخدم 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