AZ104 (NSG, ASG)
Virtual Network(VNET)
: VM들을 내부적으로 통신시키기 위해 같은 네트워크에 연결시킴
: 다른 네트워크에서 사설 IP로 들어오지 못하도록 하는 것(공인 IP의 경우 포트를 열면 들어오게 할 수 있음)
* VNET은 location이 중요하다. 한 번 설정한 지역은 못 바꾼다.
** DHCP 기능 : VNET에 연결을 해야지 vm이 사설 IP를 받는다.(같은 location이어야 함)
Network Security Groups(NSG)
: 기본적으로 Internet에서 접속하는 모든 Traffic에 대하여 차단 및 허용하는 것
(적용 대상 : VM의 NIC 및 Subnet)
: VNET에 있는 리소스에 대한 트래픽을 제한
: Inbound/outbound에 대해 보안 규칙을 적용
: 하나를 만들어 다른 서브넷에 적용시킬 수 있다.(비용절약)
- NSG default rules
: default 룰은 삭제할 수 없고, 새로운 규칙은 이들의 후위 순서로 넣을 수 있다 - NSG Effective Rules
: allow의 경우 서브넷, LAN 모두에 있어야 한다.
NSG 사용
** Subnet : 서브넷에 NGS를 할당하고 보호된 서브넷(DMZ)를 만들 수 있다. 이러한 NSG는 해당 서브넷 내의 모든 컴퓨터로 트래픽 흐름을 제한한다. 각 서브넷에는 0개 또는 1개의 NSG를 연결할 수 있다.
** Network Interface : NIC에 NSG를 할당하면 NIC를 통해 이동하는 모든 트래픽을 NSG 규칙에 따라 제어할 수 있다. 서브넷에 있는 각 NIC에는 NSG를 0개 또는 1개 연결할 수 있다.
▶ NSG를 먼저 서브넷에 연결한 다음, 다른 NSG를 VM의 NIC에 연결하여 VM에 대해 이중으로 트래픽 제한을 둘 수 있다.
이 경우에는 Inbound 트래픽에서는 Subnet NSG가 먼저 평가되어 Subnet NSG를 통해 허용되는 모든 트래픽이 VM SNG에서 평가된다. Outbound 트래픽의 경우, 반대로 VM NSG가 먼저 평가된다.
이런 식으로 세부적인 보안 규칙을 적용할 수 있게 된다.
Application Security Groups(ASG)
ASG를 사용하면 VM을 그룹화하고 해당 그룹에 따라 네트워크 보안 정책을 정의할 수 있다.
예시로 보면, NIC1과 NIC2 는 AsgWeb의 ASG 멤버이고 NIC3는 AsgLogic, NIC4는 AsgDb의 ASG 멤버이다.
여기서 각 NIC는 하나의 NSG에 속하지만 ASG는 다를 수 있다는 것을 알 수 있고 같은 NSG 규칙이 다른 서브넷에 적용될 수 있다는 것을 알 수 있다.
실습) 가상 네트워크 구현
실습 절차는 아래와 같다
- 가상 네트워크 생성 및 구성
- VM을 가상 네트워크에 배포
- Azure VM의 Private 및 Public IP 주소 구성
- 네트워크 보안 그룹(NSG) 구성
- 내부 이름 확인을 위해 Azure DNS 구성
- 외부 이름 확인을 위해 Azure DNS 구성
먼저, Virtual Network를 생성한다.
서브넷이 두개 필요하므로 서브넷을 추가한다.
아래 두 명령어를 통해 Json 파일로 VM을 생성한다.
$rgName = 'az104-04-rg1'
New-AzResourceGroupDeployment -ResourceGroupName $rgName -TemplateFile $HOME/AZ104/Module04/az104-04-vms-template.json -TemplateParameterFile $HOME/AZ104/Module04/az104-04-vms-parameters.json -AsJob
nic1에 대해서도 이 과정을 반복하여 적용한다.
** Standard SKU의 공용 IP 주소를 사용하려면 할당된 네트워크 인터페이스가 네트워크 보안 그룹에 의해 보호되어야 하기 때문에 이 에러가 발생할 수 있다고 한다. 원격 데스크톱 연결을 허용하려면 인터넷으로부터의 인바운드 RDP 트래픽을 명시적으로 허용하는 Network Security Group을 생성하고 이를 두 VM의 네트워크 인터페이스에 할당해야 한다.
NSG를 하나 생성하고(이름은 az104-04-nsg01) 아래와 같은 Inbound 규칙을 추가해준다.
그리고 나서 다시 vm에 접속하면 잘 들어가진다.
VM0에 접속하여 Private DNS zone이 적용되었는지 확인한다.
nslookup az104-04-vm1.contoso.org
powershell 창을 열어 아래 명령어를 통해 Public IP가 나오는 것을 확인한다.
nslookup az104-04-vm0.mycontoso.org [Name server 1]
nslookup az104-04-vm1.mycontoso.org [Name server 1]