Azure Virtual Network Manager를 사용하여 네트워크 트래픽을 차단하는 방법 - PowerShell
이 문서에서는 규칙 컬렉션에 추가할 수 있는 포트 80 및 443에 대한 아웃바운드 네트워크 트래픽을 차단하는 보안 규칙을 만드는 방법을 보여 줍니다. 자세한 내용은 보안 관리자 규칙을 참조하세요.
필수 조건
보안 규칙 구성을 시작하기 전에 다음 단계를 확인합니다.
- 보안 관리자 규칙의 각 요소를 이해합니다.
- Azure Virtual Network Manager 인스턴스를 만들었습니다.
- 필요한 cmdlet에 액세스하려면
Az.Network
5.3.0
이상 버전이 설치되어 있어야 합니다.
SecurityAdmin 구성 만들기
New-AzNetworkManagerSecurityAdminConfiguration을 사용하여 새 SecurityAdmin 구성을 만듭니다.
$config = @{ Name = 'SecurityConfig' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' } $securityconfig = New-AzNetworkManagerSecurityAdminConfiguration @config
Get-AzNetworkManagerGroup을 사용하여 네트워크 그룹을 변수에 저장합니다.
$ng = @{ Name = 'myNetworkGroup' ResourceGroupName = 'myAVNMResourceGroup' NetworkManagerName = 'myAVNM' } $networkgroup = Get-AzNetworkManagerGroup @ng
New-AzNetworkManagerSecurityGroupItem을 사용하여 네트워크 그룹을 추가할 연결 그룹 항목을 만듭니다.
$gi = @{ NetworkGroupId = "$networkgroup.Id" } $groupItem = New-AzNetworkManagerSecurityGroupItem -NetworkGroupId $networkgroup.id
구성 그룹을 만들고 이전 단계의 그룹 항목을 추가합니다.
[System.Collections.Generic.List[Microsoft.Azure.Commands.Network.Models.PSNetworkManagerSecurityGroupItem]]$configGroup = @() $configGroup.Add($groupItem) $configGroup = @($groupItem)
New-AzNetworkManagerSecurityAdminRuleCollection을 사용하여 보안 관리자 규칙 컬렉션을 만듭니다.
$collection = @{ Name = 'myRuleCollection' ResourceGroupName = 'myAVNMResourceGroup' NetworkManager = 'myAVNM' ConfigName = 'SecurityConfig' AppliesToGroup = "$configGroup" } $rulecollection = New-AzNetworkManagerSecurityAdminRuleCollection @collection -AppliesToGroup $configGroup
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”)
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
다음 단계
보안 관리자 규칙에 대해 자세히 알아봅니다.