중요합니다
NSG(네트워크 보안 그룹) 흐름 로그는 2027년 9월 30일에 사용 중지됩니다. 2025년 6월 30일 이후에는 더 이상 새 NSG 흐름 로그를 만들 수 없습니다. NSG 흐름 로그의 제한 사항을 해결하는 가상 네트워크 흐름 로그로 마이그레이션하는 것이 좋습니다. 사용 중지 날짜 이후에는 NSG 흐름 로그에 대해 사용하도록 설정된 트래픽 분석이 더 이상 지원되지 않으며 구독의 기존 NSG 흐름 로그 리소스가 삭제됩니다. 그러나 기존 NSG 흐름 로그 레코드는 Azure Storage에서 삭제되지 않으며 구성된 보존 정책을 계속 따릅니다. 자세한 내용은 공식 공지 사항을 참조하세요.
이 빠른 시작에서는 ARM(Azure Resource Manager) 템플릿 및 Azure PowerShell을 사용하여 NSG 흐름 로그를 사용하도록 설정하는 방법을 알아봅니다. 자세한 내용은 Azure Resource Manager란 무엇인가요? 및 NSG 흐름 로그 개요를 참조하세요.
Azure Resource Manager 템플릿은 프로젝트의 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.
NSG 흐름 로그 개체의 속성에 대한 개요부터 시작합니다. 샘플 템플릿을 제공합니다. 그런 다음, 로컬 Azure PowerShell 인스턴스를 사용하여 템플릿을 배포합니다.
환경이 필수 조건을 충족하고 ARM 템플릿을 사용하는 데 익숙한 경우 Azure에 배포 단추를 선택합니다. 그러면 Azure Portal에서 템플릿이 열립니다.
필수 조건
활성 구독이 있는 Azure 계정. 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
템플릿 검토
이 빠른 시작에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 가져온 것입니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.9.1.41621",
"templateHash": "14580725600461536175"
}
},
"parameters": {
"networkWatcherName": {
"type": "string",
"defaultValue": "[format('NetworkWatcher_{0}', parameters('___location'))]",
"metadata": {
"description": "Name of the Network Watcher attached to your subscription. Format: NetworkWatcher_<region_name>"
}
},
"flowLogName": {
"type": "string",
"defaultValue": "FlowLog1",
"metadata": {
"description": "Name of your Flow log resource"
}
},
"___location": {
"type": "string",
"defaultValue": "[resourceGroup().___location]",
"metadata": {
"description": "Region where you resources are located"
}
},
"existingNSG": {
"type": "string",
"metadata": {
"description": "Resource ID of the target NSG"
}
},
"retentionDays": {
"type": "int",
"defaultValue": 0,
"maxValue": 365,
"minValue": 0,
"metadata": {
"description": "Retention period in days. Default is zero which stands for permanent retention. Can be any Integer from 0 to 365"
}
},
"flowLogsVersion": {
"type": "int",
"defaultValue": 2,
"allowedValues": [
1,
2
],
"metadata": {
"description": "FlowLogs Version. Correct values are 1 or 2 (default)"
}
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS"
],
"metadata": {
"description": "Storage Account type"
}
}
},
"variables": {
"storageAccountName": "[format('flowlogs{0}', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('storageAccountName')]",
"___location": "[parameters('___location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
},
{
"type": "Microsoft.Network/networkWatchers",
"apiVersion": "2022-01-01",
"name": "[parameters('networkWatcherName')]",
"___location": "[parameters('___location')]",
"properties": {}
},
{
"type": "Microsoft.Network/networkWatchers/flowLogs",
"apiVersion": "2022-01-01",
"name": "[format('{0}/{1}', parameters('networkWatcherName'), parameters('flowLogName'))]",
"___location": "[parameters('___location')]",
"properties": {
"targetResourceId": "[parameters('existingNSG')]",
"storageId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
"enabled": true,
"retentionPolicy": {
"days": "[parameters('retentionDays')]",
"enabled": true
},
"format": {
"type": "JSON",
"version": "[parameters('flowLogsVersion')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
]
}
]
}
다음 리소스는 템플릿에 정의되어 있습니다.
앞의 샘플에서 강조 표시된 코드는 NSG 흐름 로그 리소스 정의를 보여 줍니다.
템플릿 배포
이 자습서에서는 흐름 로깅을 사용할 수 있는 기존 리소스 그룹 및 NSG가 있는 것으로 가정합니다.
이 문서에 표시된 모든 예제 템플릿을 로컬에 azuredeploy.json으로 저장할 수 있습니다. 구독의 유효한 리소스를 가리키도록 속성 값을 업데이트합니다.
템플릿을 배포하려면 PowerShell에서 다음 명령을 실행합니다.
$context = Get-AzSubscription -SubscriptionId <subscription Id>
Set-AzContext $context
New-AzResourceGroupDeployment -Name EnableFlowLog -ResourceGroupName NetworkWatcherRG `
-TemplateFile "C:\MyTemplates\azuredeploy.json"
비고
이러한 명령은 네트워크 보안 그룹을 포함하는 리소스 그룹이 아닌 NetworkWatcherRG 리소스 그룹에 리소스를 배포합니다.
배포 유효성 검사
배포가 성공했는지 확인하는 두 가지 방법이 있습니다.
- PowerShell 콘솔에서
ProvisioningState
가Succeeded
로 표시되는지 확인합니다. - NSG 흐름 로그 포털 페이지로 이동하여 변경 내용을 확인합니다.
배포에 문제가 있는 경우 Azure Resource Manager를 사용한 일반적인 Azure 배포 오류 해결을 참조하세요.
자원을 정리하세요
전체 배포 모드를 사용하여 Azure 리소스를 삭제할 수 있습니다. 흐름 로그 리소스를 삭제하려면 삭제하려는 리소스를 포함하지 않고 전체 모드로 배포를 지정합니다. 전체 배포 모드에 대해 읽어보세요.
Azure Portal에서 흐름 로그를 사용하지 않도록 설정하거나 삭제할 수도 있습니다.
포털 맨 위에 있는 검색 상자에 네트워크 감시자를 입력합니다. 검색 결과에서 Network Watcher 를 선택합니다.
로그 아래에서 흐름 로그를 선택합니다.
Network Watcher | 흐름 로그를 삭제할 흐름 로그의 확인란을 선택합니다.
사용 안 함 또는 삭제를 선택합니다. 자세한 내용은 흐름 로그 사용 안 함 또는 흐름 로그 삭제를 참조하세요.
관련 콘텐츠
이 빠른 시작에서는 ARM 템플릿을 사용하여 NSG 흐름 로그를 사용하도록 설정하는 방법을 알아보았습니다. 다음으로, 트래픽 분석을 사용하여 NSG 흐름 데이터를 시각화하는 방법을 알아봅니다.