Peran, izin, dan keamanan di Azure Monitor

Artikel ini menunjukkan cara cepat menerapkan peran pemantauan bawaan ke pengguna di Azure atau membuat peran kustom Anda sendiri untuk pengguna yang memerlukan izin pemantauan terbatas. Artikel tersebut kemudian membahas pertimbangan keamanan untuk sumber daya terkait Azure Monitor Anda dan bagaimana Anda dapat membatasi akses ke data di sumber daya tersebut.

Peran pemantauan bawaan

Peran bawaan di Azure Monitor membantu membatasi akses ke sumber daya dalam langganan sambil tetap memungkinkan staf pemantauan infrastruktur untuk mendapatkan dan mengkonfigurasi data yang mereka butuhkan. Azure Monitor menyediakan dua peran siap pakai: Pembaca Pemantauan dan Kontributor Pemantauan. Log Azure Monitor juga menyediakan peran bawaan untuk mengelola akses ke data di ruang kerja Log Analytics, seperti yang dijelaskan dalam Mengelola akses ke ruang kerja Analitik Log.

Pembaca Pemantauan

Orang yang diberi peran Pembaca Pemantauan dapat melihat semua data pemantauan dalam langganan tetapi tidak dapat mengubah sumber daya apa pun atau mengedit pengaturan apa pun yang terkait dengan sumber daya pemantauan. Peran ini sesuai untuk pengguna dalam organisasi, seperti teknisi pendukung atau operasi, yang memerlukan:

  • Lihat dasbor pemantauan di portal Microsoft Azure.
  • Lihat aturan pemberitahuan yang ditentukan dalam pemberitahuan Azure.
  • Kueri Metrik Azure Monitor dengan menggunakan REST API Azure Monitor, cmdlet PowerShell, atau CLI lintas platform.
  • Kueri log Aktivitas dengan menggunakan portal, REST API Azure Monitor, cmdlet PowerShell, atau CLI lintas platform.
  • Tampilkan pengaturan diagnostik untuk sumber daya.
  • Tampilkan profil log untuk langganan.
  • Tampilkan pengaturan skala otomatis.
  • Tampilkan aktivitas dan pengaturan pemberitahuan.
  • Cari data ruang kerja Analisis Log, termasuk data penggunaan untuk ruang kerja.
  • Ambil skema tabel di ruang kerja Analitik Log.
  • Mengambil dan menjalankan kueri log di ruang kerja Analitik Log.
  • Mengakses data Application Insights.

Catatan

Peran ini tidak memberikan akses baca ke data log yang telah di streaming ke hub peristiwa atau disimpan di akun penyimpanan. Untuk informasi tentang cara mengonfigurasi akses ke sumber daya ini, lihat bagian Pertimbangan keamanan untuk memantau data nanti di artikel ini.

Kontributor Pemantauan

Orang yang diberi peran Kontributor Pemantauan dapat melihat semua data pemantauan dalam langganan. Mereka juga dapat membuat atau mengubah pengaturan pemantauan, tetapi mereka tidak dapat mengubah sumber daya lainnya.

Peran ini adalah superset dari peran Pembaca Pemantauan. Hal ini sesuai untuk anggota tim pemantau organisasi atau penyedia layanan terkelola yang, selain izin yang disebutkan sebelumnya, perlu untuk:

  • Lihat dasbor pemantauan di portal dan buat dasbor pemantauan pribadi mereka sendiri.
  • Membuat dan mengedit pengaturan diagnostik untuk sumber daya. 1
  • Atur aktivitas dan pengaturan aturan pemberitahuan menggunakan pemberitahuan Azure.
  • Mencantumkan kunci bersama untuk ruang kerja Analitik Log.
  • Buat, hapus, dan jalankan pencarian tersimpan di ruang kerja Analitik Log.
  • Buat dan hapus konfigurasi penyimpanan ruang kerja untuk Analitik Log.
  • Buat pengujian web dan komponen untuk Application Insights. Lihat Sumber Daya, peran, dan kontrol akses di Application Insights.

1 Untuk membuat atau mengedit pengaturan diagnostik, pengguna juga harus secara terpisah diberikan izin ListKeys pada sumber daya target (akun penyimpanan atau namespace pusat aktivitas).

Catatan

Peran ini tidak memberikan akses baca ke data log yang telah di streaming ke hub peristiwa atau disimpan di akun penyimpanan. Untuk informasi tentang cara mengonfigurasi akses ke sumber daya ini, lihat bagian Pertimbangan keamanan untuk memantau data nanti di artikel ini.

Izin pemantauan dan peran kustom Azure

Jika peran bawaan sebelumnya tidak memenuhi kebutuhan tim Anda, Anda dapat membuat peran kustom Azure dengan izin yang lebih terperinci. Operasi kontrol akses berbasis peran (RBAC) Azure yang umum untuk Azure Monitor tercantum di sini.

Operasi Deskripsi
Microsoft.Insights/ActionGroups/[Read, Write, Delete] Membaca, menulis, atau menghapus grup tindakan.
Microsoft.Insights/ActivityLogAlerts/[Read, Write, Delete] Membaca, menulis, atau menghapus peringatan log Aktivitas.
Microsoft.Insights/AlertRules/[Read, Write, Delete] Baca, tulis, atau hapus aturan pemberitahuan (dari pemberitahuan klasik).
Microsoft.Insights/AlertRules/Incidents/Read Cantumkan insiden (riwayat aturan pemberitahuan yang dipicu) untuk aturan pemberitahuan. Hal ini hanya berlaku untuk portal.
Microsoft.Insights/AutoscaleSettings/[Read, Write, Delete] Membaca, menulis, atau menghapus pengaturan skala otomatis.
Microsoft.Insights/DiagnosticSettings/[Read, Write, Delete] Membaca, menulis, atau menghapus pengaturan diagnostik.
Microsoft.Insights/EventCategories/Read Hitung semua kategori yang mungkin dalam log Aktivitas. Digunakan oleh portal Azure.
Microsoft.Insights/eventtypes/digestevents/Read Izin ini diperlukan bagi pengguna yang membutuhkan akses ke log Aktivitas melalui portal.
Microsoft.Insights/eventtypes/values/Read Cantumkan peristiwa log Aktivitas (peristiwa manajemen) dalam langganan. Izin ini berlaku untuk akses terprogram dan portal ke log Aktivitas.
Microsoft.Insights/ExtendedDiagnosticSettings/[Read, Write, Delete] Membaca, menulis, atau menghapus pengaturan diagnostik untuk log aliran jaringan.
Microsoft.Insights/LogDefinitions/Read Izin ini diperlukan bagi pengguna yang membutuhkan akses ke log Aktivitas melalui portal.
Microsoft.Insights/LogProfiles/[Read, Write, Delete] Membaca, menulis, atau menghapus profil log (streaming log Aktivitas ke hub peristiwa atau akun penyimpanan).
Microsoft.Insights/MetricAlerts/[Read, Write, Delete] Membaca, menulis, atau menghapus aturan pemberitahuan metrik.
Microsoft.Insights/MetricDefinitions/Read Membaca definisi metrik (daftar tipe metrik yang tersedia untuk sumber daya).
Microsoft.Insights/Metrics/Read Membaca metrik untuk sumber daya.
Microsoft.Insights/Register/Action Daftarkan penyedia sumber daya Azure Monitor.
Microsoft.Insights/ScheduledQueryRules/[Read, Write, Delete] Baca, tulis, atau hapus pemberitahuan pencarian log di Azure Monitor.

Catatan

Akses ke pemberitahuan, pengaturan diagnostik, dan metrik untuk sumber daya mengharuskan pengguna memiliki akses baca ke jenis sumber daya dan cakupan sumber daya tersebut. Membuat pengaturan diagnostik yang mengirim data ke akun penyimpanan atau streaming ke hub peristiwa mengharuskan pengguna juga memiliki izin ListKeys pada sumber daya target.

Misalnya, Anda dapat menggunakan tabel sebelumnya untuk membuat peran kustom Azure untuk Pembaca Log Aktivitas dengan yang berikut ini:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Activity Log Reader"
$role.Description = "Can view activity logs."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Insights/eventtypes/*")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription")
New-AzRoleDefinition -Role $role 

Pertimbangan keamanan untuk data pemantauan

Data di Azure Monitor dapat dikirim di akun penyimpanan atau dialirkan ke pusat aktivitas, yang keduanya merupakan sumber daya Azure tujuan umum. Karena ini adalah sumber daya tujuan umum, membuat, menghapus, dan mengaksesnya adalah operasi istimewa yang disediakan untuk administrator. Karena data ini dapat berisi informasi sensitif seperti alamat IP atau nama pengguna, gunakan praktik berikut untuk memantau sumber daya terkait untuk mencegah penyalahgunaan:

  • Gunakan satu akun penyimpanan khusus untuk data pemantauan. Jika Anda perlu memisahkan data pemantauan menjadi beberapa akun penyimpanan, jangan pernah membagi penggunaan akun penyimpanan antara data pemantauan dan non-pemantauan. Berbagi penggunaan dengan cara itu mungkin secara tidak sengaja memberikan akses ke data non-pemantauan ke organisasi yang hanya memerlukan akses ke data pemantauan. Misalnya, organisasi pihak ketiga untuk informasi keamanan dan manajemen peristiwa seharusnya hanya memerlukan akses ke data pemantauan.
  • Gunakan bus layanan khusus atau namespace layanan hub peristiwa di semua pengaturan diagnostik untuk alasan yang sama seperti yang dijelaskan di poin sebelumnya.
  • Batasi akses ke akun penyimpanan terkait pemantauan atau hub peristiwa dengan menyimpannya dalam grup sumber daya terpisah. Gunakan cakupan pada peran pemantauan Anda untuk membatasi akses hanya ke grup sumber daya tersebut.
  • Jangan pernah memberikan izin ListKeys untuk akun penyimpanan atau hub peristiwa pada cakupan langganan saat pengguna hanya membutuhkan akses ke data pemantauan. Sebagai gantinya, berikan izin ini kepada pengguna di sumber daya atau cakupan grup sumber daya (jika Anda memiliki grup sumber daya pemantauan khusus).

Saat pengguna atau aplikasi memerlukan akses ke data pemantauan di akun penyimpanan, buat tanda tangan akses bersama (SAS) pada akun penyimpanan yang berisi data pemantauan dengan akses hanya-baca tingkat layanan ke penyimpanan blob. Di PowerShell, akun tanda tangan akses bersama mungkin terlihat seperti kode berikut:

$context = New-AzStorageContext -ConnectionString "[connection string for your monitoring Storage Account]"
$token = New-AzStorageAccountSASToken -ResourceType Service -Service Blob -Permission "rl" -Context $context

Anda kemudian dapat memberikan token ke entitas yang perlu membaca dari akun penyimpanan tersebut. Entitas dapat membuat daftar dan membaca dari semua blob di akun penyimpanan itu.

Atau, jika Anda perlu mengontrol izin ini dengan Azure RBAC, Anda dapat memberikan entitas tersebut izin Microsoft.Storage/storageAccounts/listkeys/action pada akun penyimpanan tertentu tersebut. Izin ini diperlukan bagi pengguna yang perlu mengatur pengaturan diagnostik untuk mengirim data ke akun penyimpanan. Misalnya, Anda dapat membuat peran kustom Azure berikut untuk pengguna atau aplikasi yang perlu membaca hanya dari satu akun penyimpanan:

$role = Get-AzRoleDefinition "Reader"
$role.Id = $null
$role.Name = "Monitoring Storage Account Reader"
$role.Description = "Can get the storage account keys for a monitoring storage account."
$role.Actions.Clear()
$role.Actions.Add("Microsoft.Storage/storageAccounts/listkeys/action")
$role.Actions.Add("Microsoft.Storage/storageAccounts/Read")
$role.AssignableScopes.Clear()
$role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myMonitoringStorageAccount")
New-AzRoleDefinition -Role $role 

Peringatan

Izin ListKeys memungkinkan pengguna mencantumkan kunci akun penyimpanan utama dan sekunder. Kunci ini memberi pengguna semua izin yang ditandatangani (seperti membaca, menulis, membuat blob, dan menghapus blob) di semua layanan yang ditandatangani (blob, antrean, tabel, file) di akun penyimpanan tersebut. Sebaiknya gunakan akun tanda tangan akses bersama jika memungkinkan.

Anda dapat mengikuti pola serupa dengan hub peristiwa, tetapi pertama-tama Anda harus membuat aturan otorisasi khusus untuk mendengarkan. Jika Anda ingin memberikan akses ke aplikasi yang hanya perlu mendengarkan hub peristiwa terkait pemantauan, ikuti langkah-langkah berikut:

  1. Di portal, buat kebijakan akses bersama di hub peristiwa yang dibuat untuk streaming data pemantauan dengan hanya klaim mendengarkan. Misalnya, Anda mungkin menyebutnya "monitoringReadOnly." Jika memungkinkan, berikan kunci itu langsung ke konsumen dan lewati langkah selanjutnya.

  2. Jika konsumen perlu mendapatkan ad hoc kunci, berikan tindakan ListKeys kepada pengguna untuk hub peristiwa tersebut. Langkah ini juga diperlukan bagi pengguna yang perlu mengatur pengaturan diagnostik atau profil log untuk melakukan streaming ke hub peristiwa. Misalnya, Anda dapat membuat aturan Azure RBAC:

    $role = Get-AzRoleDefinition "Reader"
    $role.Id = $null
    $role.Name = "Monitoring Event Hub Listener"
    $role.Description = "Can get the key to listen to an event hub streaming monitoring data."
    $role.Actions.Clear()
    $role.Actions.Add("Microsoft.EventHub/namespaces/authorizationrules/listkeys/action")
    $role.Actions.Add("Microsoft.EventHub/namespaces/Read")
    $role.AssignableScopes.Clear()
    $role.AssignableScopes.Add("/subscriptions/mySubscription/resourceGroups/myResourceGroup/providers/Microsoft.ServiceBus/namespaces/mySBNameSpace")
    New-AzRoleDefinition -Role $role 
    

Langkah berikutnya