Управление журналами потоков 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)
- Отключение журналов потоков
- Состояние журналов потоков запросов
Необходимые условия
- Учетная запись Azure с активной подпиской. Создать учетную запись бесплатно.
- ARMClient. ARMClient — это простое средство командной строки для вызова API Azure Resource Manager. Сведения об установке средства см. в разделе ARMClient. Подробные спецификации REST API журналов потоков NSG см. в разделе Журналы потоков — REST API
Важный
При вызове 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 API, используемый в предыдущем примере, является старым и может быть устаревшим.
- Рекомендуется использовать новый REST API Flow Logs — Create Or Update для отключения журналов потоков и REST API Flow Logs — Delete для удаления ресурса журналов потоков.
Журналы потоков запросов
Следующий вызов 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
Дальнейшие действия
- Сведения об использовании встроенных политик Azure для аудита или развертывания журналов потоков NSG см. в статье Управление журналами потоков NSG с помощьюполитики Azure.
- Чтобы узнать об аналитике трафика, см. Аналитика трафика.