Azure API Management 앞에 Front Door 표준/프리미엄 구성

적용 대상: 모든 API Management 계층

Azure Front Door는 글로벌 웹 애플리케이션을 위한 안전하고 확장성 있는 CDN(콘텐츠 배달 네트워크), 동적 사이트 가속 및 글로벌 HTTP(s) 부하 분산을 제공하는 최신 애플리케이션 전송 네트워크 플랫폼입니다. Front Door는 API Management 앞에서 사용하는 경우 TLS 오프로딩, 엔드투엔드 TLS, 부하 분산, GET 요청의 응답 캐싱 및 웹 애플리케이션 방화벽을 제공할 수 있습니다. 지원되는 기능의 전체 목록은 Azure Front Door란?을 참조하세요.

참고 항목

웹 워크로드의 경우 Azure DDoS Protection웹 애플리케이션 방화벽을 활용하여 새로운 DDoS 공격으로부터 보호하는 것이 좋습니다. 또 다른 옵션은 웹 애플리케이션 방화벽과 함께 Azure Front Door를 사용하는 것입니다. Azure Front Door는 네트워크 수준 DDoS 공격에 대한 플랫폼 수준 보호를 제공합니다. 자세한 내용은 Azure 서비스에 대한 보안 기준을 참조하세요.

이 문서는 다음 방법을 안내합니다.

  • 공개적으로 액세스할 수 있는 Azure API Management 인스턴스 앞에 Azure Front Door 표준/프리미엄 프로필을 설정합니다(네트워크로 연결되지 않거나 외부 모드에서 가상 네트워크에 삽입됨).
  • Azure Front Door로부터의 API 트래픽만 허용하도록 API Management를 제한합니다.

필수 조건

  • API Management 인스턴스.
    • 네트워크 삽입 인스턴스를 사용하도록 선택하는 경우 외부 VNet에 배포해야 합니다. (가상 네트워크 삽입은 개발자 및 프리미엄 서비스 계층에서 지원됩니다.)
  • 하나 이상의 API를 API Management 인스턴스로 가져와서 Front Door를 통한 라우팅을 확인합니다.

Azure Front Door 구성

프로필 만들기

Azure Front Door 표준/프리미엄 프로필을 만드는 단계는 빠른 시작: Azure Front Door 프로필 만들기 - Azure Portal을 참조하세요. 이 문서에서는 Front Door 표준 프로필을 선택할 수 있습니다. Front Door 표준과 Front Door 프리미엄을 비교하려면 계층 비교를 참조하세요.

API Management 인스턴스의 게이트웨이 엔드포인트를 Front Door 원본으로 사용하는 것과 관련된 다음 Front Door 설정을 구성합니다. 다른 설정에 대한 자세한 내용은 Front Door 빠른 시작을 참조하세요.

설정
원본 형식 API Management를 선택합니다.
원본 호스트 이름 API Management 인스턴스의 호스트 이름을 선택합니다(예: myapim.azure-api.net).
캐싱 정적 콘텐츠를 캐시하려면 Front Door에 대해 캐싱 사용을 선택합니다.
쿼리 문자열 캐시 동작 쿼리 문자열 사용을 선택합니다.

포털에서의 Front Door 프로필 만들기에 대한 스크린샷

기본 원본 그룹 업데이트

프로필이 만들어지면 API Management 상태 프로브를 포함하도록 기본 원본 그룹을 업데이트합니다.

  1. 포털에서 Front Door 프로필로 이동합니다.

  2. 왼쪽 메뉴의 설정 아래에서 원본 그룹>default-origin-group을 차례로 선택합니다.

  3. 원본 그룹 업데이트 창에서 다음 상태 프로브 설정을 구성하고, 업데이트를 선택합니다.

    설정
    상태 상태 프로브 사용을 선택합니다.
    Path /status-0123456789abcdef을 입력합니다.
    프로토콜 HTTPS를 선택합니다.
    방법 GET을 선택합니다.
    간격(초) 30을 입력합니다.

    포털에서의 기본 원본 그룹 업데이트에 대한 스크린샷

기본 경로 업데이트

HTTPS를 전달 프로토콜로 사용하도록 API Management 원본 그룹과 연결되는 기본 경로를 업데이트하는 것이 좋습니다.

  1. 포털에서 Front Door 프로필로 이동합니다.
  2. 왼쪽 메뉴의 설정 아래에서 원본 그룹을 선택합니다.
  3. default-origin-group을 펼칩니다.
  4. default-route의 바로 가기 메뉴(...)에서 경로 구성을 선택합니다.
  5. 허용되는 프로토콜HTTP 및 HTTPS로 설정합니다.
  6. HTTPS를 사용하도록 모든 트래픽 리디렉션을 사용하도록 설정합니다.
  7. 전달 프로토콜HTTPS만 사용으로 설정한 다음, 업데이트를 선택합니다.

구성 테스트

API Management에서 호스트하는 API를 호출하여 Front Door 프로필 구성을 테스트합니다. 먼저 API Management 게이트웨이를 통해 API를 직접 호출하여 API에 연결할 수 있는지 확인합니다. 그런 다음, Front Door를 통해 API를 호출합니다. 테스트하려면 호출에 대한 명령줄 클라이언트(예: curl) 또는 Postman과 같은 도구를 사용할 수 있습니다.

API Management를 통해 직접 API 호출

다음 예제에서는 API Management 인스턴스에서 호스트하는 Demo Conference API의 작업이 Postman을 사용하여 직접 호출됩니다. 이 예제에서 인스턴스의 호스트 이름은 기본 azure-api.net 도메인에 있으며, 유효한 구독 키는 요청 헤더를 사용하여 전달됩니다. 성공적인 응답에서 200 OK를 표시하고 예상 데이터를 반환합니다.

Postman을 사용하여 직접 호출하는 API Management 엔드포인트를 보여 주는 스크린샷

Front Door를 통해 직접 API 호출

다음 예제에서는 Demo Conference API의 동일한 작업이 인스턴스에 대해 구성된 Front Door 엔드포인트를 사용하여 호출됩니다. azurefd.net 도메인에 있는 엔드포인트의 호스트 이름은 포털의 Front Door 프로필에 대한 개요 페이지에 표시됩니다. 성공적인 응답에서 200 OK를 표시하고 이전 예제에서와 동일한 데이터를 반환합니다.

Postman을 사용하여 호출하는 Front Door 엔드포인트를 보여 주는 스크린샷

API Management 인스턴스로 들어오는 트래픽 제한

API Management 정책을 사용하여 API Management 인스턴스에서 Azure Front Door로부터의 트래픽만 허용하도록 합니다. 이 제한은 다음 방법 중 하나 또는 둘 다를 사용하여 수행할 수 있습니다.

  1. 들어오는 IP 주소를 API Management 인스턴스로 제한
  2. X-Azure-FDID 헤더의 값에 따라 트래픽 제한

받는 IP 주소 제한

다음을 포함하는 Front Door 관련 트래픽만 허용하도록 API Management에서 인바운드 ip-filter 정책을 구성할 수 있습니다.

  • Front Door의 백 엔드 IP 주소 공간 - Azure IP 범위 및 서비스 태그AzureFrontDoor.Backend 섹션에 해당하는 IP 주소를 허용합니다.

    참고 항목

    API Management 인스턴스가 외부 가상 네트워크에 배포되는 경우 인바운드 네트워크 보안 그룹 규칙을 API Management 인스턴스에 사용되는 서브넷에 추가하여 동일한 제한을 수행합니다. 443 포트에서 AzureFrontDoor.Backend 원본 서비스 태그의 HTTPS 트래픽을 허용하도록 규칙을 구성합니다.

  • Azure 인프라 서비스 - 168.63.129.16 및 169.254.169.254 IP 주소를 허용합니다.

Front Door 헤더 확인

Front Door를 통해 라우팅되는 요청에는 Front Door 구성과 관련된 헤더가 포함됩니다. API Management에 보내는 X-Azure-FDID HTTP 요청 헤더의 고유한 값을 기준으로 들어오는 요청을 필터링하도록 check-header 정책을 구성할 수 있습니다. 이 헤더 값은 포털의 Front Door 프로필에 대한 개요 페이지에 표시되는 Front Door ID입니다.

다음 정책 예제에서 Front Door ID는 FrontDoorId라는 명명된 값을 사용하여 지정됩니다.

<check-header name="X-Azure-FDID" failed-check-httpcode="403" failed-check-error-message="Invalid request." ignore-case="false">
        <value>{{FrontDoorId}}</value>
</check-header>

유효한 X-Azure-FDID 헤더가 없는 요청은 403 Forbidden 응답을 반환합니다.

(선택 사항) 개발자 포털에 대한 Front Door 구성

필요에 따라 API Management 인스턴스의 개발자 포털을 Front Door 프로필의 엔드포인트로 구성합니다. 관리되는 개발자 포털은 이미 Azure 관리 CDN 앞에 구성되어 있지만 WAF와 같은 Front Door 기능을 활용하는 것이 좋습니다.

개발자 포털에 대한 엔드포인트를 프로필에 추가하는 개략적인 단계는 다음과 같습니다.

  • 엔드포인트를 추가하고 경로를 구성하려면 Front Door 관리자를 사용하여 엔드포인트 구성을 참조하세요.

  • 경로를 추가할 때 개발자 포털을 나타내는 원본 그룹 및 원본 설정을 추가합니다.

    • 원본 형식 - 사용자 지정을 선택합니다.
    • 호스트 이름 - 개발자 포털의 호스트 이름을 입력합니다(예: myapim.developer.azure-api.net).

설정에 대한 자세한 내용은 Azure Front Door의 원본을 구성하는 방법을 참조하세요.

참고 항목

개발자 포털에 대해 Microsoft Entra ID 또는 Azure AD B2C ID 공급자를 구성한 경우 해당 앱 등록을 Front Door에 대한 추가 리디렉션 URL로 업데이트해야 합니다. 앱 등록에서 Front Door 프로필에 구성된 개발자 포털 엔드포인트에 대한 URL을 추가합니다.

다음 단계