Share via


Azure PowerShell을 이용한 NSG 흐름 로그 관리

네트워크 보안 그룹 흐름 로깅은 네트워크 보안 그룹을 통과하는 IP 트래픽에 대한 정보를 로그할 수 있는 Azure Network Watcher의 기능입니다. 네트워크 보안 그룹 흐름 로깅에 대한 자세한 내용은 NSG 흐름 로그 개요를 참조하세요.

이 문서에서는 Azure PowerShell을 사용하여 NSG 흐름 로그를 생성, 변경, 비활성화 또는 삭제하는 방법을 알아봅니다. Azure Portal, Azure CLI, REST API 또는 ARM 템플릿을 사용하여 NSG 흐름 로그를 관리하는 방법을 알아볼 수 있습니다.

필수 조건

  • 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.

  • 인사이트 공급자. 자세한 내용은 Insights 공급자 등록을 참조하세요.

  • 네트워크 보안 그룹. 네트워크 보안 그룹을 만들어야 하는 경우 네트워크 보안 그룹 만들기, 변경 또는 삭제를 참조하세요.

  • Azure Storage 계정 스토리지 계정을 만들어야 하는 경우 PowerShell을 사용하여 스토리지 계정 만들기를 참조하세요.

  • Azure Cloud Shell 또는 로컬로 설치된 Azure PowerShell.

    • 이 문서의 단계에서는 Azure Cloud Shell에서 Azure PowerShell cmdlet을 대화형으로 실행합니다. Cloud Shell에서 명령을 실행하려면 코드 블록의 오른쪽 위 모서리에서 Cloud Shell을 엽니다. 복사를 선택하여 코드를 복사한 다음, 복사한 코드를 Cloud Shell에 붙여넣어 실행합니다. Azure Portal 내에서 Cloud Shell을 실행할 수도 있습니다.

    • Azure PowerShell을 로컬로 설치하여 cmdlet을 실행할 수도 있습니다. 이 문서에는 Az PowerShell 모듈이 필요합니다. 자세한 내용은 Azure PowerShell 설치 방법을 참조하세요. 설치되어 있는 버전을 확인하려면 Get-InstalledModule -Name Az을 실행합니다. PowerShell을 로컬로 실행하는 경우 Connect-AzAccount cmdlet을 사용하여 Azure에 로그인합니다.

Insights 공급자 등록

네트워크 보안 그룹을 통해 흐르는 트래픽을 성공적으로 기록하려면 Microsoft.Insights 공급자를 등록해야 합니다. Microsoft.Insights 공급자가 등록되었는지 확실하지 않은 경우 Register-AzResourceProvider를 사용하여 등록합니다.

# Register Microsoft.Insights provider.
Register-AzResourceProvider -ProviderNamespace 'Microsoft.Insights'

흐름 로그 만들기

  1. Get-AzNetworkSecurityGroupGet-AzStorageAccount를 각각 사용하여 흐름 로그를 만들려는 네트워크 보안 그룹의 속성과 만든 흐름 로그를 저장하는 데 사용할 스토리지 계정을 가져옵니다.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    참고 항목

    • 스토리지 계정이 다른 구독에 있는 경우 네트워크 보안 그룹 및 스토리지 계정은 동일한 Azure Active Directory 테넌트와 연결되어야 합니다. 각 구독에 대해 사용하는 계정에 필요한 권한이 있어야 합니다.
  2. New-AzNetworkWatcherFlowLog를 사용하여 흐름 로그를 만듭니다. 흐름 로그는 Network Watcher 기본 리소스 그룹 NetworkWatcherRG에 만들어집니다.

    # Create a version 1 NSG flow log.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true
    

흐름 로그 및 트래픽 분석 작업 영역 만들기

  1. Get-AzNetworkSecurityGroupGet-AzStorageAccount를 각각 사용하여 흐름 로그를 만들려는 네트워크 보안 그룹의 속성과 만든 흐름 로그를 저장하는 데 사용할 스토리지 계정을 가져옵니다.

    # Place the network security group properties into a variable.
    $nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'
    
    # Place the storage account properties into a variable.
    $sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'
    

    참고 항목

    • 스토리지 계정에는 Microsoft 서비스 또는 특정 가상 네트워크에 대한 네트워크 액세스를 제한하는 네트워크 규칙이 있을 수 없습니다.
    • 스토리지 계정이 다른 구독에 있는 경우 네트워크 보안 그룹 및 스토리지 계정은 동일한 Azure Active Directory 테넌트와 연결되어야 합니다. 각 구독에 대해 사용하는 계정에 필요한 권한이 있어야 합니다.
  2. New-AzOperationalInsightsWorkspace를 사용하여 트래픽 분석 작업 영역을 만듭니다.

    # Create a traffic analytics workspace and place its properties into a variable.
    $workspace = New-AzOperationalInsightsWorkspace -Name 'myWorkspace' -ResourceGroupName 'myResourceGroup' -Location 'eastus'
    
  3. New-AzNetworkWatcherFlowLog를 사용하여 흐름 로그를 만듭니다. 흐름 로그는 Network Watcher 기본 리소스 그룹 NetworkWatcherRG에 만들어집니다.

    # Create a version 1 NSG flow log with traffic analytics.
    New-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -EnableTrafficAnalytics -TrafficAnalyticsWorkspaceId $workspace.ResourceId
    

흐름 로그 변경

Set-AzNetworkWatcherFlowLog를 사용하여 흐름 로그의 속성을 변경할 수 있습니다. 예를 들어 흐름 로그 버전을 변경하거나 트래픽 분석을 사용하지 않도록 설정할 수 있습니다.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id -Enabled $true -FormatVersion 2 

지역의 모든 흐름 로그 나열

Get-AzNetworkWatcherFlowLog를 사용하여 구독의 특정 지역에 있는 모든 NSG 흐름 로그 리소스를 나열합니다.

# Get all NSG flow logs in East US region.
Get-AzNetworkWatcherFlowLog -Location 'eastus' | format-table Name

참고 항목

Get-AzNetworkWatcherFlowLog cmdlet으로 -Location 매개 변수를 사용하려면 NetworkWatcherRG 리소스 그룹에 추가적으로 읽기 권한자 권한이 필요합니다.

흐름 로그 리소스의 세부 정보 보기

Get-AzNetworkWatcherFlowLog를 사용하여 흐름 로그 리소스의 세부 정보를 확인합니다.

# Get the details of a flow log.
Get-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

참고 항목

Get-AzNetworkWatcherFlowLog cmdlet으로 -Location 매개 변수를 사용하려면 NetworkWatcherRG 리소스 그룹에 추가적으로 읽기 권한자 권한이 필요합니다.

흐름 로그 다운로드

흐름 로그의 스토리지 위치를 만들 때 정의합니다. 스토리지 계정에서 흐름 로그에 액세스하고 다운로드하려면 Azure Storage Explorer를 사용할 수 있습니다. 자세한 내용은 Storage Explorer 시작을 참조하세요.

스토리지 계정에 저장된 NSG 흐름 로그 파일은 다음 경로를 따릅니다.

https://{storageAccountName}.blob.core.windows.net/insights-logs-networksecuritygroupflowevent/resourceId=/SUBSCRIPTIONS/{subscriptionID}/RESOURCEGROUPS/{resourceGroupName}/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/{NetworkSecurityGroupName}/y={year}/m={month}/d={day}/h={hour}/m=00/macAddress={macAddress}/PT1H.json

흐름 로그의 구조에 대한 자세한 내용은 NSG 흐름 로그의 로그 형식을 참조하세요.

흐름 로그 사용 안 함

흐름 로그를 삭제하지 않고 일시적으로 사용하지 않도록 설정하려면 -Enabled $false 매개 변수를 통해 Set-AzNetworkWatcherFlowLog를 사용합니다. 흐름 로그를 사용하지 않도록 설정하면 연결된 네트워크 보안 그룹에 대한 흐름 로깅이 중지됩니다. 그러나 흐름 로그 리소스는 모든 설정 및 연결과 함께 유지됩니다. 언제든지 다시 사용하도록 설정하여 구성된 네트워크 보안 그룹에 대한 흐름 로깅을 다시 시작할 수 있습니다.

참고 항목

흐름 로그에 대해 트래픽 분석을 사용하도록 설정한 경우 흐름 로그를 사용하지 않도록 설정하려면 먼저 트래빅 분석을 사용하지 않도록 설정해야 합니다.

# Place the network security group properties into a variable.
$nsg = Get-AzNetworkSecurityGroup -Name 'myNSG' -ResourceGroupName 'myResourceGroup'

# Place the storage account properties into a variable.
$sa = Get-AzStorageAccount -Name 'myStorageAccount' -ResourceGroupName 'myResourceGroup'

# Update the NSG flow log.
Set-AzNetworkWatcherFlowLog -Enabled $false -Name 'myFlowLog' -Location 'eastus' -TargetResourceId $nsg.Id -StorageId $sa.Id

흐름 로그 삭제

NSG 흐름 로그를 영구적으로 삭제하려면 Remove-AzNetworkWatcherFlowLog 명령을 사용합니다. 흐름 로그를 삭제하면 모든 설정 및 연결이 삭제됩니다. 동일한 네트워크 보안 그룹에 대해 흐름 로깅을 다시 시작하려면 해당 그룹에 대한 새 흐름 로그를 만들어야 합니다.

# Delete the flow log.
Remove-AzNetworkWatcherFlowLog -Name 'myFlowLog' -Location 'eastus'

참고 항목

흐름 로그를 삭제해도 스토리지 계정에서 흐름 로그 데이터가 삭제되지는 않습니다. 스토리지 계정에 저장된 흐름 로그 데이터는 구성된 보존 정책을 따릅니다.

다음 단계