다음을 통해 공유


ILB App Service Environment와 Azure Application Gateway 통합

App Service Environment는 고객의 Azure 가상 네트워크 서브넷에 Azure App Service를 배포한 환경입니다. 앱 액세스를 위해 외부 또는 내부 엔드포인트로 배포할 수 있습니다. 내부 엔드포인트를 사용하여 App Service Environment를 배포하는 것을 ILB(내부 부하 분산 장치) App Service Environment라고 합니다.

웹 애플리케이션 방화벽을 통해 SQL 삽입, 사이트 간 스크립팅, 맬웨어 업로드 및 애플리케이션 DDoS와 기타 공격을 차단하기 위해 인바운드 웹 트래픽을 검사하여 웹 애플리케이션을 보호할 수 있습니다. Azure Marketplace에서 WAF 디바이스를 얻거나 Azure 애플리케이션 게이트웨이사용할 수 있습니다.

Azure 애플리케이션 게이트웨이는 계층 7 부하 분산, TLS 오프로드 및 WAF(웹 애플리케이션 방화벽) 보호를 제공하는 가상 어플라이언스입니다. 공용 IP 주소에서 수신 대기하고, 트래픽을 애플리케이션 엔드포인트로 라우팅할 수 있습니다. 다음 정보는 WAF로 구성된 애플리케이션 게이트웨이를 ILB App Service Environment의 앱과 통합하는 방법을 설명합니다.

ILB App Service Environment와 애플리케이션 게이트웨이의 통합은 앱 수준에 있습니다. ILB App Service Environment를 사용하여 애플리케이션 게이트웨이를 구성하는 경우 ILB App Service Environment의 특정 앱에 대해 이 작업을 수행합니다.

개략적인 통합 다이어그램의 스크린샷

이 연습에서는 다음을 수행합니다.

  • Azure Application Gateway를 만듭니다.
  • ILB App Service Environment의 앱을 가리키도록 애플리케이션 게이트웨이를 구성합니다.
  • 애플리케이션 게이트웨이를 가리키는 공용 DNS 호스트 이름을 편집합니다.

필수 조건

애플리케이션 게이트웨이를 ILB App Service Environment와 통합하려면 다음이 필요합니다.

  • ILB App Service Environment
  • ILB App Service Environment에 대한 프라이빗 DNS 영역입니다.
  • ILB App Service Environment에서 실행되는 앱입니다.
  • 애플리케이션 게이트웨이의 공용 DNS 이름입니다.
  • 애플리케이션 게이트웨이에 TLS 암호화를 사용해야 하는 경우 애플리케이션 게이트웨이에 바인딩하는 데 사용되는 유효한 공용 인증서가 필요합니다.

ILB App Service Environment

ILB App Service Environment를 만드는 방법에 대한 자세한 내용은 Azure Portal에서 App Service Environment 만들기 및 Azure Resource Manager 템플릿을 사용하여 App Service Environment 만들기를 참조하세요.

  • ILB App Service Environment를 만든 후 기본 도메인은 .입니다 <YourAseName>.appserviceenvironment.net.

    ILB App Service Environment 개요의 스크린샷.

  • 인바운드 액세스를 위해 내부 부하 분산 장치가 프로비전됩니다. App Service Environment 설정 아래의 IP 주소에서 인바운드 주소를 확인할 수 있습니다. 나중에 이 IP 주소에 매핑된 프라이빗 DNS 영역을 만들 수 있습니다.

    ILB App Service Environment IP 주소 설정에서 인바운드 주소를 가져오는 스크린샷

프라이빗 DNS 영역

내부 이름 확인을 위한 프라이빗 DNS 영역이 필요합니다. 다음 표에 나와 있는 레코드 집합을 사용하여 App Service Environment 이름을 사용하여 만듭니다(지침 은 빠른 시작 참조 - Azure Portal을 사용하여 Azure 프라이빗 DNS 영역 만들기).

속성 타입
* A App Service Environment 인바운드 주소
@ A App Service Environment 인바운드 주소
@ SOA App Service Environment DNS 이름
*.scm A App Service Environment 인바운드 주소

ILB App Service Environment의 App Service

ILB App Service Environment에서 App Service 계획 및 앱을 만들어야 합니다. 포털에서 앱을 만들 때 ILB App Service Environment를 지역으로 선택합니다.

애플리케이션 게이트웨이에 대한 공용 DNS 이름

인터넷에서 애플리케이션 게이트웨이에 연결하려면 라우팅 가능한 도메인 이름이 필요합니다. 이 경우 라우팅 가능한 도메인 이름 asabuludemo.com을(를) 사용하고 이 도메인 이름 app.asabuludemo.com을(를) 사용하여 App Service에 연결하려고 계획했습니다. 애플리케이션 게이트웨이를 만든 후 이 앱 도메인 이름에 매핑된 IP 주소를 Application Gateway 공용 IP 주소로 설정해야 합니다. 애플리케이션 게이트웨이에 매핑된 공용 도메인을 사용하면 App Service에서 사용자 지정 도메인을 구성할 필요가 없습니다. App Service 도메인을 사용하여 사용자 지정 도메인 이름을 구입할 수 있습니다.

유효한 공용 인증서

보안 향상을 위해 세션 암호화를 위해 TLS 인증서를 바인딩합니다. TLS 인증서를 애플리케이션 게이트웨이에 바인딩하려면 다음 정보가 포함된 유효한 공용 인증서가 필요합니다. App Service 인증서를 사용하면 TLS 인증서를 구입하고 형식으로 .pfx 내보낼 수 있습니다.

속성 설명
일반 이름 <yourappname>.<yourdomainname>, 예: app.asabuludemo.com
또는 *.<yourdomainname>, 예: *.asabuludemo.com
애플리케이션 게이트웨이에 대한 표준 인증서 또는 와일드카드 인증서
주체 대체 이름 <yourappname>.scm.<yourdomainname>, 예: app.scm.asabuludemo.com
또는 *.scm.<yourdomainname>, 예: *.scm.asabuludemo.com
App Service kudu 서비스에 연결할 수 있는 SAN입니다. App Service kudu 서비스를 인터넷에 게시하지 않으려면 선택적 설정입니다.

인증서 파일에는 프라이빗 키가 있어야 하며 형식으로 .pfx 저장해야 합니다. 인증서는 나중에 애플리케이션 게이트웨이로 가져옵니다.

애플리케이션 게이트웨이 만들기

기본 애플리케이션 게이트웨이 만들기의 경우 자습서: Azure Portal을 사용하여 웹 애플리케이션 방화벽을 사용하여 애플리케이션 게이트웨이 만들기를 참조하세요.

이 자습서에서는 Azure Portal을 사용하여 ILB App Service Environment를 사용하여 애플리케이션 게이트웨이를 만듭니다.

Azure Portal에서 새로 만들기>네트워크>네트워크 게이트웨이를 선택하여 애플리케이션 게이트웨이를 만듭니다.

  1. 기본 설정

    계층 드롭다운 목록에서 표준 V2 또는 WAF V2를 선택하여 애플리케이션 게이트웨이에서 WAF 기능을 사용하도록 설정할 수 있습니다.

  2. 프런트 엔드 설정

    공용, 프라이빗 또는 둘 다에 프런트 엔드 IP 주소 유형을 선택합니다. 프라이빗 또는 둘 다로 설정한 경우 애플리케이션 게이트웨이 서브넷 범위에서 고정 IP 주소를 할당해야 합니다. 이 경우 공용 엔드포인트에 대해서만 공용 IP로 설정합니다.

    • 공용 IP 주소 - 애플리케이션 게이트웨이 공용 액세스에 대한 공용 IP 주소를 연결해야 합니다. 이 IP 주소를 기록합니다. 나중에 DNS 서비스에 레코드를 추가해야 합니다.

      애플리케이션 게이트웨이 프런트 엔드 설정에서 공용 IP 주소 가져오기의 스크린샷

  3. 백 엔드 설정

    백 엔드 풀 이름을 입력하고 대상 유형에서 App Services 또는 IP 주소 또는 FQDN을 선택합니다. 이 경우 App Services로 설정하고 대상 드롭다운 목록에서 App Service 이름을 선택합니다.

    백 엔드 설정에서 백 엔드 풀 이름 추가의 스크린샷

  4. 구성 설정

    구성 설정에서 회람 규칙 추가 아이콘을 선택하여 회람 규칙을 추가해야 합니다.

    구성 설정에서 회람 규칙 추가의 스크린샷

    회람 규칙에서 수신기백 엔드 대상을 구성해야 합니다. 개념 증명 배포를 위해 HTTP 수신기를 추가하거나 보안 향상을 위해 HTTPS 수신기를 추가할 수 있습니다.

    • HTTP 프로토콜을 사용하여 애플리케이션 게이트웨이에 연결하려면 다음 설정을 사용하여 수신기를 만들 수 있습니다.

      매개 변수 설명
      규칙 이름 예: http-routingrule 라우팅 이름
      수신기 이름 예: http-listener 수신기 이름
      프런트 엔드 IP 공용 인터넷 액세스의 경우 공용으로 설정
      프로토콜 HTTP TLS 암호화 사용 안 함
      포트 80 기본값 HTTP 포트
      수신기 유형 다중 사이트 애플리케이션 게이트웨이에서 다중 사이트 수신 대기 허용
      Host type 다중/와일드카드 수신기 유형이 다중 사이트로 설정된 경우 다중 또는 와일드카드 웹 사이트 이름으로 설정합니다.
      호스트 이름 예: app.asabuludemo.com App Service에 대한 라우팅 가능한 도메인 이름으로 설정

      애플리케이션 게이트웨이 회람 규칙의 HTTP 수신기에 대한 스크린샷

    • TLS 암호화를 사용하여 애플리케이션 게이트웨이에 연결하려면 다음 설정을 사용하여 수신기를 만들 수 있습니다.

      매개 변수 설명
      규칙 이름 예: https-routingrule 라우팅 이름
      수신기 이름 예: https-listener 수신기 이름
      프런트 엔드 IP 공용 인터넷 액세스의 경우 공용으로 설정
      프로토콜 HTTPS TLS 암호화 사용
      포트 443 기본값 HTTPS 포트
      Https 설정 인증서 업로드 CN 및 .pfx 형식의 프라이빗 키를 포함하는 인증서 업로드.
      수신기 유형 다중 사이트 애플리케이션 게이트웨이에서 다중 사이트 수신 대기 허용
      Host type 다중/와일드카드 수신기 유형이 다중 사이트로 설정된 경우 다중 또는 와일드카드 웹 사이트 이름으로 설정합니다.
      호스트 이름 예: app.asabuludemo.com App Service에 대한 라우팅 가능한 도메인 이름으로 설정

      애플리케이션 게이트웨이 라우팅 규칙의 HTTPS 수신기입니다.

    • 백 엔드 대상에서 백 엔드 풀HTTP 설정을 구성해야 합니다. 백 엔드 풀은 이전 단계에서 구성되었습니다. 새로 추가 링크를 선택하여 HTTP 설정을 추가합니다.

      HTTP 설정을 추가하기 위한 새 링크 추가의 스크린샷

    • 다음 표에 나열된 HTTP 설정:

      매개 변수 설명
      HTTP 설정 이름 예: https-setting HTTP 설정 이름
      백 엔드 프로토콜 HTTPS TLS 암호화 사용
      백 엔드 포트 443 기본값 HTTPS 포트
      잘 알려진 CA 인증서 사용 ILB App Service Environment의 기본 도메인 이름은 .입니다 .appserviceenvironment.net. 이 도메인의 인증서는 신뢰할 수 있는 공용 루트 기관에서 발급합니다. 신뢰할 수 있는 루트 인증서 설정에서 잘 알려진 CA 신뢰할 수 있는 루트 인증서를 사용하도록 설정할 수 있습니다.
      새 호스트 이름으로 재정의 ILB App Service Environment에서 앱에 연결할 때 호스트 이름 헤더를 덮어씁니다.
      호스트 이름 재정의 백 엔드 대상에서 호스트 이름 선택 백 엔드 풀을 App Service로 설정할 때 백 엔드 대상에서 호스트를 선택할 수 있습니다
      사용자 지정 프로브 만들기 아니요 기본값 상태 프로브 사용

      **HTTP 설정 추가** 대화 상자의 스크린샷

ILB App Service Environment와 애플리케이션 게이트웨이 통합 구성

애플리케이션 게이트웨이에서 ILB App Service Environment에 액세스하려면 프라이빗 DNS 영역에 대한 가상 네트워크 링크가 있는지 확인해야 합니다. 애플리케이션 게이트웨이의 가상 네트워크에 연결된 가상 네트워크가 없는 경우 다음 단계를 사용하여 가상 네트워크 링크를 추가합니다.

  • 프라이빗 DNS 영역을 사용하여 가상 네트워크 링크를 구성하려면 프라이빗 DNS 영역 구성 평면으로 이동합니다. 가상 네트워크 링크>추가 선택

프라이빗 DNS 영역에 가상 네트워크 링크 추가

  • 링크 이름을 입력하고 애플리케이션 게이트웨이가 있는 해당 구독 및 가상 네트워크를 선택합니다.

프라이빗 DNS 영역의 가상 네트워크 링크 설정에 대한 입력 링크 이름 세부 정보의 스크린샷

  • 애플리케이션 게이트웨이 평면의 백 엔드 상태에서 백 엔드 상태를 확인할 수 있습니다.

백 엔드 상태에서 백 엔드 상태 확인의 스크린샷

공용 DNS 레코드 추가

인터넷에서 애플리케이션 게이트웨이에 액세스할 때 적절한 DNS 매핑을 구성해야 합니다.

  • 애플리케이션 게이트웨이의 공용 IP 주소는 애플리케이션 게이트웨이 평면의 프런트 엔드 IP 구성에서 찾을 수 있습니다.

프런트 엔드 IP 구성에서 찾을 수 있는 애플리케이션 게이트웨이 프런트 엔드 IP 주소

  • 예를 들어 Azure DNS 서비스를 사용하여 앱 도메인 이름을 애플리케이션 게이트웨이의 공용 IP 주소에 매핑하는 레코드 집합을 추가할 수 있습니다.

앱 도메인 이름을 애플리케이션 게이트웨이의 공용 IP 주소에 매핑하기 위한 레코드 집합 추가의 스크린샷

연결 유효성 검사

  • 인터넷의 컴퓨터 액세스에서 애플리케이션 게이트웨이 공용 IP 주소에 대한 앱 도메인 이름의 이름 확인을 확인할 수 있습니다.

명령 프롬프트에서 이름 확인 유효성 검사

  • 인터넷의 컴퓨터 액세스에서 브라우저에서 웹 액세스를 테스트합니다.

웹에 액세스할 수 있는 브라우저 열기의 스크린샷