Udostępnij przez


Wyświetlanie logów aktywności dla zmian Azure RBAC

Czasami potrzebujesz informacji na temat zmian kontroli dostępu na podstawie ról (RBAC) platformy Azure, takich jak inspekcja lub rozwiązywanie problemów. Za każdym razem, gdy ktoś wprowadza zmiany w przypisaniach ról lub definicjach ról w ramach subskrypcji, zmiany są rejestrowane w dzienniku aktywności platformy Azure. Dzienniki aktywności można wyświetlić, aby zobaczyć wszystkie zmiany w kontroli dostępu opartej na rolach platformy Azure (Azure RBAC) w ciągu ostatnich 90 dni.

Zarejestrowane operacje

Poniżej przedstawiono operacje związane z Azure RBAC, które są rejestrowane w Dzienniku aktywności:

  • Utwórz przypisanie roli
  • Usunięcie przypisania roli
  • Tworzenie lub aktualizowanie definicji roli niestandardowej
  • Usunięcie niestandardowej definicji roli

Azure Portal

Najprostszym sposobem rozpoczęcia pracy jest wyświetlenie dzienników aktywności za pomocą witryny Azure Portal. Poniższy zrzut ekranu przedstawia przykład operacji przypisywania ról w dzienniku aktywności. Zawiera również opcję pobierania dzienników jako pliku CSV.

Dzienniki aktywności przy użyciu portalu — zrzut ekranu

Aby uzyskać więcej informacji, kliknij wpis, aby otworzyć okienko podsumowania. Kliknij kartę JSON , aby uzyskać szczegółowy dziennik.

Dzienniki aktywności przy użyciu portalu z otwartym okienkiem podsumowania — zrzut ekranu

Dziennik aktywności w portalu ma kilka filtrów. Oto pomocnicze filtry Azure RBAC:

Filtr Wartość
Kategoria zdarzenia
  • Administracyjny
Operacja
  • Utworzenie przypisania roli
  • Usunięcie przypisania roli
  • Tworzenie lub aktualizowanie definicji roli niestandardowej
  • Usunięcie niestandardowej definicji roli

Aby uzyskać więcej informacji na temat dzienników aktywności, zobacz Dziennik aktywności platformy Azure.

Interpretowanie wpisu dziennika

Dane wyjściowe dziennika z karty JSON, programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure mogą zawierać wiele informacji. Poniżej przedstawiono niektóre kluczowe właściwości do wyszukania podczas próby zinterpretowania wpisu dziennika. Aby uzyskać informacje o sposobach filtrowania danych wyjściowych dziennika przy użyciu programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure, zobacz następujące sekcje.

Nieruchomość Przykładowe wartości opis
autoryzacja:akcja Microsoft.Authorization/roleAssignments/write Utwórz przypisanie roli
Microsoft.Authorization/roleAssignments/usuń Usunięcie przypisania roli
Microsoft.Authorization/roleDefinitions/write Tworzenie lub aktualizowanie definicji roli
Microsoft.Authorization/roleDefinitions/delete Usuwanie definicji roli
autoryzacja:zakres /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
Zakres akcji
Dzwoniący admin@example.com
{objectId}
Kto zainicjował akcję
eventTimestamp 2021-03-01T22:07:41.126243Z Godzina wystąpienia akcji
status:wartość Rozpoczęto
Udało się
Niepowodzenie
Stan akcji

Azure PowerShell

Aby wyświetlić dzienniki aktywności za pomocą programu Azure PowerShell, użyj polecenia Get-AzLog .

To polecenie wyświetla listę wszystkich zmian przypisań ról w subskrypcji w ciągu ostatnich siedmiu dni:

Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleAssignments/*'}

To polecenie wyświetla listę wszystkich zmian definicji roli w grupie zasobów w ciągu ostatnich siedmiu dni:

Get-AzLog -ResourceGroupName pharma-sales -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/roleDefinitions/*'}

Filtrowanie danych wyjściowych dziennika

Dane wyjściowe dziennika mogą zawierać wiele informacji. To polecenie wyświetla listę wszystkich zmian przypisań ról i definicji roli w subskrypcji w ciągu ostatnich siedmiu dni i filtruje dane wyjściowe:

Get-AzLog -StartTime (Get-Date).AddDays(-7) | Where-Object {$_.Authorization.Action -like 'Microsoft.Authorization/role*'} | Format-List Caller,EventTimestamp,{$_.Authorization.Action},Properties

Poniżej przedstawiono przykład filtrowanych danych wyjściowych dziennika podczas tworzenia przypisania roli:

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}

Jeśli używasz jednostki usługi do tworzenia przypisań ról, właściwość wywołująca będzie identyfikatorem obiektu jednostki usługi. Aby uzyskać informacje o jednostce usługi, możesz użyć polecenia 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

Aby wyświetlić dzienniki aktywności za pomocą interfejsu wiersza polecenia platformy Azure, użyj polecenia az monitor activity-log list .

To polecenie wyświetla listę dzienników aktywności w grupie zasobów od 1 marca, na przyszłość obejmującą siedem dni:

az monitor activity-log list --resource-group example-group --start-time 2021-03-01 --offset 7d

To polecenie wyświetla listę dzienników aktywności od dostawcy zasobów Autoryzacji od 1 marca na następne siedem dni.

az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d

Filtrowanie danych wyjściowych dziennika

Dane wyjściowe dziennika mogą zawierać wiele informacji. To polecenie wyświetla listę wszystkich zmian przypisań ról i definicji roli w subskrypcji przez następne siedem dni i filtruje wynik:

az monitor activity-log list --namespace "Microsoft.Authorization" --start-time 2021-03-01 --offset 7d --query '[].{authorization:authorization, caller:caller, eventTimestamp:eventTimestamp, properties:properties}'

Poniżej przedstawiono przykład filtrowanych danych wyjściowych dziennika podczas tworzenia przypisania roli:

[
 {
    "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\"}}"
    }
  }
]

Dzienniki usługi Azure Monitor

Azure Monitor logs to inne narzędzie, którego można używać do zbierania i analizowania zmian RBAC dla wszystkich zasobów platformy Azure. Dzienniki usługi Azure Monitor mają następujące korzyści:

  • Pisanie złożonych zapytań i logiki
  • Integracja z alertami, usługą Power BI i innymi narzędziami
  • Zachowaj dane na dłuższy okres przechowywania
  • Porównaj z innymi dziennikami, takimi jak bezpieczeństwa, VM i dzienniki niestandardowe.

Poniżej przedstawiono podstawowe kroki umożliwiające rozpoczęcie pracy:

  1. Utwórz obszar roboczy usługi Log Analytics.

  2. Skonfiguruj działanie dla obszaru roboczego.

  3. Wyświetl analizy dzienników aktywności. Szybkim sposobem na przejście do strony Przegląd dziennika aktywności jest kliknięcie opcji Dzienniki .

    Opcja dzienników usługi Azure Monitor w portalu

  4. Opcjonalnie użyj usługi Azure Monitor Log Analytics do wykonywania zapytań i wyświetlania dzienników. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z zapytaniami dzienników w usłudze Azure Monitor.

Oto zapytanie zwracające nowe przypisania ról zorganizowane według docelowego dostawcy zasobów.

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

Oto zapytanie zwracające zmiany przypisania roli wyświetlane na wykresie:

AzureActivity
| where TimeGenerated > ago(60d) and Authorization contains "Microsoft.Authorization/roleAssignments"
| summarize count() by bin(TimeGenerated, 1d), OperationName
| render timechart

Dzienniki aktywności przy użyciu portalu usługi Advanced Analytics — zrzut ekranu

Następne kroki