Mengelola log alur NSG menggunakan REST API

Pengelogan alur kelompok keamanan jaringan adalah fitur Azure Network Watcher yang memungkinkan Anda mencatat informasi tentang lalu lintas IP yang mengalir melalui grup keamanan jaringan. Untuk informasi selengkapnya tentang pengelogan alur grup keamanan jaringan, lihat Gambaran umum log alur NSG.

Artikel ini memperlihatkan kepada Anda cara menggunakan REST API untuk mengaktifkan, menonaktifkan, dan mengkueri log alur menggunakan REST API. Anda dapat mempelajari cara mengelola log alur NSG menggunakan templat portal Azure, PowerShell, Azure CLI, atau ARM.

Dalam artikel ini, Anda akan mempelajari cara:

  • Mengaktifkan log aliran (Versi 2)
  • Menonaktifkan log aliran
  • Status log aliran kueri

Prasyarat

  • Akun Azure dengan langganan aktif. Buat akun secara gratis.
  • ARMClient. ARMClient adalah alat baris perintah sederhana untuk memanggil API Azure Resource Manager. Untuk memasangnya, lihat ARMClient. Untuk spesifikasi terperinci tentang REST API log alur NSG, lihat Log Alur - REST API

Penting

Saat Anda melakukan panggilan REST API ke Network Watcher, nama grup sumber daya dalam URI permintaan mengacu pada grup sumber daya yang berisi Network Watcher, bukan sumber daya tempat Anda melakukan tindakan diagnostik.

Masuk dengan ARMClient

Masuk ke armclient dengan kredensial Azure Anda.

armclient login

Mendaftarkan penyedia insight

Penyedia Microsoft.Insights harus didaftarkan untuk berhasil mencatat lalu lintas yang mengalir melalui grup keamanan jaringan. Jika Anda tidak yakin apakah penyedia Microsoft.Insights terdaftar, gunakan Penyedia - Daftarkan REST API untuk mendaftarkannya.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"

Aktifkan log alur NSG

Perintah untuk mengaktifkan log aliran versi 2 ditunjukkan pada contoh berikut. Untuk versi 1, ganti bidang 'versi' dengan '1':

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'true',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

Respon yang dikembalikan dari contoh sebelumnya adalah sebagai berikut:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Catatan

Menonaktifkan log alur NSG

Gunakan contoh berikut untuk menonaktifkan log aliran. Panggilannya sama dengan mengaktifkan log alur, kecuali false disetel untuk properti yang diaktifkan.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/00000000-0000-0000-0000-000000000000/{resourceGroupName/providers/Microsoft.Storage/storageAccounts/{saName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
    'properties': {
    'storageId': '${storageId}',
    'enabled': 'false',
    'retentionPolicy' : {
			days: 5,
			enabled: true
		},
    'format': {
        'type': 'JSON',
        'version': 2
    }
	}
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/configureFlowLog?api-version=2022-11-01" $requestBody

Respon yang dikembalikan dari contoh sebelumnya adalah sebagai berikut:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": false,
    "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Catatan

Log aliran kueri

Panggilan REST berikut mengkueri status log alur pada grup keamanan jaringan.

$subscriptionId = "00000000-0000-0000-0000-000000000000"
$targetUri = "" # example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$resourceGroupName = "NetworkWatcherRG"
$networkWatcherName = "NetworkWatcher_westcentralus"
$requestBody = @"
{
    'targetResourceId': '${targetUri}',
}
"@

armclient post "https://management.azure.com/subscriptions/${subscriptionId}/ResourceGroups/${resourceGroupName}/providers/Microsoft.Network/networkWatchers/${networkWatcherName}/queryFlowLogStatus?api-version=2022-11-01" $requestBody

Contoh berikut menunjukkan respons yang dikembalikan:

{
  "targetResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkSecurityGroups/{nsgName}",
  "properties": {
    "storageId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{saName}",
    "enabled": true,
   "retentionPolicy": {
      "days": 5,
      "enabled": true
    },
    "format": {
    "type": "JSON",
    "version": 2
    }
  }
}

Catatan

  • Network Watchers - Get Flow Log Status REST API yang digunakan dalam contoh sebelumnya, memerlukan izin pembaca tambahan di grup sumber daya pengamat jaringan. Selain itu, API ini sudah lama dan mungkin segera tidak digunakan lagi.
  • Disarankan untuk menggunakan Log Alur baru - Dapatkan REST API untuk mengkueri log alur.

Mengunduh log aliran

Lokasi penyimpanan log alur ditentukan saat pembuatan. Alat yang nyaman untuk mengakses log alur yang disimpan ke akun penyimpanan adalah Microsoft Azure Storage Explorer. Untuk informasi selengkapnya, lihat Mulai menggunakan Storage Explorer.

Jika akun penyimpanan ditentukan, file pengambilan paket disimpan ke akun penyimpanan pada lokasi berikut:

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{nsgName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

Langkah berikutnya