Visa aktivitetsloggar för Azure RBAC-ändringar
Ibland behöver du information om ändringar i rollbaserad åtkomstkontroll i Azure (Azure RBAC), till exempel i gransknings- eller felsökningssyfte. När någon gör ändringar i rolltilldelningar eller rolldefinitioner i dina prenumerationer loggas ändringarna i Azure-aktivitetsloggen. Du kan visa aktivitetsloggarna för att se alla Azure RBAC-ändringar under de senaste 90 dagarna.
Åtgärder som loggas
Här är de Azure RBAC-relaterade åtgärder som loggas i aktivitetsloggen:
- Skapa rolltilldelning
- Ta bort rolltilldelning
- Skapa eller uppdatera anpassad rolldefinition
- Ta bort anpassad rolldefinition
Azure Portal
Det enklaste sättet att komma igång på är att visa aktivitetsloggarna i Azure Portal. Följande skärmbild visar ett exempel på rolltilldelningsåtgärder i aktivitetsloggen. Den innehåller också ett alternativ för att ladda ned loggarna som en CSV-fil.
Om du vill ha mer information klickar du på en post för att öppna sammanfattningsfönstret. Klicka på fliken JSON för att hämta en detaljerad logg.
Aktivitetsloggen i portalen har flera filter. Här är de Azure RBAC-relaterade filtren:
Filtrera | Värde |
---|---|
Händelsekategori |
|
Åtgärd |
|
Mer information om aktivitetsloggar finns i Azure-aktivitetsloggen.
Tolka en loggpost
Loggutdata från JSON-fliken, Azure PowerShell eller Azure CLI kan innehålla mycket information. Här är några av de viktigaste egenskaperna att söka efter när du försöker tolka en loggpost. Information om hur du filtrerar loggutdata med Hjälp av Azure PowerShell eller Azure CLI finns i följande avsnitt.
Property | Exempelvärden | beskrivning |
---|---|---|
authorization:action | Microsoft.Authorization/roleAssignments/write | Skapa rolltilldelning |
Microsoft.Authorization/roleAssignments/delete | Ta bort rolltilldelning | |
Microsoft.Authorization/roleDefinitions/write | Skapa eller uppdatera rolldefinition | |
Microsoft.Authorization/roleDefinitions/delete | Ta bort rolldefinition | |
authorization:scope | /subscriptions/{subscriptionId} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
Omfång för åtgärden |
besökare | admin@example.com {objectId} |
Vem som initierade åtgärden |
eventTimestamp | 2021-03-01T22:07:41.126243Z | Tid då åtgärden inträffade |
status:value | Börjat Slutfördes Misslyckades |
Status för åtgärden |
Azure PowerShell
Om du vill visa aktivitetsloggar med Azure PowerShell använder du kommandot Get-AzLog .
Det här kommandot visar alla ändringar av rolltilldelningen i en prenumeration under de senaste sju dagarna:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleAssignments/*'}
Det här kommandot visar alla ändringar i rolldefinitionen i en resursgrupp under de senaste sju dagarna:
Get-AzLog -ResourceGroupName pharma-sales -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleDefinitions/*'}
Filtrera loggutdata
Loggutdata kan innehålla mycket information. Det här kommandot visar alla ändringar av rolltilldelning och rolldefinitioner i en prenumeration under de senaste sju dagarna och filtrerar utdata:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/role*'} | Format-List Caller,EventTimestamp,{$_.Authorization.Action},Properties
Följande visar ett exempel på filtrerade loggutdata när du skapar en rolltilldelning:
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}
Om du använder ett huvudnamn för tjänsten för att skapa rolltilldelningar blir egenskapen Anropare ett objekt-ID för tjänstens huvudnamn. Du kan använda Get-AzADServicePrincipal för att få information om tjänstens huvudnamn.
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
Om du vill visa aktivitetsloggar med Azure CLI använder du kommandot az monitor activity-log list .
Det här kommandot visar aktivitetsloggarna i en resursgrupp från den 1 mars och ser fram emot sju dagar:
az monitor activity-log list --resource-group example-group --start-time 2021-03-01 --offset 7d
Det här kommandot visar aktivitetsloggarna för auktoriseringsresursprovidern från den 1 mars och ser fram emot sju dagar:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d
Filtrera loggutdata
Loggutdata kan innehålla mycket information. Det här kommandot visar alla rolltilldelnings- och rolldefinitionsändringar i en prenumeration som ser fram emot sju dagar och filtrerar utdata:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d --query '[].{authorization:authorization, caller:caller, eventTimestamp:eventTimestamp, properties:properties}'
Följande visar ett exempel på filtrerade loggutdata när du skapar en rolltilldelning:
[
{
"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-loggar
Azure Monitor-loggar är ett annat verktyg som du kan använda för att samla in och analysera Azure RBAC-ändringar för alla dina Azure-resurser. Azure Monitor-loggar har följande fördelar:
- Skriva komplexa frågor och logik
- Integrera med aviseringar, Power BI och andra verktyg
- Spara data för längre kvarhållningsperioder
- Korsreferens med andra loggar som säkerhet, virtuell dator och anpassad
Här är de grundläggande stegen för att komma igång:
Konfigurera aktiviteten för din arbetsyta.
Visa aktivitetsloggarna Insights. Ett snabbt sätt att navigera till sidan Översikt över aktivitetsloggar är att klicka på alternativet Loggar .
Du kan också använda Azure Monitor Log Analytics för att fråga efter och visa loggarna. Mer information finns i Kom igång med loggfrågor i Azure Monitor.
Här är en fråga som returnerar nya rolltilldelningar ordnade efter målresursprovider:
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
Här är en fråga som returnerar rolltilldelningsändringar som visas i ett diagram:
AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments"
| summarize count() by bin(TimeGenerated, 1d), OperationName
| render timechart