Поделиться через


Управление журналами потоков NSG с помощью REST API

Важный

30 сентября 2027 г. журналы потоков безопасности сети (NSG) будут выведены из эксплуатации. В рамках этого выхода на пенсию вы больше не сможете создавать новые журналы потоков NSG с 30 июня 2025 года. Мы рекомендуем перейти на журналы потоков виртуальной сети , которые преодолевают ограничения журналов потоков NSG. После выхода на пенсию аналитика трафика, включенная с помощью журналов потоков NSG, больше не будет поддерживаться, а существующие ресурсы журналов потоков NSG в подписках будут удалены. Однако записи журналов потоков NSG не будут удалены и будут продолжать следовать соответствующим политикам хранения. Дополнительные сведения см. в официальном объявлении .

Ведение журнала потоков группы безопасности сети — это функция наблюдателя за сетями Azure, которая позволяет регистрировать сведения о IP-трафике, проходящим через группу безопасности сети. Дополнительные сведения о ведении журнала потоков группы безопасности сети см. в обзоре журналов потоков NSG.

В этой статье показано, как использовать REST API для включения, отключения и выполнения запросов журналов потоков с помощью REST API. Вы можете узнать, как управлять журналом потоков NSG с помощью портала Azure, PowerShell, Azure CLIили шаблона ARM.

В этой статье вы узнаете, как:

  • Включение журналов потоков (версия 2)
  • Отключение журналов потоков
  • Состояние журналов потоков запросов

Необходимые условия

Важный

При вызове REST API к наблюдателю за сетями имя группы ресурсов в URI запроса ссылается на группу ресурсов, содержащую наблюдатель за сетями, а не ресурсы, с которыми вы выполняете диагностические действия.

Вход с помощью ARMClient

Войдите в armclient с помощью учетных данных Azure.

armclient login

Регистрация поставщика Insights

поставщик Microsoft.Insights должен быть зарегистрирован для успешного ведения журнала трафика, проходящего через группу безопасности сети. Если вы не уверены, зарегистрирован ли поставщик Microsoft.Insights, используйте REST API Providers - Register для его регистрации.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
armclient post "https://management.azure.com//subscriptions/${subscriptionId}/providers/Microsoft.Insights/register?api-version=2021-04-01"

Включите журналы потоков NSG

Команда для включения журналов потоков версии 2 показана в следующем примере. Для версии 1 замените поле "версия" на "1":

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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

Ответ, возвращаемый из предыдущего примера, выглядит следующим образом:

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

Заметка

  • Наблюдатели за сетями — конфигурация логов потока REST API, используемая в предыдущем примере, является старой и скоро может быть устаревшей.
  • Рекомендуется использовать новый REST API Flow Logs - Create Or Update для создания или обновления журналов потоков.

Отключить журналы потоков NSG

Используйте следующий пример, чтобы отключить журналы потоков. Вызов совпадает с включением журналов потоков, за исключением того, что false задано как значение для свойства активировано.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/{resourceGroupName/providers/Microsoft.Network/networkSecurityGroups/{nsgName}"
$storageId = "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/{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

Ответ, возвращаемый из предыдущего примера, выглядит следующим образом:

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

Заметка

Журналы потоков запросов

Следующий вызов REST запрашивает состояние журналов потоков в группе безопасности сети.

$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$targetUri = "" # example /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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

В следующем примере показан возвращаемый ответ:

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

Заметка

  • Для Network Watchers — получение состояния журнала потока REST API, используемого в предыдущем примере, требуется дополнительное разрешение читателя в группе ресурсов Network Watchers. Кроме того, этот API является старым и вскоре может быть нерекомендуем.
  • Рекомендуется использовать новые журналы потоков — получить API REST для запросов журналов потоков.

Скачивание журнала потоков

Место хранения журнала потоков определяется при создании. Удобный инструмент для доступа к журналам потоков, сохраненным в учетной записи хранения, — Microsoft Azure Storage Explorer. Дополнительные сведения см. в статье Начало работы с Storage Explorer.

Если указана учетная запись хранения, файлы записи пакетов сохраняются в учетной записи хранения в следующем расположении:

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

Дальнейшие действия