Melacak perubahan seperangkat aturan Azure Firewall

Artikel ini memperlihatkan kepada Anda cara memantau dan melacak perubahan pada grup kumpulan aturan Azure Firewall menggunakan Azure Resource Graph. Pelacakan perubahan membantu Anda menjaga kepatuhan keamanan, mengaudit modifikasi konfigurasi, dan memecahkan masalah dengan memberikan riwayat terperinci tentang modifikasi seperangkat aturan.

Azure Resource Graph menyediakan data analisis perubahan yang membantu Anda melacak kapan perubahan terdeteksi pada grup pengumpulan aturan Azure Firewall. Anda bisa menampilkan detail perubahan properti dan perubahan kueri dalam skala besar di seluruh langganan, grup manajemen, atau penyewa Anda.

Pelacakan perubahan untuk grup kumpulan aturan Azure Firewall memungkinkan Anda untuk:

  • Memantau perubahan konfigurasi: Melacak semua modifikasi pada aturan dan kebijakan firewall
  • Mempertahankan kepatuhan: Menghasilkan jejak audit untuk persyaratan keamanan dan kepatuhan
  • Memecahkan masalah: Mengidentifikasi kapan perubahan dilakukan yang mungkin memengaruhi konektivitas
  • Menganalisis tren: Memahami pola dalam modifikasi aturan dari waktu ke waktu

Prasyarat

Sebelum Anda dapat melacak perubahan seperangkat aturan, verifikasi bahwa Anda memenuhi persyaratan berikut:

  • Anda memiliki Azure Firewall dengan grup kumpulan aturan yang dikonfigurasi
  • Anda memiliki izin yang sesuai untuk mengakses Azure Resource Graph
  • Azure Firewall Anda menggunakan Azure Firewall Policy (bukan aturan klasik)

Mengakses Azure Resource Graph Explorer

Untuk menjalankan kueri pelacakan perubahan, Anda perlu mengakses Azure Resource Graph Explorer:

  1. Masuk ke portal Microsoft Azure.
  2. Cari dan pilih Resource Graph Explorer
  3. Di jendela kueri, Anda bisa menjalankan kueri pelacakan perubahan yang dijelaskan di bagian berikut ini

Kueri pelacakan perubahan dasar

Gunakan kueri ini untuk mendapatkan tampilan komprehensif dari semua perubahan pada grup kumpulan aturan Azure Firewall:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| extend parsedProperties = parse_json(properties)
| extend TargetResource = tostring(parsedProperties.targetResourceId),
         Timestamp = todatetime(parsedProperties.changeAttributes.timestamp),
         Changes = todynamic(parsedProperties.changes),
         ChangeType = tostring(parsedProperties.changeType),
         PreviousSnapshotId = tostring(parsedProperties.changeAttributes.previousResourceSnapshotId),
         NewSnapshotId = tostring(parsedProperties.changeAttributes.newResourceSnapshotId),
         CorrelationId = tostring(parsedProperties.changeAttributes.correlationId),
         ChangesCount = toint(parsedProperties.changeAttributes.changesCount),
         TenantId = tostring(tenantId),
         Location = tostring(location),
         SubscriptionId = tostring(subscriptionId),
         ResourceGroup = tostring(resourceGroup),
         FirewallPolicyName = extract('/firewallPolicies/([^/]+)/', 1, tostring(id))
| mv-expand ChangeKey = bag_keys(Changes)
| extend ChangeDetails = todynamic(Changes[tostring(ChangeKey)])
| extend RuleCollectionName = extract('properties\\.ruleCollections\\["([^"]+)"\\]', 1, tostring(ChangeKey))
| where isnotempty(RuleCollectionName)
| summarize Changes = make_list(pack("ChangeKey", ChangeKey, "PreviousValue", tostring(ChangeDetails.previousValue), "NewValue", tostring(ChangeDetails.newValue)))
    by Timestamp = format_datetime(Timestamp, 'yyyy-MM-dd HH:mm:ss'),
       TenantId,
       SubscriptionId,
       ResourceGroup,
       Location,
       TargetResource,
       FirewallPolicyName,
       RuleCollectionName,
       ChangeType,
       PreviousSnapshotId,
       NewSnapshotId,
       CorrelationId,
       ChangesCount
| project Timestamp,
          TenantId,
          SubscriptionId,
          ResourceGroup,
          Location,
          TargetResource,
          FirewallPolicyName,
          RuleCollectionName,
          ChangeType,
          PreviousSnapshotId,
          NewSnapshotId,
          CorrelationId,
          ChangesCount,
          Changes
| order by Timestamp desc

Memahami hasil kueri

Kueri pelacakan perubahan mengembalikan informasi berikut untuk setiap perubahan yang terdeteksi:

Bidang Description
Stempel waktu Ketika perubahan terjadi
SubscriptionId Langganan Azure yang berisi firewall
ResourceGroup Grup sumber daya yang berisi kebijakan firewall
FirewallPolicyName Nama kebijakan firewall yang terpengaruh
RuleCollectionName Nama kumpulan aturan yang terpengaruh
JenisPerubahan Jenis perubahan (Buat, Perbarui, Hapus)
JumlahPerubahan Jumlah properti yang diubah
Perubahan Daftar terperinci tentang apa yang berubah, termasuk nilai sebelumnya dan baru
Id Korelasi Pengidentifikasi unik yang menautkan perubahan terkait

Memfilter perubahan menurut periode waktu

Untuk fokus pada perubahan terbaru, Anda bisa menambahkan filter waktu ke kueri Anda:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where todatetime(properties.changeAttributes.timestamp) >= ago(7d)  // Last 7 days
// ... rest of query

Memfilter menurut kebijakan firewall tertentu

Untuk melacak perubahan kebijakan firewall tertentu:

networkresourcechanges
| where properties contains "microsoft.network/firewallpolicies/rulecollectiongroups"
| where id contains "/firewallPolicies/your-policy-name"
// ... rest of query

Menyiapkan pemantauan otomatis

Untuk pemantauan berkelanjutan, pertimbangkan untuk menyiapkan:

  • Kueri terjadwal: Menggunakan Azure Logic Apps atau Azure Automation untuk menjalankan kueri sesuai jadwal
  • Pemberitahuan: Membuat pemberitahuan Azure Monitor berdasarkan pola perubahan
  • Laporan: Mengekspor hasil ke alat penyimpanan atau visualisasi untuk pelaporan

Praktik terbaik

Saat menerapkan pelacakan perubahan seperangkat aturan:

  • Pemantauan reguler: Menyiapkan eksekusi kueri reguler untuk menangkap perubahan segera
  • Kebijakan penyimpanan: Merencanakan penyimpanan data perubahan jangka panjang untuk kepatuhan
  • Kontrol akses: Membatasi akses untuk mengubah data pelacakan berdasarkan persyaratan keamanan
  • Integrasi: Pertimbangkan untuk mengintegrasikan dengan SIEM atau alat pemantauan yang ada

Troubleshooting

Jika Anda tidak melihat perubahan yang diharapkan dalam hasil Anda:

  • Verifikasi bahwa Anda menggunakan Azure Firewall Policy (bukan aturan klasik)
  • Periksa apakah periode waktu dalam kueri Anda mencakup saat perubahan terjadi
  • Pastikan Anda memiliki izin yang diperlukan untuk mengakses Azure Resource Graph
  • Konfirmasikan bahwa nama sumber daya di filter Anda sudah benar