REST API kullanarak NSG akış günlüklerini yönetme

Ağ güvenlik grubu akış günlüğü, Azure Ağ İzleyicisi'nin bir ağ güvenlik grubu üzerinden akan IP trafiği hakkındaki bilgileri günlüğe kaydetmenize olanak tanıyan bir özelliğidir. Ağ güvenlik grubu akış günlüğü hakkında daha fazla bilgi için bkz . NSG akış günlüklerine genel bakış.

Bu makalede REST API kullanarak akış günlüklerini etkinleştirmek, devre dışı bırakmak ve sorgulamak için REST API'nin nasıl kullanılacağı gösterilmektedir. Azure portalı, PowerShell, Azure CLI veya ARM şablonunu kullanarak NSG akış günlüğünü yönetmeyi öğrenebilirsiniz.

Bu makalede şunların nasıl yapılacağını öğreneceksiniz:

  • Akış günlüklerini etkinleştirme (Sürüm 2)
  • Akış günlüklerini devre dışı bırakma
  • Sorgu akışı günlükleri durumu

Önkoşullar

Önemli

Ağ İzleyicisi REST API çağrıları yaptığınızda, istek URI'sindeki kaynak grubu adı tanılama eylemlerini gerçekleştirdiğiniz kaynaklara değil, Ağ İzleyicisi içeren kaynak grubuna başvurur.

ARMClient ile oturum açma

Azure kimlik bilgilerinizle armclient'da oturum açın.

armclient login

Insights sağlayıcısını kaydetme

Microsoft. Analizler sağlayıcının bir ağ güvenlik grubu üzerinden akan trafiği başarıyla günlüğe kaydedebilmesi için kaydedilmesi gerekir. Microsoft.Analizler sağlayıcısının kayıtlı olup olmadığından emin değilseniz, sağlayıcıyı kaydetmek için Sağlayıcılar - REST API'yi kaydetme seçeneğini kullanın.

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

NSG akış günlüklerini etkinleştirme

Akış günlükleri sürüm 2'yi etkinleştirme komutu aşağıdaki örnekte gösterilmiştir. Sürüm 1 için 'version' alanını '1' ile değiştirin:

$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

Önceki örnekten döndürülen yanıt aşağıdaki gibidir:

{
  "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
    }
  }
}

Not

NSG akış günlüklerini devre dışı bırakma

Akış günlüklerini devre dışı bırakmak için aşağıdaki örneği kullanın. Çağrı, etkin özellik için false'un ayarlanması dışında akış günlüklerini etkinleştirmeyle aynıdır.

$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

Önceki örnekten döndürülen yanıt aşağıdaki gibidir:

{
  "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
    }
  }
}

Not

Akış günlüklerini sorgulama

Aşağıdaki REST çağrısı, bir ağ güvenlik grubundaki akış günlüklerinin durumunu sorgular.

$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

Aşağıdaki örnekte döndürülen yanıt gösterilmektedir:

{
  "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
    }
  }
}

Not

Akış günlüğünü indirme

Akış günlüğünün depolama konumu oluşturma sırasında tanımlanır. Depolama hesabına kaydedilen akış günlüklerine erişmek için kullanışlı bir araç Microsoft Azure Depolama Gezgini. Daha fazla bilgi için bkz. Depolama Explorer'ı kullanmaya başlama.

Bir depolama hesabı belirtilirse paket yakalama dosyaları aşağıdaki konumdaki bir depolama hesabına kaydedilir:

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

Sonraki adımlar

  • NSG akış günlüklerini denetlemek veya dağıtmak için Azure yerleşik ilkelerini kullanmayı öğrenmek için bkz. Azure İlkesi kullanarak NSG akış günlüklerini yönetme.
  • Trafik analizi hakkında bilgi edinmek için bkz . Trafik analizi.