Cloud/AZURE

Azure Application Gateway - Private Link 1

지기(ZIGI) 2023. 3. 15. 06:51

Today Keys :   Application gateway, private link, endpoint, private, secure, security,  connection, 프라이빗


이번 포스팅에서 다룰 내용은 현재 Preview로 제공되는 Azure Application Gateway의 Private Link를 만들고, 테스트 해보는 예제를 다뤄봅니다.

기존에 Network Loadbalancer를 통해서 사용자 서비스에 대한 Private Link를 Application Gateway에서도 지원하게 되면서 보다 다양한 설계가 가능하게 될 것 같습니다.
 

'22.6.13부터 Preview 제공 중인 Application Gateway의 Private Link를 테스트하기 위한 이번 포스팅의 구성입니다.
 
 
 
2개의 가상 네트워크가 있으며,
ZIGI-VNet1에 웹서버를 올리고, Application Gateway가 연결되어 있습니다.
ZIGI-VNet2에는 일반 VM이 하나 있습니다.

 

두 VNet 간에는 별도의 Peering 연결이나, VWan, Network Manager를 통한 연결이 없으며
각각 독립적인 VNet인 상황에서 Application Gateway에 대한 Private Link를 만들고,
이 Private Link와 연결이 가능한 Private Endpoint를 만들어서 VNet2의 VM에서 VNet1의 웹서버에 연결합니다.
ZIGI-VNet1의 웹서버와 Application Gateway는 구성 및 연결이 된 상태에서 예제를 진행합니다.
 
 
먼저, Application Gateway Private Link를 만들기 전에,
Application Gateway Private Link 만들기 위해서 필요한 값을 확인해둡니다.
 
Application Gateway의 Frontend IP에 대한 Name을 메모장에 복사해 둡니다.
 
 
 
그리고,  Private Link Configuration을 위해서, VNet의 Resource ID를 복사해둡니다.
실제로 사용하는 것은 VNet Resource ID는 아니고, 서브넷 ID가 필요하지만,
서브넷 ID가
'VNet Resource ID/subnets/서브넷명'
이기 때문에 VNet Resource ID를 복사해둡니다.
 
 
 

 

Private Link를 만들, Applicatin Gateway의 Resource ID 값도 복사해 둡니다.
 
 
 
이제 본격적으로 Application Gateway의 Private Link를 만들어 보겠습니다.
Application Gateway의   'Private Link'  메뉴를 보면 다음과 같이
'Private Link Configuration' 과 'Private endpoint connections' 설정을 하는 곳이 있습니다.
 
Application Gateway에 대한 Private Link Configuration을 먼저 생성 하고,
설정한 Private Link Configuration으로
해당 Private Link를 사용하게 될 VNet에 Private endpoint connections을 만들게 됩니다.
 
 
 
이번 포스팅에서는 Azure CLI를 사용합니다.
 
먼저 Private Link Configuration을 추가하겠습니다.
Application Gateway에 속한 VNet에서
Private Link Subnet의 'disable-private-link-service-network-policies' 속성을 true로 설정합니다.
Private Link Subnet은 Application Gateway의 서브넷과 분리되어야 합니다.
 
이 포스팅에서는 VNet과 Subnet을 각각 ZIGI-VNET1,  ZIGI-Sub4으로 사용했습니다.
 

 

 
Private Link Subnet의 속성을 변경하고 나면, Private-link를 추가합니다.
앞에서 미리 복사해둔 Application의 fronend-ip 값과
VNet의 Resource ID를 사용해서 Private Link Subnet 값,
Application Gateway 이름을 지정하여, Private-link를 생성합니다.

 

 
 
정상적으로 Application Gateway의 Private Link가 생성되면,
Azure Portal에서도 아래와 같이 Application Gateway의 Private link 메뉴에서
Private link Configuration 항목이 추가된 것을 볼 수 있습니다.
 
 
 
다음은 Private Link Configuration으로 생성한 Private link를 사용 할
Private endpoint connections 설정을 합니다.

 

 
Application Gateway의 Private link를 만들 때와 마찬가지로,
Private link를 통해서 연결될 사용자 VNet의 Private endpoint subnet에서  'disable-private-link-service-network-policies' 속성을 true로 설정합니다.
 
 
 
이제 Private endpoint를 생성합니다.
Private endpoint를 만들 VNet과, Subnet을 지정하고
group-id로는 Private link와 연결된 Application Gateway의 Frontend-IP를 입력합니다.
그리고, 앞서 복사해둔  Application Gateway의 Resource ID를 'private-connection-resource-id ' 값으로 설정하여, Private endpoint를 생성합니다.
 
이 포스팅에서는 VNet과 Subnet을 각각 ZIGI-VNET2,  ZIGI2-Sub3으로 사용했습니다.
 
 
 
정상적으로 Private endpoint가 생성되면,
Azure Portal에서도 아래와 같이 Application Gateway의 Private lik 메뉴에서
Private endpoint connections 항목이 추가된 것을 볼 수 있습니다.
 
 
 
Private Endpoint가 생성된 VNet인 ZIGI-VNet2에서도
Private endpoints 메뉴에서 Application Gateway의 Private Link로 연결이 가능한
Private endpoint가 생성된 것을 확인 할 수 있습니다.
 
 
 
생성된 Private endpoint의 정보는 다음과 같이
Private endpoint 메뉴에서 좀 더 자세하게 확인 할 수 있습니다.
 
 
 
Private endpoint의 DNS Configuration 메뉴에서
현재 Private Endpoint로 생성된 Network Interface의 IP 주소를 확인합니다.
 
 

 

앞서 확인한 Private endpoint의 IP 주소를 통해서
ZIGI-VNet2에 있는 VM에서 ZIGI-VNet1에 있는 Application Gateway를 Private Link를 통해서 연결 해봅니다.
 
테스트를 위해서 ZIGI-VNet1의 VM에는 간단한 웹서버를 올려두고, 
호출 시에 'ZIGISPACE' 라는 텍스트만 응답하도록 해두었습니다.
 
 
이제 ZIGI2-VM1에서 ZIGI-VNet2에 있는 VM에서 Private endpoint의 IP 주소로 접속하여,
Application Gateway에 연결된 서버로 정상 접속이 된 것을 볼 수 있습니다.