Share via


Azure Resource Manager 템플릿을 사용하여 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) 파일입니다.

필수 조건

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/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": "eastus",
      "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 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에서는 전체 배포 모드를 통해 리소스를 삭제할 수 있습니다. 흐름 로그 리소스를 삭제하려면 삭제하려는 리소스를 포함하지 않고 배포를 전체 모드로 지정합니다. 자세한 내용은 전체 배포 모드를 참조하세요.

다음 단계