Zobrazení protokolů aktivit pro změny Azure RBAC
Někdy potřebujete informace o změnách řízení přístupu na základě role v Azure (Azure RBAC), například pro účely auditování nebo řešení potíží. Kdykoli někdo provede změny přiřazení rolí nebo definic rolí v rámci vašich předplatných, změny se zaprotokolují v protokolu aktivit Azure. V protokolech aktivit můžete zobrazit všechny změny Azure RBAC za posledních 90 dnů.
Zaprotokolované operace
Tady jsou operace související s Azure RBAC, které se protokolují v protokolu aktivit:
- Vytvořit přiřazení role
- Odstranit přiřazení role
- Vytvoření nebo aktualizace definice vlastní role
- Odstranit definice rolí
portál Azure
Nejjednodušší způsob, jak začít, je zobrazit si protokoly aktivit přes Azure Portal. Následující snímek obrazovky ukazuje příklad operací přiřazení rolí v protokolu aktivit. Obsahuje také možnost stáhnout protokoly jako soubor CSV.
Pokud chcete získat další informace, kliknutím na položku otevřete podokno souhrnu. Kliknutím na kartu JSON získáte podrobný protokol.
Protokol aktivit na portálu má několik filtrů. Tady jsou filtry související s Azure RBAC:
Filtrovat | Hodnota |
---|---|
Kategorie události |
|
Operace |
|
Další informace o protokolech aktivit najdete v protokolu aktivit Azure.
Interpretace položky protokolu
Výstup protokolu z karty JSON, Azure PowerShellu nebo Azure CLI může obsahovat spoustu informací. Tady jsou některé klíčové vlastnosti, které se mají hledat při pokusu o interpretaci položky protokolu. Způsoby filtrování výstupu protokolu pomocí Azure PowerShellu nebo Azure CLI najdete v následujících částech.
Vlastnost | Ukázkové hodnoty | Popis |
---|---|---|
autorizace:action | Microsoft.Authorization/roleAssignments/write | Vytvořit přiřazení role |
Microsoft.Authorization/roleAssignments/delete | Odstranit přiřazení role | |
Microsoft.Authorization/roleDefinitions/write | Vytvoření nebo aktualizace definice role | |
Microsoft.Authorization/roleDefinitions/delete | Odstranění definice role | |
authorization:scope | /subscriptions/{subscriptionId} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
Rozsah akce |
volající | admin@example.com {objectId} |
Kdo akci zahájil |
eventTimestamp | 2021-03-01T22:07:41.126243Z | Čas, kdy k akci došlo |
status:value | Zahájeno Úspěch Neúspěšné |
Stav akce |
Azure PowerShell
Pokud chcete zobrazit protokoly aktivit pomocí Azure PowerShellu , použijte příkaz Get-AzLog .
Tento příkaz zobrazí seznam všech změn přiřazení rolí v předplatném za posledních 7 dnů:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleAssignments/*'}
Tento příkaz zobrazí seznam všech změn definic rolí ve skupině prostředků za posledních 7 dnů:
Get-AzLog -ResourceGroupName pharma-sales -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleDefinitions/*'}
Filtrování výstupu protokolu
Výstup protokolu může obsahovat spoustu informací. Tento příkaz zobrazí seznam všech změn přiřazení rolí a definic rolí v předplatném za posledních 7 dnů a vyfiltruje výstup:
Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/role*'} | Format-List Caller,EventTimestamp,{$_.Authorization.Action},Properties
Následující příklad ukazuje výstup vyfiltrovaného protokolu při vytváření přiřazení role:
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}
Pokud k vytváření přiřazení rolí používáte instanční objekt, vlastnost Volající bude ID instančního objektu. Pomocí rutiny Get-AzADServicePrincipal můžete získat informace o instančním objektu.
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
Pokud chcete zobrazit protokoly aktivit pomocí Azure CLI, použijte příkaz az monitor activity-log list .
Tento příkaz vypíše protokoly aktivit ve skupině prostředků od 1. března a těšíme se na sedm dní:
az monitor activity-log list --resource-group example-group --start-time 2021-03-01 --offset 7d
Tento příkaz vypíše protokoly aktivit pro poskytovatele prostředků autorizace od 1. března a těšíme se na sedm dní:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d
Filtrování výstupu protokolu
Výstup protokolu může obsahovat spoustu informací. Tento příkaz zobrazí seznam všech změn přiřazení rolí a definic rolí v předplatném, které se budou těšit na sedm dnů a filtruje výstup:
az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d --query '[].{authorization:authorization, caller:caller, eventTimestamp:eventTimestamp, properties:properties}'
Následující příklad ukazuje výstup vyfiltrovaného protokolu při vytváření přiřazení role:
[
{
"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\"}}"
}
}
]
Protokoly Azure Monitoru
Protokoly Azure Monitoru jsou dalším nástrojem, který můžete použít ke shromažďování a analýze změn Azure RBAC pro všechny prostředky Azure. Protokoly služby Azure Monitor mají následující výhody:
- Psaní složitých dotazů a logiky
- Integrace s upozorněními, Power BI a dalšími nástroji
- Ukládání dat po delší dobu uchovávání
- Křížový odkaz s dalšími protokoly, jako jsou zabezpečení, virtuální počítač a vlastní
Tady jsou základní kroky, které vám pomůžou začít:
Vytvořte pracovní prostor služby Log Analytics.
Nakonfigurujte aktivitu pro váš pracovní prostor.
Prohlédněte si přehledy protokolů aktivit. Rychlým způsobem, jak přejít na stránku Přehled protokolu aktivit, je kliknout na možnost Protokoly .
Volitelně můžete protokoly dotazovat a zobrazit pomocí Služby Azure Monitor Log Analytics . Další informace najdete v tématu Začínáme s dotazy na protokoly ve službě Azure Monitor.
Tady je dotaz, který vrací nová přiřazení rolí uspořádaná podle cílového poskytovatele prostředků:
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
Tady je dotaz, který vrátí změny přiřazení role zobrazené v grafu:
AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments"
| summarize count() by bin(TimeGenerated, 1d), OperationName
| render timechart