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

Bazen, denetim veya sorun giderme amacıyla Azure rol tabanlı erişim denetimi (Azure RBAC) değişiklikleri hakkında bilgilere ihtiyacınız vardır. Herhangi bir kişi, aboneliklerinizde rol atamaları veya rol tanımlarında değişiklik yaptığında, değişiklikler Azure etkinlik günlüğünekaydedilir. Son 90 güne ait 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üğüne kaydedilen Azure RBAC ile ilgili işlemler şunlardır:

  • Rol ataması oluştur
  • Rol atamasını Sil
  • Özel rol tanımı oluştur veya güncelleştir
  • Ö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 bulunur.

Portalı kullanan etkinlik günlükleri-ekran görüntüsü

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

Özet bölmesi açık olan portalı kullanan etkinlik günlükleri-ekran görüntüsü

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

Filtre Değer
Olay kategorisi
  • Yönetim
İşlem
  • Rol ataması oluştur
  • Rol atamasını Sil
  • Özel rol tanımı oluştur veya güncelleştir
  • Özel rol tanımını sil

Etkinlik günlükleri hakkında daha fazla bilgi için bkz. kaynaklardaki eylemleri izlemek için etkinlik günlüklerini görüntüleme.

Günlük girişini yorumlama

JSON sekmesindeki günlük çıktısı, Azure PowerShell veya Azure CLı, çok fazla bilgi içerebilir. Bir günlük girdisini yorumlama denemesi sırasında aranacak bazı anahtar özelliklerden bazıları aşağıda verilmiştir. Azure PowerShell veya Azure CLı kullanarak günlük çıktısını filtrelemeye yönelik yollar için aşağıdaki bölümlere bakın.

Özellik Örnek değerler Description
Yetkilendirme: eylem Microsoft.Authorization/roleAssignments/write Rol ataması oluştur
Microsoft. Authorization/Roleatamaları/silme Rol atamasını Sil
Microsoft. Authorization/roleDefinitions/Write Rol tanımı oluştur veya güncelleştir
Microsoft. Authorization/roleDefinitions/Delete Rol tanımını sil
Yetkilendirme: kapsam /Subscriptions/{SubscriptionID}
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
Eylem kapsamı
yapana admin@example.com
Uzantının
Eylemi başlatan
eventTimestamp 2021-03-01T22:07:41.126243 Z Eylemin gerçekleştiği zaman
durum: değer Başlarken
Başarılı
Başarısız
Eylemin durumu

Azure PowerShell

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

Bu komut, son yedi güne ait bir abonelikteki 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, son yedi güne ait bir kaynak grubundaki 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üğü çıktısı

Günlük çıktısı çok fazla bilgi içerebilir. Bu komut, son yedi gün için bir abonelikteki tüm rol atamasını ve rol tanımı değişikliklerini listeler ve çıktıyı 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, bir rol ataması oluştururken filtrelenen günlük çıkışı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 bir hizmet sorumlusu kullanıyorsanız, çağıran özelliği bir hizmet sorumlusu nesne KIMLIĞI olur. Hizmet sorumlusu hakkında bilgi almak için Get-AzADServicePrincipal komutunu 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 CLı ile etkinlik günlüklerini görüntülemek için az Monitor Activity-Log List komutunu kullanın.

Bu komut, 1 Mart 'tan bir kaynak grubundaki etkinlik günlüklerini, ileri yedi gün içinde listeler:

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

Bu komut, 1 Mart 'tan yetkilendirme kaynak sağlayıcısı için etkinlik günlüklerini listeler ve yedi gün ileri doğru arar:

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

Filtre günlüğü çıktısı

Günlük çıktısı çok fazla bilgi içerebilir. Bu komut, bir abonelikte yedi gün ileri doğru arama ve çıktıyı filtreleyerek tüm rol atamasını ve rol tanımı değişikliklerini listeler:

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, bir rol ataması oluştururken filtrelenen günlük çıkışı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 izleyici 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 Izleyici günlükleri aşağıdaki avantajlara sahiptir:

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

Kullanmaya başlamak için temel adımlar aşağıda verilmiştir:

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

  2. Çalışma alanınızın etkinlik günlüğü Analizi çözümünü yapılandırın .

  3. Etkinlik günlüklerini görüntüleyin. Etkinlik Günlüğü Analizi çözümüne genel bakış sayfasına gitmeniz için hızlı bir yol, Günlükler seçeneğine tıklamanız.

    Portalda Azure Izleyici günlükleri seçeneği

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

Hedef kaynak sağlayıcısına göre düzenlenmiş yeni rol atamaları döndüren bir sorgu aşağıda verilmiştir:

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

Bir grafikte görüntülenen rol ataması değişikliklerini döndüren bir sorgu aşağıda verilmiştir:

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

Gelişmiş analiz portalını kullanan etkinlik günlükleri-ekran görüntüsü

Sonraki adımlar