Просмотр журналов действий на предмет изменений в Azure RBAC
Иногда могут потребоваться сведения об изменении доступа на основе ролей (Azure RBAC), например для аудита и устранения неполадок. Каждый раз, когда кто-либо вносит изменения в определения ролей или назначения ролей в ваших подписках, изменения регистрируются в журнале действий Azure. Вы можете просматривать журналы действий, чтобы увидеть все изменения в управлении доступом на основе ролей (Azure RBAC) за последние 90 дней.
Операции, которые регистрируются в журнале
Ниже указаны операции, связанные с Azure RBAC, которые регистрируются в журнале действий:
- Создание назначения роли
- Удаление назначения роли
- Создание или изменение определения пользовательской роли
- Удаление определения пользовательской роли
Портал Azure
Самый простой способ заключается в просмотре журналов действий на портале Azure. На следующем снимке экрана показан пример — операции назначения ролей в журнале действий. В журнале также имеется ссылка на скачивание журналов в виде CSV-файлов.
Для получения дополнительных сведений щелкните нужную запись, чтобы открыть панель сводки. Откройте вкладку JSON, чтобы получить подробный журнал.
Журнал действий на портале имеет несколько фильтров. Ниже приведены фильтры, связанные с Azure RBAC:
Фильтр | Значение |
---|---|
Категория событий |
|
Операция |
|
Дополнительные сведения о журналах действий см . в журнале действий Azure.
Интерпретация записей журнала
Выходные данные журналов на вкладке JSON, в Azure PowerShell или Azure CLI могут содержать много информации. Ниже приведены некоторые основные свойства, на которые следует обращать внимание при интерпретации записей журнала. Способы фильтрации выходных данных журналов с помощью Azure PowerShell или Azure CLI описаны в следующих разделах.
Свойство | Пример значений | Description |
---|---|---|
authorization:action | Microsoft.Authorization/roleAssignments/write. | Создание назначения роли |
Microsoft.Authorization/roleAssignments/delete | Удаление назначения роли | |
Microsoft.Authorization/roleDefinitions/write | Создание или изменение определения роли | |
Microsoft.Authorization/roleDefinitions/delete | Удаление определения роли | |
authorization:scope | /subscriptions/{subscriptionId} /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId} |
Область действия |
caller | admin@example.com {objectId} |
Сторона, инициировавшая действие |
eventTimestamp | 2021-03-01T22:07:41.126243Z | Время, когда произошло действие |
status:value | Запуск Выполнено успешно Неудачно |
Состояние действия |
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 и другими средствами;
- хранение данных в течение более длительного срока;
- поддержка перекрестных ссылок с другими журналами, такими как журналы безопасности, журналы виртуальных машин и настраиваемые журналы.
Ниже приведены основные шаги, позволяющие приступить к работе.
Настройте действие для рабочей области.
Просмотр аналитики журналов действий. Быстрый способ перехода на страницу обзора журнала действий — выбрать параметр "Журналы ".
При необходимости вы можете использовать службу Log Analytics в Azure Monitor для обращения с запросами к журналам и просмотра журналов. Дополнительные сведения см. в статье Начало работы с запросами журнала в 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