Archiwizowanie dzienników i raportowanie zarządzania upoważnieniami w usłudze Azure Monitor

Identyfikator entra firmy Microsoft przechowuje zdarzenia inspekcji przez maksymalnie 30 dni w dzienniku inspekcji. Można jednak przechowywać dane inspekcji przez dłuższy niż domyślny okres przechowywania opisany w temacie Jak długo dane raportowania magazynu identyfikatorów entra firmy Microsoft?, rozsyłając je na konto usługi Azure Storage lub przy użyciu usługi Azure Monitor. Następnie możesz użyć skoroszytów i niestandardowych zapytań i raportów dotyczących tych danych.

Konfigurowanie identyfikatora Entra firmy Microsoft do korzystania z usługi Azure Monitor

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Przed użyciem skoroszytów usługi Azure Monitor należy skonfigurować identyfikator entra firmy Microsoft, aby wysłać kopię dzienników inspekcji do usługi Azure Monitor.

Archiwizowanie dzienników inspekcji firmy Microsoft Entra wymaga posiadania usługi Azure Monitor w subskrypcji platformy Azure. Więcej informacji na temat wymagań wstępnych i szacowanych kosztów korzystania z usługi Azure Monitor można uzyskać w dziennikach aktywności firmy Microsoft Entra w usłudze Azure Monitor.

Rola wymagań wstępnych: globalny Administracja istrator

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako administrator globalny Administracja istrator. Upewnij się, że masz dostęp do grupy zasobów zawierającej obszar roboczy usługi Azure Monitor.

  2. Przejdź do pozycji Ustawienia>diagnostyczne monitorowania tożsamości i kondycji.>

  3. Sprawdź, czy istnieje już ustawienie wysyłania dzienników inspekcji do tego obszaru roboczego.

  4. Jeśli nie ma jeszcze ustawienia, wybierz pozycję Dodaj ustawienie diagnostyczne. Skorzystaj z instrukcji w temacie Integrowanie dzienników firmy Microsoft Entra z dziennikami usługi Azure Monitor, aby wysłać dziennik inspekcji firmy Microsoft Entra do obszaru roboczego usługi Azure Monitor.

    Diagnostics settings pane

  5. Po wysłaniu dziennika do usługi Azure Monitor wybierz pozycję Obszary robocze usługi Log Analytics i wybierz obszar roboczy zawierający dzienniki inspekcji firmy Microsoft Entra.

  6. Wybierz pozycję Użycie i szacowane koszty , a następnie wybierz pozycję Przechowywanie danych. Zmień suwak na liczbę dni, w których chcesz zachować dane, aby spełniały wymagania dotyczące inspekcji.

    Log Analytics workspaces pane

  7. Później, aby wyświetlić zakres dat przechowywanych w obszarze roboczym, możesz użyć skoroszytu zarchiwizowanego zakresu dat dziennika:

    1. Przejdź do skoroszytów monitorowania tożsamości>i kondycji.>

    2. Rozwiń sekcję Microsoft Entra Troubleshooting (Rozwiązywanie problemów z firmą Microsoft) i wybierz pozycję Zarchiwizowany zakres dat dziennika.

Wyświetlanie zdarzeń dla pakietu dostępu

Aby wyświetlić zdarzenia pakietu dostępu, musisz mieć dostęp do bazowego obszaru roboczego usługi Azure Monitor (zobacz Zarządzanie dostępem do danych dzienników i obszarów roboczych w usłudze Azure Monitor , aby uzyskać informacje) i w jednej z następujących ról:

  • Administrator globalny
  • Administrator zabezpieczeń
  • Czytelnik zabezpieczeń
  • Czytelnik raportów
  • Administrator aplikacji

Aby wyświetlić zdarzenia, wykonaj następującą procedurę:

  1. W centrum administracyjnym firmy Microsoft Entra wybierz pozycję Tożsamość , a następnie wybierz pozycję Skoroszyty. Jeśli masz tylko jedną subskrypcję, przejdź do kroku 3.

  2. Jeśli masz wiele subskrypcji, wybierz subskrypcję zawierającą obszar roboczy.

  3. Wybierz skoroszyt o nazwie Działanie pakietu programu Access.

  4. W tym skoroszycie wybierz zakres czasu (zmień na Wszystkie , jeśli nie jest pewien) i wybierz identyfikator pakietu dostępu z listy rozwijanej wszystkich pakietów dostępu, które miały działanie w tym zakresie czasu. Zostaną wyświetlone zdarzenia związane z pakietem dostępu, który wystąpił w wybranym przedziale czasu.

    View access package events

    Każdy wiersz zawiera czas, identyfikator pakietu dostępu, nazwę operacji, identyfikator obiektu, nazwę UPN i nazwę wyświetlaną użytkownika, który rozpoczął operację. Dodatkowe szczegóły znajdują się w formacie JSON.

  5. Jeśli chcesz sprawdzić, czy wprowadzono zmiany w przypisaniach ról aplikacji dla aplikacji, które nie były spowodowane dostępem do przypisań pakietów, takich jak administrator globalny bezpośrednio przypisując użytkownika do roli aplikacji, możesz wybrać skoroszyt o nazwie Działanie przypisania roli aplikacji.

    View app role assignments

Tworzenie niestandardowych zapytań usługi Azure Monitor przy użyciu centrum administracyjnego firmy Microsoft Entra

Możesz tworzyć własne zapytania dotyczące zdarzeń inspekcji firmy Microsoft Entra, w tym zdarzeń zarządzania upoważnieniami.

  1. W obszarze Tożsamość centrum administracyjnego firmy Microsoft Entra wybierz pozycję Dzienniki w sekcji Monitorowanie w menu nawigacji po lewej stronie, aby utworzyć nową stronę zapytania.

  2. Obszar roboczy powinien być wyświetlany w lewym górnym rogu strony zapytania. Jeśli masz wiele obszarów roboczych usługi Azure Monitor, a obszar roboczy używany do przechowywania zdarzeń inspekcji firmy Microsoft Entra nie jest wyświetlany, wybierz pozycję Wybierz zakres. Następnie wybierz poprawną subskrypcję i obszar roboczy.

  3. Następnie w obszarze tekstowym zapytania usuń ciąg "wyszukaj *" i zastąp go następującym zapytaniem:

    AuditLogs | where Category == "EntitlementManagement"
    
  4. Następnie wybierz opcję Uruchom.

    Click Run to start query

W tabeli przedstawiono zdarzenia dziennika inspekcji dla zarządzania upoważnieniami z ostatniej godziny domyślnie. Możesz zmienić ustawienie "Zakres czasu", aby wyświetlić starsze zdarzenia. Jednak zmiana tego ustawienia spowoduje wyświetlenie tylko zdarzeń, które wystąpiły po skonfigurowaniu identyfikatora Entra firmy Microsoft do wysyłania zdarzeń do usługi Azure Monitor.

Jeśli chcesz znać najstarsze i najnowsze zdarzenia inspekcji przechowywane w usłudze Azure Monitor, użyj następującego zapytania:

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

Aby uzyskać więcej informacji na temat kolumn przechowywanych dla zdarzeń inspekcji w usłudze Azure Monitor, zobacz Interpretowanie schematu dzienników inspekcji firmy Microsoft Entra w usłudze Azure Monitor.

Tworzenie niestandardowych zapytań usługi Azure Monitor przy użyciu programu Azure PowerShell

Dostęp do dzienników można uzyskać za pośrednictwem programu PowerShell po skonfigurowaniu identyfikatora Entra firmy Microsoft w celu wysyłania dzienników do usługi Azure Monitor. Następnie wysyłaj zapytania ze skryptów lub wiersza polecenia programu PowerShell bez konieczności bycia globalnym Administracja istratorem w dzierżawie.

Upewnij się, że użytkownik lub jednostka usługi ma poprawne przypisanie roli

Upewnij się, że użytkownik lub jednostka usługi, która będzie uwierzytelniać się w identyfikatorze Entra firmy Microsoft, jest w odpowiedniej roli platformy Azure w obszarze roboczym usługi Log Analytics. Opcje roli to Czytelnik usługi Log Analytics lub Współautor usługi Log Analytics. Jeśli masz już jedną z tych ról, przejdź do sekcji Pobieranie identyfikatora usługi Log Analytics z jedną subskrypcją platformy Azure.

Aby ustawić przypisanie roli i utworzyć zapytanie, wykonaj następujące kroki:

  1. W centrum administracyjnym firmy Microsoft Entra znajdź obszar roboczy usługi Log Analytics.

  2. Wybierz Access Control (Zarządzanie dostępem i tożsamościami).

  3. Następnie wybierz pozycję Dodaj , aby dodać przypisanie roli.

    Add a role assignment

Instalowanie modułu programu Azure PowerShell

Po utworzeniu odpowiedniego przypisania roli uruchom program PowerShell i zainstaluj moduł Azure PowerShell (jeśli jeszcze tego nie zrobiono), wpisując:

install-module -Name az -allowClobber -Scope CurrentUser

Teraz możesz przystąpić do uwierzytelniania w usłudze Microsoft Entra ID i pobrać identyfikator obszaru roboczego usługi Log Analytics, którego dotyczy zapytanie.

Pobieranie identyfikatora usługi Log Analytics z jedną subskrypcją platformy Azure

Jeśli masz tylko jedną subskrypcję platformy Azure i jeden obszar roboczy usługi Log Analytics, wpisz następujące polecenie, aby uwierzytelnić się w usłudze Microsoft Entra ID, połączyć się z subskrypcją i pobrać ten obszar roboczy:

Connect-AzAccount
$wks = Get-AzOperationalInsightsWorkspace

Pobieranie identyfikatora usługi Log Analytics z wieloma subskrypcjami platformy Azure

Polecenie Get-AzOperational Szczegółowe informacje Workspace działa w jednej subskrypcji naraz. Dlatego jeśli masz wiele subskrypcji platformy Azure, chcesz się upewnić, że łączysz się z obszarem roboczym usługi Log Analytics z dziennikami firmy Microsoft Entra.

Następujące polecenia cmdlet wyświetlają listę subskrypcji i znajdują identyfikator subskrypcji z obszarem roboczym usługi Log Analytics:

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

Możesz ponownie uwierzytelnić i skojarzyć sesję programu PowerShell z subskrypcją przy użyciu polecenia takiego jak Connect-AzAccount –Subscription $subs[0].id. Aby dowiedzieć się więcej na temat uwierzytelniania na platformie Azure z poziomu programu PowerShell, w tym nieinterakcyjnego, zobacz Logowanie się przy użyciu programu Azure PowerShell.

Jeśli masz wiele obszarów roboczych usługi Log Analytics w tej subskrypcji, polecenie cmdlet Get-AzOperational Szczegółowe informacje Workspace zwraca listę obszarów roboczych. Następnie możesz znaleźć ten, który ma dzienniki firmy Microsoft Entra. Pole CustomerId zwrócone przez to polecenie cmdlet jest takie samo jak wartość "Identyfikator obszaru roboczego" wyświetlanego w centrum administracyjnym firmy Microsoft Entra w przeglądzie obszaru roboczego usługi Log Analytics.

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

Wysyłanie zapytania do obszaru roboczego usługi Log Analytics

Na koniec po zidentyfikowaniu obszaru roboczego możesz użyć polecenia Invoke-AzOperational Szczegółowe informacje Query, aby wysłać zapytanie Kusto do tego obszaru roboczego. Te zapytania są pisane w języku zapytań Kusto.

Można na przykład pobrać zakres dat rekordów zdarzeń inspekcji z obszaru roboczego usługi Log Analytics, za pomocą poleceń cmdlet programu PowerShell do wysyłania zapytania, takiego jak:

$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

Zdarzenia zarządzania upoważnieniami można również pobrać za pomocą zapytania, takiego jak:

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

Korzystanie z filtrów zapytań

Możesz dołączyć TimeGenerated pole, aby ograniczyć zakres zapytania do określonego zakresu czasu. Na przykład aby pobrać zdarzenia dziennika inspekcji dla zasad przypisywania pakietów dostępu do zarządzania upoważnieniami tworzone lub aktualizowane w ciągu ostatnich 90 dni, można podać zapytanie zawierające to pole, a także kategorię i typ operacji.

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

W przypadku zdarzeń inspekcji niektórych usług, takich jak zarządzanie upoważnieniami, można również rozwinąć i filtrować właściwości, których dotyczy problem, zmieniane zasoby. Można na przykład wyświetlić tylko te rekordy dziennika inspekcji dla tworzonych lub aktualizowanych zasad przypisywania pakietów dostępu, które nie wymagają zatwierdzenia, aby użytkownicy mieli dodane przypisanie.

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 

Następne kroki