다음을 통해 공유


Azure Virtual Network Manager를 사용하여 네트워크 트래픽을 차단하는 방법 - PowerShell

이 문서에서는 규칙 컬렉션에 추가할 수 있는 포트 80 및 443에 대한 아웃바운드 네트워크 트래픽을 차단하는 보안 규칙을 만드는 방법을 보여 줍니다. 자세한 내용은 보안 관리자 규칙을 참조하세요.

필수 조건

보안 규칙 구성을 시작하기 전에 다음 단계를 확인합니다.

SecurityAdmin 구성 만들기

  1. New-AzNetworkManagerSecurityAdminConfiguration을 사용하여 새 SecurityAdmin 구성을 만듭니다.

    $config = @{
        Name = 'SecurityConfig'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config
    
    
  2. Get-AzNetworkManagerGroup을 사용하여 네트워크 그룹을 변수에 저장합니다.

    $ng = @{
        Name = 'myNetworkGroup'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
    }
    $networkgroup = Get-AzNetworkManagerGroup @ng   
    
  3. New-AzNetworkManagerSecurityGroupItem을 사용하여 네트워크 그룹을 추가할 연결 그룹 항목을 만듭니다.

    $gi = @{
        NetworkGroupId = "$networkgroup.Id"
    }
    
    $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
    
  4. 구성 그룹을 만들고 이전 단계의 그룹 항목을 추가합니다.

    [System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @()  
    $configGroup.Add($groupItem) 
    
    $configGroup = @($groupItem)
    
  5. New-AzNetworkManagerSecurityAdminRuleCollection을 사용하여 보안 관리자 규칙 컬렉션을 만듭니다.

    $collection = @{
        Name = 'myRuleCollection'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManager = 'myAVNM'
        ConfigName = 'SecurityConfig'
        AppliesToGroup = "$configGroup"
    }
    $rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup
    
  6. New-AzNetworkManagerAddressPrefixItem을 사용하여 원본 및 대상 주소 접두사 및 포트에 대한 변수를 정의합니다.

    $sourceip = @{
        AddressPrefix = 'Internet'
        AddressPrefixType = 'ServiceTag'
    }
    $sourceprefix = New-AzNetworkManagerAddressPrefixItem @sourceip
    
    $destinationip = @{
        AddressPrefix = '10.0.0.0/24'
        AddressPrefixType = 'IPPrefix'
    }
    $destinationprefix = New-AzNetworkManagerAddressPrefixItem @destinationip
    
    [System.Collections.Generic.List[string]]$sourcePortList = @() 
    $sourcePortList.Add("65500”) 
    
    [System.Collections.Generic.List[string]]$destinationPortList = @() 
    $destinationPortList.Add("80”)
    $destinationPortList.Add("443”)
    
  7. New-AzNetworkManagerSecurityAdminRule을 사용하여 보안 규칙을 만듭니다.

    $rule = @{
        Name = 'Block_HTTP_HTTPS'
        ResourceGroupName = 'myAVNMResourceGroup'
        NetworkManagerName = 'myAVNM'
        SecurityAdminConfigurationName = 'SecurityConfig'
        RuleCollectionName = 'myRuleCollection'
        Protocol = 'TCP'
        Access = 'Deny'
        Priority = '100'
        Direction = 'Outbound'
        SourceAddressPrefix = $sourceprefix
        SourcePortRange = $sourcePortList
        DestinationAddressPrefix = $destinationprefix
        DestinationPortRange = $destinationPortList
    }
    $securityrule = New-AzNetworkManagerSecurityAdminRule @rule
    

배포 커밋

Deploy-AzNetworkManagerCommit을 사용하여 대상 지역에 보안 구성을 커밋합니다.

$regions = @("westus")
$deployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @deployment 

보안 구성 삭제

보안 구성이 더 이상 필요하지 않은 경우 보안 구성 자체를 삭제할 수 있도록 다음 조건이 충족되는지 확인합니다.

  • 어떤 지역에도 배포된 구성이 없습니다.
  • 보안 구성과 연결된 규칙 컬렉션의 모든 보안 규칙을 삭제합니다.

보안 구성 배포 제거

Deploy-AzNetworkManagerCommit을 사용하여 구성을 배포하여 보안 배포를 제거합니다.

[System.Collections.Generic.List[string]]$configIds = @()
[System.Collections.Generic.List[string]]$regions = @()   
$regions.Add("westus")     
$removedeployment = @{
    Name = 'myAVNM'
    ResourceGroupName = 'myAVNMResourceGroup'
    ConfigurationId = $configIds
    TargetLocation = $regions
    CommitType = 'SecurityAdmin'
}
Deploy-AzNetworkManagerCommit @removedeployment

보안 규칙 제거

Remove-AzNetworkManagerSecurityAdminRule을 사용하여 보안 규칙을 제거합니다.

$removerule = @{
    Name = 'Block80'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRule @removerule

보안 규칙 컬렉션 제거

$removecollection = @{
    Name = 'myRuleCollection'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
    SecurityAdminConfigurationName = 'SecurityConfig'
}
Remove-AzNetworkManagerSecurityAdminRuleCollection @removecollection

구성 삭제

Remove-AzNetworkManagerSecurityAdminConfiguration을 사용하여 보안 구성을 삭제합니다.

$removeconfig = @{
    Name = 'SecurityConfig'
    ResourceGroupName = 'myAVNMResourceGroup'
    NetworkManagerName = 'myAVNM'
}
Remove-AzNetworkManagerSecurityAdminConfiguration @removeconfig

다음 단계

보안 관리자 규칙에 대해 자세히 알아봅니다.