Azure Resource Manager 템플릿을 사용하여 NSG 흐름 로그 관리
Important
2027년 9월 30일에 NSG(네트워크 보안 그룹) 흐름 로그가 사용 중지됩니다. 이러한 사용 중지의 일환으로 2025년 6월 30일부터 새로운 NSG 흐름 로그를 더 이상 만들 수 없습니다. NSG 흐름 로그의 제한을 극복하는 가상 네트워크 흐름 로그로 마이그레이션하는 것이 좋습니다. 사용 중지일 이후에는 NSG 흐름 로그를 사용한 트래픽 분석이 더 이상 지원되지 않으며, 구독에 포함된 기존 NSG 흐름 로그 리소스는 삭제됩니다. 그러나 NSG 흐름 로그 레코드는 삭제되지 않으며 각각의 보존 정책을 계속 따릅니다. 자세한 내용은 공식 공지를 참조하세요.
네트워크 보안 그룹 흐름 로깅은 네트워크 보안 그룹을 통과하는 IP 트래픽에 대한 정보를 로그할 수 있는 Azure Network Watcher의 기능입니다. 네트워크 보안 그룹 흐름 로깅에 대한 자세한 내용은 NSG 흐름 로그 개요를 참조하세요.
이 문서에서는 Azure Resource Manager 템플릿 및 Azure PowerShell을 사용하여 프로그래밍 방식으로 NSG 흐름 로그를 관리하는 방법을 알아봅니다. Azure Portal, PowerShell, Azure CLI 또는 REST API를 사용하여 NSG 흐름 로그를 관리하는 방법을 알아볼 수 있습니다.
Azure Resource Manager 템플릿은 선언적 구문을 사용하여 프로젝트에 대한 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다.
필수 조건
- 활성 구독이 있는 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 Resource Manager 템플릿 사용에 대한 자세한 내용은 다음을 참조하세요.
다음 예제에서는 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": "eastus",
"apiVersion": "2022-11-01",
"properties": {
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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": "eastus",
"apiVersion": "2022-11-01",
"properties": {
"targetResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myNSG",
"storageId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Storage/storageAccounts/myStorageAccount",
"enabled": true,
"flowAnalyticsConfiguration": {
"networkWatcherFlowAnalyticsConfiguration": {
"enabled": true,
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/defaultresourcegroup-eus/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-EUS",
"trafficAnalyticsInterval": 10
}
},
"retentionPolicy": {
"days": 5,
"enabled": true
},
"format": {
"type": "JSON",
"version": 2
}
}
}
]
}
참고 항목
targetResourceId
는 대상 네트워크 보안 그룹의 리소스 ID입니다.storageId
는 대상 스토리지 계정의 리소스 ID입니다.workspaceResourceId
는 트래픽 분석 작업 영역의 리소스 ID입니다.
Azure Resource Manager 템플릿 배포
이 자습서에서는 흐름 로깅을 사용하도록 설정할 수 있는 기존 리소스 그룹 및 네트워크 보안 그룹이 있다고 가정합니다.
위의 예제 템플릿 중 하나를 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 Resource Manager를 사용한 일반적인 Azure 배포 오류 해결을 참조하세요.
리소스 삭제
Azure에서는 전체 배포 모드를 통해 리소스를 삭제할 수 있습니다. 흐름 로그 리소스를 삭제하려면 삭제하려는 리소스를 포함하지 않고 배포를 전체 모드로 지정합니다. 자세한 내용은 전체 배포 모드를 참조하세요.
다음 단계
- Azure 기본 제공 정책을 사용하여 NSG 흐름 로그를 감사하거나 배포하는 방법을 알아보려면 Azure Policy를 사용하여 NSG 흐름 로그 관리를 참조하세요.
- 트래픽 분석에 대한 자세한 내용은 트래픽 분석을 참조하세요.