Azure RBAC değişiklikleri için etkinlik günlüklerini görüntüleme

Bazen denetim veya sorun giderme amacıyla olduğu gibi Azure rol tabanlı erişim denetimi (Azure RBAC) değişiklikleri hakkında bilgi almanız gerekebilir. Birisi aboneliklerinizdeki rol atamalarında veya rol tanımlarında değişiklik yaptığında, değişiklikler Azure Etkinlik Günlüğü'nde günlüğe kaydedilir. Son 90 gündeki tüm Azure RBAC değişikliklerini görmek için etkinlik günlüklerini görüntüleyebilirsiniz.

Günlüğe kaydedilen işlemler

Etkinlik Günlüğü'nde günlüğe kaydedilen Azure RBAC ile ilgili işlemler şunlardır:

  • Rol ataması oluştur
  • Rol atamasını sil
  • Özel rol tanımı oluşturma veya güncelleştirme
  • Özel rol tanımını sil

Azure portalı

Başlamanın en kolay yolu Azure portalıyla etkinlik günlüklerini görüntülemektir. Aşağıdaki ekran görüntüsünde etkinlik günlüğündeki rol atama işlemlerinin bir örneği gösterilmektedir. Ayrıca günlükleri CSV dosyası olarak indirme seçeneği de içerir.

Activity logs using the portal - screenshot

Daha fazla bilgi edinmek için bir girdiye tıklayarak özet bölmesini açın. Ayrıntılı bir günlük almak için JSON sekmesine tıklayın.

Activity logs using the portal with summary pane open - screenshot

Portaldaki etkinlik günlüğünde çeşitli filtreler vardır. Azure RBAC ile ilgili filtreler şunlardır:

Filtre Değer
Olay kategorisi
  • İdari
İşlem
  • Rol ataması oluştur
  • Rol atamasını sil
  • Özel rol tanımı oluşturma veya güncelleştirme
  • Özel rol tanımını sil

Etkinlik günlükleri hakkında daha fazla bilgi için bkz . Azure Etkinlik günlüğü.

Günlük girdisi yorumlama

JSON sekmesinden, Azure PowerShell'den veya Azure CLI'dan alınan günlük çıkışı birçok bilgi içerebilir. Burada, bir günlük girdisini yorumlamaya çalışırken aranacak bazı önemli özellikler yer alır. Azure PowerShell veya Azure CLI kullanarak günlük çıkışını filtrelemenin yolları için aşağıdaki bölümlere bakın.

Özellik Örnek değerler Tanım
authorization:action Microsoft.Authorization/roleAssignments/write Rol ataması oluştur
Microsoft.Authorization/roleAssignments/delete Rol atamasını sil
Microsoft.Authorization/roleDefinitions/write Rol tanımı oluşturma veya güncelleştirme
Microsoft.Authorization/roleDefinitions/delete Rol tanımını silme
authorization:scope /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
Eylemin kapsamı
Ara -yan admin@example.com
{objectId}
Eylemi başlatan kişi
eventTimestamp 2021-03-01T22:07:41.126243Z Eylemin gerçekleştiği saat
status:value Başlarken
Başarılı oldu
Yapılamadı
Eylemin durumu

Azure PowerShell

Azure PowerShell ile etkinlik günlüklerini görüntülemek için Get-AzLog komutunu kullanın.

Bu komut, abonelikteki son yedi güne ilişkin tüm rol atama değişikliklerini listeler:

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

Bu komut, bir kaynak grubundaki son yedi güne ilişkin tüm rol tanımı değişikliklerini listeler:

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

Filtre günlüğü çıkışı

Günlük çıkışı çok fazla bilgi içerebilir. Bu komut, abonelikte son yedi güne ilişkin tüm rol ataması ve rol tanımı değişikliklerini listeler ve çıkışı filtreler:

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

Aşağıda, rol ataması oluştururken filtrelenmiş günlük çıktısının bir örneği gösterilmektedir:

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}

Rol atamaları oluşturmak için hizmet sorumlusu kullanıyorsanız, Çağıran özelliği bir hizmet sorumlusu nesne kimliği olacaktır. Hizmet sorumlusu hakkında bilgi almak için Get-AzADServicePrincipal kullanabilirsiniz.

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 ile etkinlik günlüklerini görüntülemek için az monitor activity-log list komutunu kullanın.

Bu komut, 1 Mart'taki bir kaynak grubundaki etkinlik günlüklerini yedi gün ileriye doğru listeler:

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

Bu komut, 1 Mart'tan itibaren Yetkilendirme kaynak sağlayıcısının etkinlik günlüklerini yedi gün ileriye doğru listeler:

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

Filtre günlüğü çıkışı

Günlük çıkışı çok fazla bilgi içerebilir. Bu komut, abonelikteki tüm rol ataması ve rol tanımı değişikliklerini yedi gün ileriye doğru listeler ve çıkışı filtreler:

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

Aşağıda, rol ataması oluştururken filtrelenmiş günlük çıktısının bir örneği gösterilmektedir:

[
 {
    "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 İzleyici günlükleri

Azure İzleyici günlükleri , tüm Azure kaynaklarınız için Azure RBAC değişikliklerini toplamak ve analiz etmek için kullanabileceğiniz başka bir araçtır. Azure İzleyici günlükleri aşağıdaki avantajlara sahiptir:

  • Karmaşık sorgular ve mantık yazma
  • Uyarılar, Power BI ve diğer araçlarla tümleştirme
  • Daha uzun saklama süreleri için verileri kaydetme
  • Güvenlik, sanal makine ve özel gibi diğer günlüklerle çapraz başvuru

Başlamak için temel adımlar şunlardır:

  1. Log Analytics çalışma alanı oluşturun.

  2. Çalışma alanınız için Etkinliği yapılandırın.

  3. etkinlik günlüklerini Analizler görüntüleyin. Etkinlik Günlüğüne Genel Bakış sayfasına gitmenin hızlı bir yolu Günlükler seçeneğine tıklamaktır.

    Azure Monitor logs option in portal

  4. İsteğe bağlı olarak günlükleri sorgulamak ve görüntülemek için Azure İzleyici Log Analytics'i kullanın. Daha fazla bilgi için bkz . Azure İzleyici'de günlük sorgularını kullanmaya başlama.

Hedef kaynak sağlayıcısı tarafından düzenlenen yeni rol atamalarını döndüren bir sorgu aşağıdadır:

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

Grafikte görüntülenen rol ataması değişikliklerini döndüren bir sorgu aşağıdadır:

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

Activity logs using the Advanced Analytics portal - screenshot

Sonraki adımlar