티스토리 뷰

Azure App Service는 멀티 테넌트 서비스와 앱 서비스 환경의 두 가지 배포 유형으로 제공된다. 멀티 테넌트 서비스에서는 동일한 인프라에 수천 명의 고객이 있다. 앱은 항상 보호되지만 네트워크, 주소 공간 및 일부 다른 구성 요소는 공유된다. App Service 환경에서는 Azure 가상 네트워크에서 실행되는 단일 테넌트 버전의 App Service가 있다. 다음 두 글에서는 멀티 테넌트 App Service에서 네트워크 보안을 구성하는 방법에 대해 중점적으로 다룬다.

 

 

 

네트워킹 개요

웹 앱, 인바운드 트래픽 및 아웃바운드 트래픽을 위해 확보해야 하는 두 가지 측면이 있다. 인바운드 트래픽은 방문자가 웹 페이지로 이동하거나 고객이 API로 요청을 보내는 것이다. 아웃바운드 트래픽은 웹 앱이 데이터베이스, 캐시, 메시지 대기열 또는 기타 서비스에 아웃바운드 호출을 하는 경우이다. 인바운드 트래픽은 로드 밸런서를 통해 공유 프론트 엔드 서버 세트로 전달된 후 앱이 실행하는 워커에게 도달된다. 아웃바운드 트래픽은 해당 워커를 떠나 스케일 유닛에서 사용하는 아웃바운드 로드 밸런서를 통과한다. 아래 다이어그램에서 인바운드 및 아웃바운드 로드 밸런서는 녹색으로 표시된다.

 

앱 서비스 내부의 구성요소를 오가는 모든 트래픽은 엄격히 차단되고 보안이 설정되어 악의적인 행동을 방지한다. 여기에는 워커간 통신 차단이 포함된다. 이는 사용자가 앱으로 들어오고 나가는 네트워킹 경로를 확보하기만 하면 다른 모든 트래픽이 확보된다는 것을 의미한다.

 

기능 및 서비스

다음 자습서에서는 여러 Azure 네트워킹 기능 및 서비스를 사용하다. 다음은 이 글에서 사용된 기능에 대한 간략한 설명이다.

  • 웹 애플리케이션 방화벽 : 웹 애플리케이션 방화벽 (또는 줄여서 WAF)은 애플리케이션과 최종 사용자 사이에 위치한다. 교차 사이트 스크립팅 또는 SQL 삽입과 같은 일반적인 공격으로부터 애플리케이션을 보호한다.
  • 가상 네트워크 : Azure VNet (가상 네트워크)은 Azure에서 네트워크를 만들기 위한 빌딩 블록이다. VNet은 온-프레미스 네트워크에 있는 물리적 네트워크와 유사하다. VNet에 대한 주소 공간을 할당하고 서브넷을 적용하여 네트워크를 구성 할 수 있다.
  • Application Gateway : Application Gateway는 애플리케이션의 부하 분산 장치 역할을하며 요청된 호스트 이름 또는 URL 경로를 기반으로 요청을 라우팅 할 수 있다. Azure Application Gateway 기능에 대해 자세히 알아보라.
  • 서비스 엔드포인트 : 일부 Azure 리소스는 기본적으로 가상 네트워크에 배포된다. 다중 테넌트 App Service와 같은 다른 리소스는 서비스 엔드포인트를 사용하여 VNet에 액세스 할 수 있다. 즉, 서비스 엔드포인트를 사용하여 VNet 내의 서브넷에서 웹앱으로의 인바운드 트래픽만 허용 할 수 있다.
  • 프라이빗 엔드포인트 : 프라이빗 엔드포인트를 사용하면 선택한 VNet의 주소에 있는 서비스에 인바운드 트래픽을 노출 할 수 있다.
  • Azure Front Door : Front Door (AFD)는 Application Gateway와 동일한 기능과 이점을 많이 제공한다. 사용자를 가장 가까운 POP (Point of Presence)로 라우팅하여 애플리케이션 성능을 향상시킨다.

 

 

 

웹 앱 보호하기

웹 앱 주변의 네트워크 액세스를 보호하려면 보안이 필요하다.

  1. 앱에 대한 인바운드 요청 트래픽
  2. 앱에 대한 인바운드 게시 트래픽
  3. 앱으로부터의 아웃바운드 콜

 

앱에 대한 인바운드 요청 트래픽을 보호하려면 WAF 지원 서비스 앤드 포인트가 있는 애플리케이션 게이트웨이를 사용한다. 앱에 대한 인바운드 게시 트래픽을 보호하려면 게시 엔드포인트의 서비스 엔드포인트가 있는 빌드 에이전트를 사용한다. 마지막으로 웹 앱에서 아웃바운드 트래픽을 보호하려면 VNet Integration 및 Azure Firewall을 사용한다.

 

 

인바운드 트래픽 보호하기

  1. Azure VNet (가상 네트워크)을 선택하거나 만든다. 앱에 대한 인바운드 트래픽을 보호하려면 VNet이 필요하다. 이미 하나가 있는 경우 새로 만들 필요가 없다. 웹앱과 동일한 지역에 있어야 한다. VNet이 없는 경우 Azure Virtual Network 만들기 지침에 따라 만들 수 있다.
  2. 여기에 Application Gateway 만들기에 설명 된대로 Application Gateway를 만든다.
  3. 웹앱에 대한 서비스 엔드포인트를 활성화 한다.
  4. VNet, App Gateway 및 서비스 엔드포인트를 설정했으면 Application Gateway를 가리켜야 하는 앱의 사용자 지정 도메인 이름을 추가해야 한다. 웹앱은 새 도메인 이름으로 구성되어야 한다. 웹 앱에 사용자 지정 도메인 이름을 추가하려면 여기의 지침을 따른다.

최종 결과는 웹앱이 모든 인바운드 트래픽을 Application Gateway를 통해 앱으로 라우팅하게 된다는 것이다. Application Gateway에서 WAF (웹 응용 프로그램 방화벽) 지원을 활성화 할 수 있으며 활성화해야 한다.

 

대체 구성

주의를 요하는 미리보기의 두 가지 대체 서비스가 있다. 하나는 서비스 엔드포인트 대신 프라이빗 엔드포인트를 사용하고 다른 하나는 Application Gateway 대신 Azure Front Door를 사용하는 것이다.

서비스 엔드포인트 대신 프라이빗 엔드포인트를 사용하는 경우 GatewaySubnet이 아닌 서브넷에 프라이빗 엔드포인트를 생성한다. 이 프라이빗 엔드포인트는 앱에 대해 구성된다. 앱에 대한 HTTPS 게시 엔드포인트도 호스팅하므로 이는 훌륭한 솔루션이다. 앱에 프라이빗 엔드포인트를 추가하면 더 이상 인터넷에서 앱에 액세스 할 수 없다. 앱에 대한 트래픽은 앱의 프라이빗 엔드포인트만 통과해야 한다.

앱에서 AFD (Azure Front Door)를 사용하는 경우 AFD를 통해서만 액세스 할 수 있도록 앱을 보호하려면 IP 주소 액세스 제한을 설정해야 한다. 특정 AFD 프로필로 앱을 잠글 수 있도록 곧 사용할 수 있는 몇 가지 추가 변경 사항이 있다. AFD를 사용하는 경우 Application Gateway와 마찬가지로 WAF 보호와 같은 혼합 기능을 활성화 할 수 있다.

 

인바운드 트래픽 게시 보호

게시는 웹 앱 콘텐츠를 앱 서비스 인스턴스에 업로드하는 프로세스이다. FTP를 사용하지 않는 한, 모든 게시 작업은 앱의 SM 사이트에 대해 수행된다. 모든 앱에 대해 앱 URL이 존재하며 게시 URL도 존재한다. 게시 URL은 .scm.azurewebsites.net 이다. 보안 게시는 보안 앱 액세스와 크게 다르지 않다. 안전한 게시를 위해서는 VNet 내부에서 게시해야 한다. 안전한 게시 사례를 얻으려면 다음 패턴 중 하나를 따라야 한다.

  • 액세스 제한을 사용하여 앱의 게시 엔드포인트에 대한 트래픽을 보호한다.
  • 서비스 엔드포인트를 사용하여 게시에 사용되는 점프 박스의 트래픽을 보호한다.
  • VNet의 VM에 배포된 Azure Pipeline 빌드 에이전트와 같은 릴레이 에이전트를 사용한 다음 서비스 엔드포인트를 사용하여 scm 사이트를 빌드 에이전트가 있는 서브넷으로 보호한다.

Azure Pipeline 릴레이 에이전트를 사용하려면

  1. VNet에서 VM을 만든다.
  2. Azure 파이프라인 에이전트를 설치 및 구성한다.
  3. VM이 있는 서브넷에 대해 앱 scm 사이트의 서비스 엔드 포인트를 구성한다.

 

웹 앱으로부터의 아웃바운드 트래픽 보호

웹 앱에서 아웃바운드 트래픽을 보호하려면 리전 VNet Integration 기능을 사용해야 한다. 이 기능을 사용하면 VNet으로 호출할 수 있으며 모든 아웃바운드 트래픽이 NSG(네트워크 보안 그룹) 및 UDR(라우트 테이블)의 적용을 받도록 할 수 있다. NSG를 사용하면 원하는 블록을 지정하도록 아웃바운드 트래픽을 제한할 수 있다. UDR을 사용하면 원하는 대로 트래픽을 라우팅할 수 있다. 아웃바운드 트래픽을 Azure Firewall 장치로 라우팅하는 경우 아웃바운드 인터넷 트래픽을 원하는 FQDN으로만 제한할 수 있다.

웹 앱에서 아웃바운드 트래픽을 보호하려면 VNet 통합을 사용하도록 설정한다. 기본적으로 앱 아웃바운드 트래픽은 개인 주소(10.0.0/8, 172.16.0.0/12, 192.168.0.0/16)로 이동하는 경우에만 NSG 및 UDR의 영향을 받는다. 모든 아웃바운드 트래픽이 통합 서브넷의 NSG 및 UDR의 영향을 받는지 확인하려면 애플리케이션의 설정 WEWSE_VNET_ROUTE_ALL을 1로 설정한다.

 

 

요약

축하한다! 이 글에서는 인바운드 및 아웃 바운드 네트워킹 트래픽을 보호하는 방법을 배웠다. 이제 App Service 및 네트워킹 기능을 조합하여 안전한 인터넷 연결 웹 애플리케이션을 만들 수 있다.

 

7부 멀티 티어 웹 애플리케이션으로 계속

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함