[Question]


Azure WebApp (App Service)의 Inbound, Outbound IP를 확인하는 방법에 대해 알고싶습니다.


[Answer]

1. Azure WebApp IP 개요

Azure에서 명시하는 Service Tag 와 IP Range, Azure App Service IP의 동작 방식, Azure Web App의 Inbound IP, Outbound IP가 변경되는 경우에 대해 설명합니다.


1-1. Azure Service Tag IP Range

  - Service Tag는 지정된 Azure 서비스의 IP 주소 Prefix의 그룹을 나타내며, Microsoft는 Service Tag에 포함 된 주소 Prefix를 관리하고 주소 변경에 따라 Service Tag를 자동으로 업데이트하여 네트워크 보안 규칙에 대한 잦은 업데이트의 복잡성을 최소화합니다.

  - Service Tag는 지역별로 분류되며, Microsoft에서는 Service Tag에 해당하는 전체 IP 주소 범위에 대해 JSON 파일로 제공한다. 또한, Service Tag에 대한 IP Range는 매주 업데이트되어 주기적인 확인이 필요합니다.


1-2. Azure App Service IP 동작 방식

  - App Service 앱은 App Service Plan에서 실행되고 App Service Plan은 Azure 인프라의 배포 단위 중 하나 (내부적으로는 웹 공간 이라고 함)에 배포됩니다. 

  - 각 배포 단위에는 하나의 공용 Inbound IP 주소와 4 개의 Outbound IP 주소를 포함 하는 최대 5개의 가상 IP 주소가 할당되며, 동일한 배포 단위의 모든 App Service Plan과 App Service Plan내의 실행 되는 앱 인스턴스는 동일한 가상 IP 주소 집합을 공유합니다. 

  - App Service Environment (Isolated App Service Plan)의 경우 App Service Plan은 배포 단위 자체 이므로 가상 IP 주소는 전용으로 사용됩니다.


1-3. Azure WebApp Inbound IP가 변경되는 경우

  - Scale Out 인스턴스의 수에 관계없이 각 앱에는 단일 Inbound IP 주소가 있으며, 아래와 같은 작업 중 하나를 수행할 때 Inbound IP 주소가 변경될 수 있습니다.

    1. 앱을 삭제하고 다른 리소스 그룹에 다시 만드는 경우

    2. 리소스 그룹 및 지역에서 마지막 앱을 삭제하고 다시 만드는 경우

    3. 인증서를 갱신하는 등의 기존 IP 기반 TLS/SSL 바인딩을 삭제하는 경우


1-4. Azure WebApp Outbound IP가 변경되는 경우

  - Scale Out 인스턴스의 수에 관계없이 각 앱에는 최대 4개의 Outbound IP 주소가 있으며, 지정된 시간에 정해진 Outbound IP 중 하나를 사용합니다. 사용할 IP 주소는 런타임에서 임의로 선택되며, 이에 따라 Back-end 서비스는 앱에 대한 모든 Outbound IP 주소에 대한 방화벽을 열어주어야 합니다.

  - 앱에 대한 Outbound IP 주소 집합은 아래와 같은 작업 중 하나를 수행할 때 변경될 수 있습니다.

    1. 앱을 삭제하고 다른 리소스 그룹에 다시 만드는 경우

    2. 리소스 그룹 및 지역에서 마지막 앱을 삭제하고 다시 만드는 경우

    3. 하위 계층 (Basic, Standard, Premium)과 Premium V2 계층 간 Scale Up/Down을 통해 App Service Plan 크기를 조정하는 경우


참고 링크 : https://docs.microsoft.com/ko-kr/azure/app-service/overview-inbound-outbound-ips

 

2. Azure Service Tag IP Range 확인

Microsoft에서 Service Tag에 해당하는 전체 IP 주소 범위 JSON 파일을 다운받아 IP Range를 확인하는 방법에 대해 설명합니다.

 

2-1. 아래에 명시된 Azure IP Range Service Tag에 대한 다운로드 사이트로 접속합니다.

https://www.microsoft.com/en-us/download/details.aspx?id=56519

 

2-2. 해당 페이지에 접속하면 아래의 그림과 같이 Download 를 받을 수 있는 사이트로 접속이 되며, Details 항목의 Version을 통해 최근 업데이트된 날짜를 확인할 수 있습니다. [Download] 버튼을 클릭하여 해당 JSON파일을 다운로드 합니다. 


2-3. 다운로드 받은 JSON파일을 열어보면 Azure 모든 지역의 모든 서비스에 대한 IP Range가 명시되어 있으며, name, region, systemService 등의 항목에 해당하는 서비스명이나 Azure 데이터센터 지역명을 이용해 검색합니다.

아래의 그림을 예시로 한국 중부(Korea Central) 지역의 App Service IP Range는 다음과 같이 표시되며, [addressPrefixes] 항목에서 한국 중부의 모든 App Service에서 사용하는IP 대역을 확인할 수 있습니다. 

 

3. Azure WebApp Inbound IP, Outbound IP 확인 방법

Azure WebApp의 Inbound IP, Outbound IP를 확인하는 방법에 대해 설명합니다.

 

3-1. Azure Portal로 로그인합니다.

https://portal.azure.com

 

3-2. Portal 좌측 상단의 버튼을 클릭하여 리소스 창을 열어줍니다.


3-3. 리소스 창이 표시되면 [App Services]를 클릭합니다.

 

3-4.  확인하고자 하는 WebApp을 선택합니다. 

  

3-5. 좌측의 설정 탭 하단의 [속성]을 클릭합니다. 

 

3-6. 속성 페이지가 표시되면 아래의 그림과 같이 [가상 IP 주소], [아웃바운드 IP] 주소가 표시됩니다.

가상 IP 주소가 Inbound IP 주소이며, 아웃바운드 IP 주소가 말그대로 Outbound IP 주소가 됩니다.

Outbound IP 주소는 Inbound IP주소를 포함한 총 5개의 주소로 출력됩니다. 

WebApp에서 Back-end 서비스 혹은 3rd Party 서버로 접근하는 경우에는 해당 방화벽에서 WebApp의 Inbound IP가 아닌 Outbound IP 주소들을 허용해주면 됩니다.