App Service Environment에 대한 사용자 지정 도메인 접미사

App Service Environment는 Azure App Service 앱을 매우 높은 확장성으로 안전하게 실행하기 위해 완전히 격리된 전용 환경을 제공하는 Azure App Service 기능입니다. App Service Environment의 기본 도메인 접미사에 대한 DNS 설정은 해당 이름으로만 액세스할 수 있도록 앱을 제한하지 않습니다. 사용자 지정 도메인 접미사는 자체 도메인 접미사를 사용하여 App Service Environment의 앱에 액세스할 수 있는 내부 ILB(부하 분산 장치) App Service Environment 기능입니다.

App Service Environment가 없는 경우 App Service Environment v3을 만드는 방법을 참조하세요.

참고 항목

이 문서에서는 App Service 격리 v2 계획과 함께 사용되는 App Service Environment v3의 기능, 이점 및 사용 사례에 대해 설명합니다.

사용자 지정 도메인 접미사는 App Service Environment에서 사용되는 루트 도메인을 정의합니다. Azure App Service의 공용 변형에서 모든 웹앱용 기본 루트 도메인은 azurewebsites.net입니다. ILB App Service Environment의 경우 기본 루트 도메인은 appserviceenvironment.net입니다. 그러나 ILB App Service Environment는 고객의 가상 네트워크 내부에 있으므로 고객은 회사의 내부 가상 네트워크 내에서 사용하기에 적합한 기본 도메인 외에도 루트 도메인을 사용할 수 있습니다. 예를 들어 가상의 Contoso Corporation은 Contoso의 가상 네트워크 내에서만 확인 가능하고 액세스할 수 있는 앱에 기본 루트 도메인 internal-contoso.com을 사용할 수 있습니다. 이 가상 네트워크의 앱은 APP-NAME.internal-contoso.com에 액세스하여 연결할 수 있습니다.

사용자 지정 도메인 접미사는 App Service Environment를 위한 것입니다. 이 기능은 App Service의 사용자 지정 도메인 바인딩과는 다릅니다. 사용자 지정 도메인 바인딩에 대한 자세한 내용은 Azure App Service에 기존 사용자 지정 DNS 이름 매핑을 참조하세요.

사용자 지정 도메인 접미사에 사용된 인증서에 *.scm.CUSTOM-DOMAIN에 대한 SAN(주체 대체 이름) 항목이 포함된 경우 APP-NAME.scm.CUSTOM-DOMAIN에서도 scm 사이트에 연결할 수 있습니다. 기본 인증을 사용하여 사용자 지정 도메인을 통해서만 scm에 액세스할 수 있습니다. Single Sign-On은 기본 루트 도메인에서만 가능합니다.

이전 버전과 달리 App Service Environment v3의 App Services에 대한 FTPS 엔드포인트는 기본 도메인 접미사를 사용해야 연결할 수 있습니다.

사용자 지정 도메인 접미사 엔드포인트에 대한 연결은 TLS 기반 연결에 SNI(서버 이름 표시)를 사용해야 합니다.

필수 조건

  • App Service Environment v3의 ILB 변형입니다.
  • 유효한 SSL/TLS 인증서는 .PFX 형식으로 Azure Key Vault에 저장되어야 합니다. App Service에서 인증서를 사용하는 방법에 대한 자세한 내용은 Azure App Service에서 TLS/SSL 인증서 추가를 참조하세요.
  • 인증서는 20kb 미만이어야 합니다.

관리 ID

관리 ID는 SSL/TLS 인증서가 저장된 Azure Key Vault에 대해 인증하는 데 사용됩니다. 현재 App Service Environment와 연결된 관리 ID가 없는 경우에는 새로 구성해야 합니다.

시스템 할당 관리 ID 또는 사용자 할당 관리 ID를 지정할 수 있습니다. 사용자 할당 관리 ID를 만들려면 사용자 할당 관리 ID 관리를 참조하세요. 시스템이 할당한 관리 ID를 사용하려는데 아직 App Service Environment에 할당된 ID가 없는 경우에는 사용자 지정 도메인 접미사 포털 환경에서 만들기 프로세스가 안내됩니다. 또는 App Service Environment의 ID 페이지로 이동하여 관리 ID를 구성 및 할당할 수 있습니다.

시스템 할당 관리 ID를 사용하려면 상태를 켜기로 설정합니다.

App Service Environment에 대해 관리 ID가 할당된 샘플 시스템의 스크린샷

사용자가 할당한 관리 ID를 할당하려면 "추가"를 선택하고 사용할 관리 ID를 찾습니다.

App Service Environment에 대한 샘플 사용자 할당 관리 ID의 스크린샷

관리 ID를 App Service Environment에 할당한 후에는 관리 ID에 Azure Key Vault에 대한 충분한 권한이 있는지 확인하세요. 자격 증명 모음 액세스 정책 또는 Azure 역할 기반 액세스 제어를 사용할 수 있습니다.

자격 증명 모음 액세스 정책을 사용하는 경우 관리 ID에는 최소한 키 자격 증명 모음에 대한 "비밀 가져오기" 권한이 필요합니다.

관리 ID에 대한 샘플 키 자격 증명 모음 액세스 정책의 스크린샷

Azure 역할 기반 액세스 제어를 사용하여 키 자격 증명 모음에 대한 액세스를 관리하기로 선택한 경우, 관리 ID에 최소한 "Key Vault 암호 사용자" 역할을 부여해야 합니다.

관리 ID에 대한 샘플 키 자격 증명 모음 역할 기반 액세스 제어를 보여 주는 스크린샷

인증서

사용자 지정 도메인 접미사에 대한 인증서는 Azure Key Vault에 저장해야 합니다. 인증서는 .PFX 형식으로 업로드되어야 하며 20kb보다 작아야 합니다. .PEM 형식의 인증서는 현재 지원되지 않습니다. App Service Environment는 선택한 관리 ID를 사용하여 인증서를 가져옵니다.

인증서는 선택한 사용자 지정 도메인 이름에 대한 와일드카드 인증서여야 합니다. 예를 들어 internal.contoso.com에는 *.internal.contoso.com을 포괄하는 인증서가 필요합니다. 사용자 지정 도메인 접미사에서 사용하는 인증서에 scm에 대한 SAN(주체 대체 이름) 항목(예: *.scm.internal-contoso.com)이 포함된 경우 사용자 지정 도메인 접미사를 사용하여 scm 사이트를 사용할 수도 있습니다.

Azure Key Vault에서 인증서를 회전하면 App Service Environment가 24시간 이내에 변경 내용을 선택합니다.

Key Vault에 대한 네트워크 액세스

키 자격 증명 모음은 공개적으로 액세스하거나 App Service Environment가 배포된 서브넷에서 액세스할 수 있는 프라이빗 엔드포인트를 통해 액세스할 수 있습니다. 프라이빗 엔드포인트를 구성하는 방법을 알아보려면 Azure Private Link와 Key Vault 통합을 참조하세요. 공용 액세스를 사용하는 경우 App Service Environment의 아웃바운드 IP 주소에서 트래픽만 허용하도록 키 자격 증명 모음을 보호할 수 있습니다. App Service Environment는 키 자격 증명 모음에 액세스할 때 플랫폼 아웃바운드 IP 주소를 원본 주소로 사용합니다. Azure Portal의 IP 주소 페이지에서 IP 주소를 찾을 수 있습니다.

Azure Portal의 IP 주소 페이지 스크린샷.

Azure Portal을 사용하여 사용자 지정 도메인 접미사 구성

  1. Azure Portal에서 App Service Environment에 대한 사용자 지정 도메인 접미사로 이동합니다.
  2. 사용자 지정 도메인 이름을 입력합니다.
  3. App Service Environment에 대해 정의한 관리 ID를 선택합니다. 시스템 할당 관리 ID 또는 사용자 할당 관리 ID를 지정할 수 있습니다. 아직 구성하지 않은 경우 관리 ID를 구성할 수 있습니다. 관리 ID 선택 상자의 "ID 추가" 옵션을 사용하여 사용자 지정 도메인 접미사 페이지에서 직접 관리 ID를 구성할 수 있습니다. App Service Environment에 대한 관리 ID를 선택하고 업데이트하기 위한 구성 창의 스크린샷
  4. 사용자 지정 도메인 접미사에 대한 인증서를 선택합니다.
    1. 프라이빗 엔드포인트를 사용하여 키 자격 증명 모음에 액세스하는 경우 네트워크 액세스는 프라이빗 엔드포인트로 제한되므로 포털 인터페이스를 사용하여 인증서를 선택할 수 없습니다. 인증서 URL을 수동으로 입력해야 합니다.
  5. 페이지 상단에서 "저장"을 선택합니다. 최신 구성 업데이트를 보려면 페이지를 새로 고칩니다. 사용자 지정 도메인 접미사 포털 환경의 개요 스크린샷
  6. 사용자 지정 도메인 접미사 구성을 설정하는 데 몇 분 정도 걸립니다. 페이지 상단의 "새로 고침"을 선택하여 상태를 확인합니다. 배너는 최신 진행률로 업데이트됩니다. 완료되면 배너에 사용자 지정 도메인 접미사가 구성되어 있음이 표시됩니다. 샘플 사용자 지정 도메인 접미사 성공 페이지의 스크린샷

Azure Resource Manager를 사용하여 사용자 지정 도메인 접미사 구성

Azure Resource Manager 템플릿을 사용하여 App Service Environment에 대한 사용자 지정 도메인 접미사를 구성하려면 아래 속성을 포함해야 합니다. 필수 구성 요소를 충족하고 관리 ID 및 인증서에 액세스할 수 있으며 Azure Key Vault에 대한 적절한 권한이 있는지 확인합니다.

템플릿에 할당하기 전에 관리 ID를 구성하고 해당 ID가 있는지 확인해야 합니다. 관리 ID에 대한 자세한 내용은 관리 ID 개요를 참조하세요.

사용자 할당 관리 ID 사용

"resources": [
{
    "apiVersion": "2022-03-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": ...,
    "location": ...,
    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-cdns-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-cdns-managed-identity"
        }
    },
    "properties": {
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "antares-test.net",
            "certificateUrl": "https://kv-sample-key-vault.vault.azure.net/secrets/wildcard-antares-test-net",
            "keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-cdns-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-cdns-managed-identity"
        },
        "internalLoadBalancingMode": "Web, Publishing",
        etc...
    }
}

시스템 할당 관리 ID 사용

"resources": [
{
    "apiVersion": "2022-03-01",
    "type": "Microsoft.Web/hostingEnvironments",
    "name": ...,
    "location": ...,
    "identity": {
        "type": "SystemAssigned"
    }
    "properties": {
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "antares-test.net",
            "certificateUrl": "https://kv-sample-key-vault.vault.azure.net/secrets/wildcard-antares-test-net",
            "keyVaultReferenceIdentity": "systemassigned"
        },
        "internalLoadBalancingMode": "Web, Publishing",
        etc...
    }
}

Azure Resource Explorer를 사용하여 사용자 지정 도메인 접미사 구성

또는 Azure Resource Explorer를 사용하여 기존 ILB App Service Environment를 업데이트할 수 있습니다.

  1. 리소스 탐색기에서 App Service Environment에 대한 노드(subscriptions>{your Subscription}>resourceGroups>{your Resource Group}>providers>Microsoft.Web>hostingEnvironments)로 이동합니다. 그런 다음 업데이트할 특정 App Service Environment를 클릭합니다.
  2. 리소스 탐색기에서 대화형 편집을 허용하려면 상단 도구 모음에서 읽기/쓰기를 선택합니다.
  3. 편집 단추를 선택하여 Resource Manager 템플릿을 편집 가능하도록 설정합니다.
  4. 오른쪽 창의 아래쪽으로 스크롤합니다. customDnsSuffixConfiguration 속성이 맨 아래쪽에 있습니다.
  5. dnsSuffix, certificateUrlkeyVaultReferenceIdentity의 값을 입력합니다.
  6. ID 특성으로 이동하여 사용 중인 관리 ID와 연결된 세부 정보를 입력합니다.
  7. 상단의 PUT 단추를 선택하여 변경 내용을 App Service Environment에 커밋합니다.
  8. customDnsSuffixConfiguration 아래의 provisioningState는 구성 업데이트 상태를 제공합니다.

DNS 구성

사용자 지정 도메인 접미사를 사용하여 App Service Environment의 앱에 액세스하려면 자체 DNS 서버를 구성하거나 사용자 지정 도메인에 대한 Azure 프라이빗 DNS 영역에서 DNS를 구성해야 합니다.

사용자 고유의 DNS 서버를 사용하려면 다음 레코드를 추가합니다.

  1. 사용자 지정 도메인에 대한 영역 만들기
  2. 해당 영역에서 *를 App Service Environment에서 사용하는 인바운드 IP 주소로 가리키는 A 레코드를 만듭니다.
  3. 해당 영역에서 @를 App Service Environment에서 사용하는 인바운드 IP 주소로 가리키는 A 레코드를 만듭니다.
  4. 필요에 따라 App Service Environment에서 사용하는 인바운드 IP 주소를 가리키는 * A 레코드를 사용하여 scm 하위 도메인에 대한 영역을 만듭니다.

Azure DNS 프라이빗 영역에서 DNS를 구성하려면 다음을 수행합니다.

  1. 사용자 지정 도메인에 대해 명명된 Azure DNS 프라이빗 영역을 만듭니다. 다음 예에서 사용자 지정 도메인은 internal.contoso.com입니다.
  2. 해당 영역에서 *를 App Service Environment에서 사용하는 인바운드 IP 주소로 가리키는 A 레코드를 만듭니다.
  3. 해당 영역에서 @를 App Service Environment에서 사용하는 인바운드 IP 주소로 가리키는 A 레코드를 만듭니다. 사용자 지정 도메인 접미사에 대한 샘플 DNS 구성의 스크린샷
  4. Azure DNS 프라이빗 영역을 App Service Environment의 가상 네트워크에 연결합니다. 프라이빗 DNS 영역에 대한 샘플 가상 네트워크 링크의 스크린샷
  5. 필요에 따라 해당 영역에서 App Service Environment에서 사용하는 인바운드 IP 주소에 대해 *.scm을 가리키는 A 레코드를 만듭니다.

도메인의 DNS 구성에 대한 자세한 내용은 App Service Environment 사용을 참조하세요.

참고 항목

사용자 지정 도메인 접미사에 대한 DNS를 구성하는 것 외에도 모든 App Service 기능이 예상대로 작동하도록 기본 도메인 접미사의 DNS를 구성하는 것이 좋습니다.

앱에 액세스

App Service Environment 대한 사용자 지정 도메인 접미사 및 DNS를 구성한 후 App Service Environment의 App Service 앱 중 하나에 대한 사용자 지정 도메인 페이지로 이동하여 앱에 할당된 사용자 지정 도메인 추가를 확인할 수 있습니다.

App Service Environment 사용자 지정 도메인 접미사 기능으로 만든 앱의 샘플 사용자 지정 도메인 스크린샷

ILB App Service Environment의 앱은 구성한 사용자 지정 도메인 또는 이전 이미지와 같이 기본 도메인인 appserviceenvironment.net으로 이동하여 HTTPS를 통해 안전하게 액세스할 수 있습니다. 기본 App Service Environment 도메인 및 사용자 지정 도메인을 사용하여 앱에 액세스하는 기능은 App Service Environment v3에서만 지원되는 고유한 기능입니다.

그러나 공용 다중 테넌트 서비스에서 실행 중인 앱의 경우와 마찬가지로, 개별 앱에 대한 사용자 지정 호스트 이름을 구성한 다음, 개별 앱에 대해 고유한 SNI TLS/SSL 인증서 바인딩을 구성할 수 있습니다.

문제 해결

App Service 플랫폼은 App Service Environment가 키 자격 증명 모음에 액세스할 수 있는지, 그리고 인증서가 유효한지 주기적으로 확인합니다. 관리 ID, 키 자격 증명 모음 또는 App Service Environment에 대한 권한 또는 네트워크 설정이 적절하게 설정되지 않았거나 최근에 변경된 경우 사용자 지정 도메인 접미사를 구성할 수 없습니다. 스크린샷에 표시된 예와 유사한 오류가 표시됩니다. 필수 조건을 검토하여 필요한 권한을 구성했는지 확인합니다. App Service 플랫폼에서 인증서의 품질이 저하되었거나 만료되었음을 감지하는 경우에도 유사한 오류 메시지가 표시됩니다.

샘플 사용자 지정 도메인 접미사 오류 메시지의 스크린샷

다음 단계