Menampilkan log aktivitas untuk perubahan Azure RBAC

Terkadang, Anda memerlukan informasi tentang perubahan kontrol akses berbasis peran Azure (Azure RBAC), seperti untuk tujuan audit atau pemecahan masalah. Setiap kali seseorang membuat perubahan pada penetapan peran atau definisi peran dalam langganan Anda, perubahan akan dicatat di Azure Activity Log. Anda dapat melihat log aktivitas untuk melihat semua perubahan Azure RBAC selama 90 hari terakhir.

Operasi yang dicatat

Berikut adalah operasi terkait Azure RBAC yang dicatat ke Log Aktivitas:

  • Membuat penetapan peran
  • Menghapus penetapan peran
  • Membuat atau memperbarui definisi peran kustom
  • Hapus definisi peran kustom

Portal Azure

Cara termudah untuk memulai adalah dengan melihat log aktivitas dengan portal Microsoft Azure. Cuplikan layar berikut menunjukkan contoh operasi penetapan peran dalam log aktivitas. Ini juga termasuk opsi untuk mengunduh log sebagai file CSV.

Activity logs using the portal - screenshot

Untuk mendapatkan informasi selengkapnya, klik entri untuk membuka panel ringkasan. Klik tab JSON untuk mendapatkan log mendetail.

Activity logs using the portal with summary pane open - screenshot

Log aktivitas di portal memiliki beberapa filter. Berikut adalah filter terkait Azure RBAC:

Filter Nilai
Kategori kejadian
  • Administrasi
Operasi
  • Membuat penetapan peran
  • Menghapus penetapan peran
  • Membuat atau memperbarui definisi peran kustom
  • Hapus definisi peran kustom

Untuk informasi lebih lanjut tentang log aktivitas, lihat Log Aktivitas Azure.

Menginterpretasikan entri log

Output log dari tab JSON, Azure PowerShell, atau Azure CLI dapat mencakup banyak informasi. Berikut adalah beberapa properti kunci yang harus dicari saat mencoba menginterpretasikan entri log. Untuk cara memfilter output log menggunakan Azure PowerShell atau Azure CLI, lihat bagian berikut.

Properti Contoh nilai Deskripsi
otorisasi:tindakan Microsoft.Authorization/roleAssignments/write Membuat penetapan peran
Microsoft.Authorization/roleAssignments/delete Menghapus penetapan peran
Microsoft.Authorization/roleDefinitions/write Membuat atau memperbarui definisi peran
Microsoft.Authorization/roleDefinitions/delete Menghapus definisi peran
otorisasi:cakupan /subscriptions/{subscriptionId}
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId}
Cakupan untuk tindakan
pemanggil admin@example.com
{objectId}
Yang memulai tindakan
eventTimestamp 2021-03-01T22:07:41.126243Z Waktu tindakan terjadi
status:nilai Dimulai
Berhasil
Gagal
Status tindakan

Azure PowerShell

Untuk menampilkan log aktivitas dengan Azure PowerShell, gunakan perintah Get-AzLog.

Perintah ini mencantumkan semua perubahan penetapan peran dalam langganan selama tujuh hari terakhir:

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

Perintah ini mencantumkan semua perubahan definisi peran dalam grup sumber daya selama tujuh hari terakhir:

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

Memfilter output log

Output log dapat mencakup banyak informasi. Perintah ini mencantumkan semua perubahan penetapan peran dan definisi peran dalam langganan selama tujuh hari terakhir dan memfilter output:

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

Berikut ini menunjukkan contoh output log yang difilter saat membuat penetapan peran:

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}

Jika Anda menggunakan perwakilan layanan untuk membuat penetapan peran, properti Pemanggil akan menjadi ID objek perwakilan layanan. Anda dapat menggunakan Get-AzADServicePrincipal untuk mendapatkan informasi tentang perwakilan layanan.

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

Untuk melihat log aktivitas dengan Azure CLI, gunakan perintah az monitor activity-log list.

Perintah ini mencantumkan log aktivitas dalam grup sumber daya mulai 1 Maret, hingga tujuh hari:

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

Perintah ini mencantumkan log aktivitas untuk penyedia sumber daya Otorisasi mulai 1 Maret, hingga tujuh hari:

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

Memfilter output log

Output log dapat mencakup banyak informasi. Perintah ini mencantumkan semua perubahan penetapan peran dan definisi peran dalam langganan hingga tujuh hari dan memfilter output:

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

Berikut ini menunjukkan contoh output log yang difilter saat membuat penetapan peran:

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

Log Azure Monitor

Log Azure Monitor adalah alat lain yang dapat Anda gunakan untuk mengumpulkan dan menganalisis perubahan Azure RBAC untuk semua sumber daya Azure Anda. Log Azure Monitor memiliki keuntungan berikut:

  • Menulis kueri dan logika yang kompleks
  • Mengintegrasikan dengan pemberitahuan, Power BI, dan alat lainnya
  • Menyimpan data untuk periode retensi yang lebih lama
  • Referensi silang dengan log lain seperti keamanan, komputer virtual, dan kustom

Berikut adalah langkah dasar untuk memulai:

  1. Membuat ruang kerja Analitik Log.

  2. Konfigurasikan Aktivitas untuk ruang kerja Anda.

  3. Lihat wawasan log aktivitas. Cara cepat untuk menavigasi ke halaman Gambaran Umum Log Aktivitas adalah dengan mengklik opsi Log .

    Azure Monitor logs option in portal

  4. Secara opsional, gunakan Analitik Log Azure Monitor untuk mengkueri dan menampilkan log. Untuk informasi selengkapnya, lihat Mulai menggunakan kueri Log di Azure Monitor.

Berikut adalah kueri yang menampilkan penetapan peran baru yang diatur oleh penyedia sumber daya target:

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

Berikut adalah kueri yang menampilkan perubahan penetapan peran yang ditampilkan dalam bagan:

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

Langkah berikutnya