Bagikan melalui


Konfigurasi RBAC terperinci (Pratinjau) di Azure Monitor

Kontrol akses berbasis peran terperinci (RBAC) adalah fitur Azure Monitor Log Analytics yang menerapkan kontrol akses data terperinci.

Pelajari cara mengontrol akses ke log berdasarkan peran, departemen, dan lokasi geografis. Ini termasuk skenario seperti membatasi personel SDM untuk data karyawan atau membatasi akses ke log menurut negara atau departemen.

Dalam skenario contoh ini, tabel dan bidang Analitik Log yang dikenal luas digunakan untuk menerapkan akses tingkat baris. Data dipisahkan berdasarkan atribut seperti jenis perangkat dan nama prinsipal pengguna (UPN).

Untuk informasi selengkapnya tentang konsep RBAC terperinci, lihat Kontrol akses berbasis peran granular (RBAC) di Azure Monitor.

Prasyarat

Prasyarat berikut diperlukan untuk menyelesaikan skenario ini:

Tentukan skenario

Dalam skenario ini, kontrol akses tingkat baris diimplementasikan dengan cara yang ketat pada CommonSecurityLog dan secara permisif untuk mengontrol tabel SigninLogs dan DnsEvents di Ruang Kerja Analisis Log. Kondisi diatur untuk sekelompok operator sebagai berikut:

  1. Atur akses grup tim jaringan untuk hanya mengakses CommonSecurityLog tabel tempat nama DeviceVendor cocok dengan firewall jaringan. Konfigurasi ini menggunakan strategi Tidak ada akses ke data, kecuali yang diizinkan.
  2. Berikan akses tim analis keamanan tingkat 1 ke semua tabel, tetapi batasi SigninLogs tabel dan DnsEvents untuk mencegah mereka mengakses rekaman yang berisi UPN atau nama komputer CEO. Konfigurasi ini menggunakan Akses ke semua data, kecuali strategi yang tidak diizinkan .

Membuat peran kustom

Siapkan peran kustom untuk skenario yang ditentukan. Buat satu untuk tim jaringan dan satu lagi untuk tim keamanan. Perlu diingat, penetapan peran bersifat aditif, jadi hapus peran apa pun yang menetapkan akses baca yang memberikan lebih banyak hak istimewa daripada kondisi RBAC granular. Untuk informasi selengkapnya, lihat Mengonfigurasi pembuatan peran RBAC terperinci.

  1. Dari grup sumber daya yang berisi ruang kerja Analitik Log prasyarat, pilih Kontrol akses (IAM).
  2. Pilih Tambahkan peran kustom.
  3. Buat peran akses data umum dengan tindakan dan tindakan data berikut di tingkat grup sumber daya:
Definisi peran kustom Detil
Tindakan Microsoft.OperationalInsights/workspaces/read
Microsoft.OperationalInsights/workspaces/query/read
Tindakan data Microsoft.OperationalInsights/workspaces/tables/data/read

Gambar ini memperlihatkan bagaimana tindakan peran kustom dan tindakan data muncul di halaman Tambahkan peran kustom . Cuplikan layar memperlihatkan bagaimana tindakan peran kustom dan tindakan data muncul.

  1. Masukkan nama untuk peran kustom, seperti Log Analytics Network Device team
  2. Ulangi langkah 2-4 untuk Log Analytics Security Analysts tier 1 peran kustom. Gunakan opsi Gandakan peran dan pilih peran Log Analytics Network Device team sebagai dasar.

Menetapkan peran kustom

Tetapkan peran kustom ke pengguna atau grup. Untuk informasi selengkapnya, lihat Menetapkan peran RBAC terperinci.

  1. Dari ruang kerja Analitik Log, pilih Kontrol akses (IAM).
  2. Pilih Tambahkan penetapan peran.
  3. Pilih peran kustom yang Log Analytics Network Device team Anda buat, lalu pilih Berikutnya.
  4. Pilih pengguna atau grup yang ingin Anda tetapkan perannya, lalu pilih Berikutnya. Contoh ini menetapkan peran ke grup keamanan tim jaringan.
  5. Pilih Kondisi>Tambahkan kondisi>Tambahkan tindakan.
  6. Pilih tindakan >Pilih.

Berikut tampilan bagian tindakan saat selesai:

Cuplikan layar memperlihatkan bagian tambahkan tindakan dari halaman tambahkan kondisi.

Membangun kondisi pembatasan

Peran kustom pertama menggunakan strategi tidak ada akses ke data, kecuali yang diizinkan. Dalam kasus penggunaan ini, tim jaringan hanya memerlukan akses ke CommonSecurityLog tabel, dan hanya untuk rekaman di mana DeviceVendor cocok dengan solusi firewall mereka, baik Check Point atau SonicWall.

  1. Di bagian Bangun ekspresi, pilih Tambahkan ekspresi.
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nama Tabel dari menu dropdown Atribut .
  4. Pilih StringEquals dari menu dropdown Operator .
  5. Ketik CommonSecurityLog di bidang Nilai .
  6. Pilih Tambahkan ekspresi, lalu pilih Dan untuk menambahkan ekspresi lain.
  7. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  8. Pilih Nilai kolom dari menu dropdown Atribut .
  9. Masukkan DeviceVendor untuk Kunci.
  10. Pilih ForAnyOfAnyValues:StringLikeIgnoreCase dari menu dropdown Operator .
  11. Di bidang Nilai , masukkan Check Point dan SonicWall.
  12. Pilih ekspresi 1 dan 2> pilih Grup dengan tombol radio Dan dipilih.
  13. Pilih Simpan.

Berikut adalah tampilan kondisi restriktif ketika sudah selesai:

Cuplikan layar memperlihatkan ekspresi untuk kondisi pembatasan.

Berikut tampilan kondisi pembatasan dalam formulir kode:

(
 (
  !(ActionMatches{'Microsoft.OperationalInsights/workspaces/tables/data/read'})
 )
 OR 
(
  (
   @Resource[Microsoft.OperationalInsights/workspaces/tables:name] StringEquals 'CommonSecurityLog'
   AND
   @Resource[Microsoft.OperationalInsights/workspaces/tables/record:DeviceVendor<$key_case_sensitive$>] ForAnyOfAnyValues:StringLikeIgnoreCase {'Check Point', 'SonicWall'}
  )
 )
)

Untuk informasi selengkapnya tentang cara terprogram untuk menetapkan peran dengan kondisi, lihat Menambahkan atau mengedit kondisi ABAC.

Izinkan hingga 15 menit agar izin efektif berlaku.

Menyusun situasi yang permisif

Peran kustom kedua menggunakan strategi Akses ke semua data, kecuali yang tidak diizinkan. Dalam kasus penggunaan ini, tim analis keamanan tingkat 1 memerlukan akses ke semua tabel, tetapi membatasi akses ke SigninLogs tabel dan DnsEvents untuk mencegah akses rekaman untuk UPN atau nama komputer CEO.

  1. Tambahkan penetapan peran baru, lalu buat ekspresi permisif. Dari ruang kerja Analitik Log, pilih Kontrol akses (IAM).
  2. Pilih Tambahkan penetapan peran.
  3. Pilih peran kustom yang Log Analytics Security Analysts tier 1 Anda buat, lalu pilih Berikutnya.
  4. Pilih pengguna atau grup yang ingin Anda tetapkan perannya, lalu pilih Berikutnya. Contoh ini menetapkan peran ke kelompok keamanan analis tingkat 1.
  5. Pilih Kondisi>Tambahkan kondisi>Tambahkan tindakan.
  6. Pilih tindakan >Pilih.

Ekspresi 1

  1. Di bagian Membangun Ekspresi, pilih Tambah Ekspresi
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nama Tabel dari menu dropdown Atribut .
  4. Pilih ForAnyOfAllValues:StringNotEquals dari menu dropdown Operator .
  5. Ketik SigninLogs dan DnsEvents di bidang Nilai .
  6. Pastikan operator Atau dipilih setelah ekspresi 1.

Ekspresi 2

  1. Pilih Tambahkan ekspresi
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nama Tabel dari menu dropdown Atribut .
  4. Pilih StringEquals dari menu dropdown Operator .
  5. Di bidang Nilai, masukkan SigninLogs.

Ekspresi 3

  1. Pilih Tambahkan ekspresi
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nilai kolom dari menu dropdown Atribut .
  4. Masukkan UserPrincipalName untuk Kunci.
  5. Pilih StringNotEquals dari menu dropdown Operator .
  6. Ketik CEO@contoso.com di bidang Nilai .
  7. Pilih ekspresi 2 dan 3> pilih Grup dengan tombol radio Dan dipilih.

Ekspresi 4

  1. Pilih Tambahkan ekspresi
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nama Tabel dari menu dropdown Atribut .
  4. Pilih StringEquals dari menu dropdown Operator .
  5. Di bidang Nilai, masukkan DnsEvents.

Ekspresi 5 - Batas di editor visual adalah lima, tetapi lebih banyak ekspresi dapat ditambahkan di editor kode.

  1. Pilih Tambahkan ekspresi
  2. Pilih Sumber Daya dari menu dropdown Sumber atribut .
  3. Pilih Nilai kolom dari menu dropdown Atribut .
  4. Masukkan ComputerName untuk Kunci.
  5. Pilih StringNotEquals dari menu dropdown Operator .
  6. Ketik CEOlaptop di bidang Nilai .
  7. Pilih ekspresi 4 dan 5> pilih Grup dengan tombol radio Dan dipilih.
  8. Pilih Simpan.

Berikut tampilan kondisi permisif saat selesai - perhatikan tombol Tambahkan ekspresi dinonaktifkan. Perilaku ini disebabkan oleh jumlah maksimum ekspresi yang tercapai.

Tangkapan layar yang menunjukkan ekspresi kedua yang permisif.

Berikut adalah bagaimana kondisi permisif terlihat dalam formulir kode:

(
 (
  !(ActionMatches{'Microsoft.OperationalInsights/workspaces/tables/data/read'})
 )
 OR 
 (
  @Resource[Microsoft.OperationalInsights/workspaces/tables:name] ForAnyOfAllValues:StringNotEquals {'SigninLogs', 'DnsEvents'}
  OR
  (
   @Resource[Microsoft.OperationalInsights/workspaces/tables:name] StringEquals 'SigninLogs'
   AND
   @Resource[Microsoft.OperationalInsights/workspaces/tables/record:UserPrincipalName<$key_case_sensitive$>] StringNotEquals 'CEO@contoso.com'
  )
  OR
  (
   @Resource[Microsoft.OperationalInsights/workspaces/tables:name] StringEquals 'DnsEvents'
   AND
   @Resource[Microsoft.OperationalInsights/workspaces/tables/record:Computer<$key_case_sensitive$>] StringNotEquals 'CEOlaptop1'
  )
 )
)

Izinkan hingga 15 menit agar izin efektif berlaku.

Pemecahan masalah dan pemantauan

Untuk pemecahan masalah ABAC umum, lihat Memecahkan masalah kondisi penetapan peran Azure.

  • Perubahan pada penetapan peran dicatat di log Aktivitas Azure.

  • Tabel LAQueryLogs merekam apakah kueri pengguna dijalankan dengan kondisi ABAC yang berlaku di kolom ConditionalDataAccess. Untuk informasi selengkapnya, lihat referensi tabel LAQueryLogs.

    Berikut adalah contoh kueri yang telah diaudit dan dijalankan oleh analis keamanan tingkat 1 yang memicu kondisi yang dikonfigurasi untuk tabel SigninLogs.

    Cuplikan layar memperlihatkan kondisi yang diterapkan untuk kueri yang diaudit.

  • Nilai yang digunakan untuk nama tabel dan nilai kolom peka terhadap huruf besar/kecil. Jika nama atau nilai tabel salah ditentukan, kondisi mungkin gagal, atau menghasilkan perilaku yang tidak terduga, dan akses ke data yang diminta mungkin ditolak.

  • Kondisi tidak valid yang menyebabkan kesalahan logika memicu pesan kesalahan "400 Permintaan Tidak Valid" untuk semua pengguna yang terpengaruh. Administrator harus merevisi kondisi. Contohnya adalah mengatur kondisi pada tingkat ruang kerja dengan kolom yang tidak ada di tabel apa pun.