Arquivar logs e relatórios sobre gerenciamento de direitos no Azure Monitor

O Microsoft Entra ID armazena eventos de auditoria por até 30 dias no log de auditoria. No entanto, você pode manter os dados de auditoria por mais tempo do que o período de retenção padrão, descrito em Por quanto tempo o Microsoft Entra ID armazena dados de relatórios?, roteando-os para uma conta de Armazenamento do Azure ou usando o Azure Monitor. Em seguida, você pode usar pastas de trabalho e consultas personalizadas e relatórios sobre esses dados.

Configurar a ID do Microsoft Entra para usar o Azure Monitor

Gorjeta

As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.

Antes de usar as pastas de trabalho do Azure Monitor, você deve configurar a ID do Microsoft Entra para enviar uma cópia de seus logs de auditoria para o Azure Monitor.

O arquivamento de logs de auditoria do Microsoft Entra exige que você tenha o Azure Monitor em uma assinatura do Azure. Você pode ler mais sobre os pré-requisitos e os custos estimados de usar o Azure Monitor nos logs de atividade do Microsoft Entra no Azure Monitor.

Função de pré-requisito: Administrador Global

  1. Entre no centro de administração do Microsoft Entra como Administrador Global. Verifique se você tem acesso ao grupo de recursos que contém o espaço de trabalho do Azure Monitor.

  2. Navegue até Monitoramento de identidade>& configurações de diagnóstico de integridade>.

  3. Verifique se já existe uma configuração para enviar os logs de auditoria para esse espaço de trabalho.

  4. Se ainda não houver uma configuração, selecione Adicionar configuração de diagnóstico. Use as instruções em Integrar logs do Microsoft Entra com logs do Azure Monitor para enviar o log de auditoria do Microsoft Entra para o espaço de trabalho do Azure Monitor.

    Diagnostics settings pane

  5. Depois que o log for enviado para o Azure Monitor, selecione Espaços de trabalho do Log Analytics e selecione o espaço de trabalho que contém os logs de auditoria do Microsoft Entra.

  6. Selecione Uso e custos estimados e selecione Retenção de dados. Altere o controle deslizante para o número de dias que você deseja manter os dados para atender aos seus requisitos de auditoria.

    Log Analytics workspaces pane

  7. Mais tarde, para ver o intervalo de datas mantido em seu espaço de trabalho, você pode usar a pasta de trabalho Intervalo de datas de log arquivado :

    1. Navegue até Monitoramento de Identidade>& Pastas de Trabalho de integridade>.

    2. Expanda a seção Solução de problemas do Microsoft Entra e selecione Intervalo de datas de log arquivado.

Ver eventos para um pacote de acesso

Para exibir eventos para um pacote de acesso, você deve ter acesso ao espaço de trabalho subjacente do monitor do Azure (consulte Gerenciar acesso a dados de log e espaços de trabalho no Azure Monitor para obter informações) e em uma das seguintes funções:

  • Administrador global
  • Administrador de segurança
  • Leitor de segurança
  • Leitor de relatórios
  • Administrador de aplicações

Use o procedimento a seguir para exibir eventos:

  1. No centro de administração do Microsoft Entra, selecione Identidade e, em seguida, selecione Pastas de trabalho. Se tiver apenas uma subscrição, avance para o passo 3.

  2. Se você tiver várias assinaturas, selecione a assinatura que contém o espaço de trabalho.

  3. Selecione a pasta de trabalho chamada Atividade do Pacote do Access.

  4. Nessa pasta de trabalho, selecione um intervalo de tempo (altere para Todos se não tiver certeza) e selecione uma ID de pacote de acesso na lista suspensa de todos os pacotes de acesso que tiveram atividade durante esse intervalo de tempo. Os eventos relacionados ao pacote de acesso que ocorreram durante o intervalo de tempo selecionado serão exibidos.

    View access package events

    Cada linha inclui a hora, o ID do pacote de acesso, o nome da operação, o ID do objeto, o UPN e o nome para exibição do usuário que iniciou a operação. Detalhes adicionais estão incluídos no JSON.

  5. Se você quiser ver se houve alterações nas atribuições de função de aplicativo para um aplicativo que não foram devido a atribuições de pacote de acesso, como por um administrador global atribuindo diretamente um usuário a uma função de aplicativo, então você pode selecionar a pasta de trabalho chamada Atividade de atribuição de função de aplicativo.

    View app role assignments

Criar consultas personalizadas do Azure Monitor usando o centro de administração do Microsoft Entra

Você pode criar suas próprias consultas em eventos de auditoria do Microsoft Entra, incluindo eventos de gerenciamento de direitos.

  1. Em Identidade do centro de administração do Microsoft Entra, selecione Logs na seção Monitoramento no menu de navegação esquerdo para criar uma nova página de consulta.

  2. Seu espaço de trabalho deve ser mostrado no canto superior esquerdo da página de consulta. Se você tiver vários espaços de trabalho do Azure Monitor e o espaço de trabalho que estiver usando para armazenar eventos de auditoria do Microsoft Entra não for mostrado, selecione Selecionar escopo. Em seguida, selecione a assinatura e o espaço de trabalho corretos.

  3. Em seguida, na área de texto da consulta, exclua a string "search *" e substitua-a pela seguinte consulta:

    AuditLogs | where Category == "EntitlementManagement"
    
  4. Em seguida, selecione Executar.

    Click Run to start query

A tabela mostra os eventos do log de auditoria para o gerenciamento de direitos da última hora por padrão. Você pode alterar a configuração "Intervalo de tempo" para exibir eventos mais antigos. No entanto, alterar essa configuração só mostrará eventos que ocorreram depois que a ID do Microsoft Entra foi configurada para enviar eventos para o Azure Monitor.

Se você quiser saber os eventos de auditoria mais antigos e mais recentes realizados no Azure Monitor, use a seguinte consulta:

AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type

Para obter mais informações sobre as colunas armazenadas para eventos de auditoria no Azure Monitor, consulte Interpretar o esquema de logs de auditoria do Microsoft Entra no Azure Monitor.

Criar consultas personalizadas do Azure Monitor usando o Azure PowerShell

Você pode acessar logs por meio do PowerShell depois de configurar a ID do Microsoft Entra para enviar logs para o Azure Monitor. Em seguida, envie consultas de scripts ou da linha de comando do PowerShell, sem precisar ser um Administrador Global no locatário.

Verifique se o usuário ou a entidade de serviço tem a atribuição de função correta

Verifique se você, o usuário ou entidade de serviço que se autenticará na ID do Microsoft Entra, está na função apropriada do Azure no espaço de trabalho do Log Analytics. As opções de função são o Log Analytics Reader ou o Log Analytics Contributor. Se já estiver numa dessas funções, avance para Recuperar ID do Log Analytics com uma subscrição do Azure.

Para definir a atribuição de função e criar uma consulta, execute as seguintes etapas:

  1. No centro de administração do Microsoft Entra, localize o espaço de trabalho do Log Analytics.

  2. Selecione Controlo de Acesso (IAM).

  3. Em seguida, selecione Adicionar para adicionar uma atribuição de função.

    Add a role assignment

Instalar o módulo do Azure PowerShell

Depois de ter a atribuição de função apropriada, inicie o PowerShell e instale o módulo do Azure PowerShell (se ainda não o fez), digitando:

install-module -Name az -allowClobber -Scope CurrentUser

Agora você está pronto para se autenticar na ID do Microsoft Entra e recuperar a ID do espaço de trabalho do Log Analytics que está consultando.

Recuperar ID do Log Analytics com uma assinatura do Azure

Se você tiver apenas uma única assinatura do Azure e um único espaço de trabalho do Log Analytics, digite o seguinte para autenticar a ID do Microsoft Entra, conectar-se a essa assinatura e recuperar esse espaço de trabalho:

Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace

Recuperar ID do Log Analytics com várias assinaturas do Azure

Get-AzOperationalInsightsWorkspace opera em uma assinatura de cada vez. Portanto, se você tiver várias assinaturas do Azure, queira se conectar àquela que tem o espaço de trabalho do Log Analytics com os logs do Microsoft Entra.

Os cmdlets a seguir exibem uma lista de assinaturas e localizam a ID da assinatura que tem o espaço de trabalho do Log Analytics:

Connect-AzAccount
$subs = Get-AzSubscription
$subs | ft

Você pode reautenticar e associar sua sessão do PowerShell a essa assinatura usando um comando como Connect-AzAccount –Subscription $subs[0].id. Para saber mais sobre como autenticar no Azure a partir do PowerShell, inclusive de forma não interativa, consulte Entrar com o Azure PowerShell.

Se você tiver vários espaços de trabalho do Log Analytics nessa assinatura, o cmdlet Get-AzOperationalInsightsWorkspace retornará a lista de espaços de trabalho. Então você pode encontrar o que tem os logs do Microsoft Entra. O CustomerId campo retornado por este cmdlet é o mesmo que o valor da "ID do espaço de trabalho" exibido no centro de administração do Microsoft Entra na visão geral do espaço de trabalho do Log Analytics.

$wks = Get-AzOperationalInsightsWorkspace
$wks | ft CustomerId, Name

Enviar a consulta para o espaço de trabalho do Log Analytics

Finalmente, depois de identificar um espaço de trabalho, você pode usar Invoke-AzOperationalInsightsQuery para enviar uma consulta Kusto para esse espaço de trabalho. Essas consultas são escritas na linguagem de consulta Kusto.

Por exemplo, você pode recuperar o intervalo de datas dos registros de eventos de auditoria do espaço de trabalho do Log Analytics, com cmdlets do PowerShell para enviar uma consulta como:

$aQuery = "AuditLogs | where TimeGenerated > ago(3653d) | summarize OldestAuditEvent=min(TimeGenerated), NewestAuditEvent=max(TimeGenerated) by Type"
$aResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $aQuery
$aResponse.Results |ft

Você também pode recuperar eventos de gerenciamento de direitos usando uma consulta como:

$bQuery = 'AuditLogs | where Category == "EntitlementManagement"'
$bResponse = Invoke-AzOperationalInsightsQuery -WorkspaceId $wks[0].CustomerId -Query $Query
$bResponse.Results |ft 

Usando filtros de consulta

Você pode incluir o campo para definir o TimeGenerated escopo de uma consulta para um intervalo de tempo específico. Por exemplo, para recuperar os eventos de log de auditoria para políticas de atribuição de pacotes de acesso de gerenciamento de direitos que estão sendo criadas ou atualizadas nos últimos 90 dias, você pode fornecer uma consulta que inclua esse campo, bem como a categoria e o tipo de operação.

AuditLogs | 
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") | 
project ActivityDateTime,OperationName, InitiatedBy, AdditionalDetails, TargetResources

Para eventos de auditoria de alguns serviços, como gerenciamento de direitos, você também pode expandir e filtrar as propriedades afetadas dos recursos que estão sendo alterados. Por exemplo, você pode exibir apenas os registros de log de auditoria para políticas de atribuição de pacotes de acesso que estão sendo criadas ou atualizadas, que não exigem aprovação para que os usuários tenham uma atribuição adicionada.

AuditLogs | 
where TimeGenerated > ago(90d) and Category == "EntitlementManagement" and Result == "success" and (AADOperationType == "CreateEntitlementGrantPolicy" or AADOperationType == "UpdateEntitlementGrantPolicy") | 
mv-expand TargetResources | 
where TargetResources.type == "AccessPackageAssignmentPolicy" | 
project ActivityDateTime,OperationName,InitiatedBy,PolicyId=TargetResources.id,PolicyDisplayName=TargetResources.displayName,MP1=TargetResources.modifiedProperties | 
mv-expand MP1 | 
where (MP1.displayName == "IsApprovalRequiredForAdd" and MP1.newValue == "\"False\"") |
order by ActivityDateTime desc 

Próximos passos