Управление журналами потоков 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 на ресурсе GitHub. Подробные спецификации rest API журналов потоков NSG см. в разделе "Журналы потоков " REST API"
Внимание
При вызове REST API к Наблюдатель за сетями имя группы ресурсов в URI запроса ссылается на группу ресурсов, содержащую Наблюдатель за сетями, а не ресурсы, с которыми вы выполняете диагностические действия.
Выполните вход с помощью ARMClient
Войдите в armclient с помощью учетных данных Azure.
armclient login
Регистрация поставщика Microsoft Insights
Поставщик Microsoft.Insights должен быть зарегистрирован для успешного передачи трафика журнала через группу безопасности сети. Если вы не уверены , зарегистрирован ли поставщик Microsoft.Insights , используйте поставщики — зарегистрируйте REST API для его регистрации.
$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 для создания или обновления журналов потоков.
Отключение журналов потоков NSG
Чтобы отключить журналы потоков, используйте приведенный ниже пример кода. Команда для включения и отключения журналов потоков совпадает, но в этом случае для свойства enabled необходимо задать значение 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 для отключения журналов потоков и журналов потоков — удаления REST API для удаления ресурса журналов потоков.
Запрос журналов потоков
Следующий вызов 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
}
}
}
Примечание.
- Для Наблюдатель за сетями — REST API состояния журнала потока, используемого в предыдущем примере, требуется дополнительное разрешение чтения в группе ресурсов наблюдателя за сетями. Кроме того, этот API является старым и вскоре может быть нерекомендуем.
- Рекомендуется использовать новые журналы потоков — получение REST API для журналов потоков запросов.
Скачивание журнала потоков
Место хранения журнала потоков определяется при его создании. Удобный инструмент для доступа к журналам потоков, сохраненным в учетной записи хранения, служба хранилища Microsoft Azure 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".
- Дополнительные сведения об аналитике трафика см. в статье "Аналитика трафика".