使用 Azure 资源管理器模板管理 NSG 流日志
重要
2027 年 9 月 30 日,网络安全组 (NSG) 流日志将停用。 在此停用过程中,从 2025 年 6 月 30 日起,你将无法再创建新的 NSG 流日志。 建议迁移到虚拟网络流日志,从而克服 NSG 流日志的限制。 自停用日期之后,将不再支持使用 NSG 流日志启用的流量分析,并且订阅中的现有 NSG 流日志资源将被删除。 但是,不会删除 NSG 流日志记录,并将继续遵循其各自的保留策略。 有关详细信息,请查看官方公告。
网络安全组流日志记录是 Azure 网络观察程序的一项功能,可用于记录有关流经网络安全组的 IP 流量的信息。 有关网络安全组流日志记录的详细信息,请参阅 NSG 流日志概述。
本文介绍如何使用 Azure 资源管理器模板和 Azure PowerShell 以编程方式管理 NSG 流日志。 你可以了解如何使用 Azure 门户、PowerShellAzure CLI、Azure CLI 或 REST CLI 管理 NSG 流日志。
Azure 资源管理器模板是使用声明性语法定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。
先决条件
- 具有活动订阅的 Azure 帐户。 创建试用版订阅。
NSG 流日志对象
以下示例显示了包含所有参数的 NSG 流日志对象。 有关对象属性的完整概述,请参阅 NSG 流日志模板参考。
{
"name": "string",
"type": "Microsoft.Network/networkWatchers/flowLogs",
"location": "string",
"apiVersion": "2022-07-01",
"properties": {
"targetResourceId": "string",
"storageId": "string",
"enabled": "boolean",
"flowAnalyticsConfiguration": {
"networkWatcherFlowAnalyticsConfiguration": {
"enabled": "boolean",
"workspaceResourceId": "string",
"trafficAnalyticsInterval": "integer"
},
"retentionPolicy": {
"days": "integer",
"enabled": "boolean"
},
"format": {
"type": "string",
"version": "integer"
}
}
}
}
若要创建 Microsoft.Network/networkWatchers/flowLogs 资源,请将以上 JSON 添加到模板的资源部分。
创建模板
若要详细了解如何使用 Azure 资源管理器模板,请参阅:
以下示例演示了用于启用 NSG 流日志的完整模板。
示例 1
示例 1 使用 ARM 模板的最简单版本,其中传递了最少的参数。 以下模板在目标网络安全组上启用了 NSG 流日志,并将它们存储在给定的存储帐户中。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"apiProfile": "2019-09-01",
"resources": [
{
"name": "myNSG-myresourcegroup-flowlog",
"type": "Microsoft.Network/networkWatchers/FlowLogs/",
"location": "chinaeast",
"apiVersion": "2022-11-01",
"properties": {
"targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
"storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
"enabled": true,
"flowAnalyticsConfiguration": {},
"retentionPolicy": {},
"format": {}
}
}
]
}
注意
targetResourceId
是目标网络安全组的资源 ID。storageId
是目标存储帐户的资源 ID。
示例 2
示例 2 使用以下模板启用 NSG 流日志(版本 2),保留期为 5 天,流量分析的处理间隔为 10 分钟。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"apiProfile": "2019-09-01",
"resources": [
{
"name": "myNSG-myresourcegroup-flowlog",
"type": "Microsoft.Network/networkWatchers/FlowLogs/",
"location": "chinaeast",
"apiVersion": "2022-11-01",
"properties": {
"targetResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
"storageId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
"enabled": true,
"flowAnalyticsConfiguration": {
"networkWatcherFlowAnalyticsConfiguration": {
"enabled": true,
"workspaceResourceId": "/subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/defaultresourcegroup-eus/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-abcdef01-2345-6789-0abc-def012345678-EUS",
"trafficAnalyticsInterval": 10
}
},
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
]
}
注意
targetResourceId
是目标网络安全组的资源 ID。storageId
是目标存储帐户的资源 ID。workspaceResourceId
是流量分析工作区的资源 ID。
部署 Azure 资源管理器模板
本教程假定你已有一个资源组和一个可以启用流登录的网络安全组。
可以在本地将上述任何示例模板保存为 azuredeploy.json
。 更新属性值,使其指向订阅中的有效资源。
若要部署模板,请在 PowerShell 中运行以下命令。
$context = Get-AzSubscription -SubscriptionId <SubscriptionId>
Set-AzContext $context
New-AzResourceGroupDeployment -Name EnableFlowLog -ResourceGroupName NetworkWatcherRG `
-TemplateFile "C:\MyTemplates\azuredeploy.json"
注意
上述命令会将资源部署到“NetworkWatcherRG”资源组,而不是包含网络安全组的资源组。
验证部署
可以通过多种方法来检查部署是否成功。 PowerShell 控制台应将“ProvisioningState”显示为“Succeeded”。 此外,还可以访问流日志门户页面来确认所做的更改。 如果部署出现问题,请参阅排查使用 Azure 资源管理器时的常见 Azure 部署错误。
删除资源
Azure 可通过“完整”部署模式删除资源。 若要删除流日志资源,请在“完整”模式下指定部署,而不包含要删除的资源。 有关详细信息,请参阅完整部署模式。
后续步骤
- 若要了解如何使用 Azure 内置策略来审核或部署 NSG 流日志,请参阅使用 Azure Policy 管理 NSG 流日志。
- 若要了解流量分析,请参阅流量分析。