프라이빗 Application Gateway 배포(미리 보기)
소개
지금까지 Application Gateway v2 SKU 및 일부 v1에는 서비스를 관리할 수 있도록 공용 IP 주소 지정이 필요했습니다. 이러한 요구 사항으로 인해 네트워크 보안 그룹 및 경로 테이블에서 세분화된 컨트롤을 사용하는 데 몇 가지 제한 사항이 적용되었습니다. 특히 다음과 같은 문제가 관찰되었습니다.
- 게이트웨이 관리자 서비스 태그에 대한 통신을 사용하려면 모든 Application Gateway v2 배포에 공용 연결 프런트 엔드 IP 구성이 포함되어야 합니다.
- 네트워크 보안 그룹 연결에는 GatewayManager의 인바운드 액세스 및 인터넷에 대한 아웃바운드 액세스를 허용하는 규칙이 필요합니다.
- 기본 경로(0.0.0.0/0)를 도입하여 인터넷, 메트릭, 모니터링 및 게이트웨이 업데이트 이외의 다른 곳에서 트래픽을 전달하면 실패 상태가 됩니다.
Application Gateway v2는 이제 이러한 각 항목을 해결하여 데이터 반출 위험을 더 제거하고 가상 네트워크 내에서 통신의 개인 정보를 제어할 수 있습니다. 이러한 변경 내용에는 다음 기능이 포함됩니다.
- 프라이빗 IP 주소 전용 프런트 엔드 IP 구성
- 공용 IP 주소 리소스가 필요하지 않음
- 네트워크 보안 그룹을 통한 GatewayManager 서비스 태그에서 인바운드 트래픽 제거
- 인터넷으로의 송신 트래픽을 제한하는 아웃바운드 NSG(네트워크 보안 그룹) 모두 거부 규칙을 정의하는 기능
- 인터넷에 대한 기본 경로를 재정의하는 기능(0.0.0.0/0)
- 프라이빗 링크 프라이빗 DNS 영역을 포함하여 자세히 알아보려면 가상 네트워크에서 정의된 확인자를 통한 DNS 확인을 참조하세요.
이러한 각 기능은 독립적으로 구성할 수 있습니다. 예를 들어 공용 IP 주소를 사용하여 인터넷의 트래픽 인바운드를 허용하고 네트워크 보안 그룹 구성에서 아웃바운드 모두 거부 규칙을 정의하여 데이터 반출을 방지할 수 있습니다.
공개 미리 보기에 온보딩
프라이빗 IP 프런트 엔드 구성의 새 컨트롤, NSG 규칙에 대한 제어 및 경로 테이블에 대한 제어의 기능은 현재 공개 미리 보기로 제공됩니다. 공개 미리 보기에 조인하려면 Azure Portal, PowerShell, CLI 또는 REST API를 사용하여 환경을 옵트인합니다.
미리 보기에 조인하면 모든 새 Application Gateway가 NSG, 경로 테이블 또는 개인 IP 구성 기능의 조합을 정의하는 기능을 사용하여 프로비전됩니다. 새 기능을 옵트아웃하고 현재 일반 공급되는 Application Gateway 기능으로 돌아가려면 미리 보기에서 등록을 취소하면 됩니다.
미리 보기 기능에 대한 자세한 내용은 Azure 구독에서 미리 보기 기능 설정을 참조하세요.
미리 보기에 등록
다음 단계를 사용하여 Azure Portal을 통해 향상된 Application Gateway 네트워크 컨트롤에 대한 공개 미리 보기에 등록합니다.
Azure Portal에 로그인합니다.
검색 상자에 subscriptions를 입력하고 구독을 선택합니다.
구독 이름에 대한 링크를 선택합니다.
왼쪽 메뉴의 설정에서 미리 보기 기능을 선택합니다.
사용 가능한 미리 보기 기능 목록과 현재 등록 상태가 표시됩니다.
미리 보기 기능에서 EnableApplicationGatewayNetworkIsolation 필터 상자에 입력하고 기능을 확인한 후 등록을 클릭합니다.
참고 항목
기능 등록은 등록 중에서 등록됨 상태로 전환하는 데 최대 30분이 걸릴 수 있습니다.
미리 보기 기능에 대한 자세한 내용은 Azure 구독에서 미리 보기 기능 설정을 참조하세요.
미리 보기에서 등록 취소
포털을 통해 향상된 Application Gateway 네트워크 컨트롤에 대한 공개 미리 보기를 옵트아웃하려면 다음 단계를 사용합니다.
Azure Portal에 로그인합니다.
검색 상자에 subscriptions를 입력하고 구독을 선택합니다.
구독 이름에 대한 링크를 선택합니다.
왼쪽 메뉴의 설정에서 미리 보기 기능을 선택합니다.
사용 가능한 미리 보기 기능 목록과 현재 등록 상태가 표시됩니다.
미리 보기 기능에서 EnableApplicationGatewayNetworkIsolation 필터 상자에 입력하고 기능을 확인한 후 등록 취소를 클릭합니다.
지역 및 가용성
프라이빗 Application Gateway 미리 보기는 Application Gateway v2 sku가 지원되는 모든 퍼블릭 클라우드 지역에서 사용할 수 있습니다.
네트워크 컨트롤 구성
공개 미리 보기에 등록한 후에는 모든 메서드를 사용하여 NSG, 경로 테이블 및 개인 IP 주소 프런트 엔드 구성을 구성할 수 있습니다. 예: REST API, ARM 템플릿, Bicep 배포, Terraform, PowerShell, CLI 또는 포털. 이 공개 미리 보기에서는 API 또는 명령 변경 내용이 도입되지 않습니다.
리소스 변경
게이트웨이가 프로비전되면 리소스 태그가 EnhancedNetworkControl의 이름 및 True 값으로 자동 할당됩니다. 다음 예제를 참조하십시오.
리소스 태그는 외관상이며 게이트웨이가 프라이빗 전용 게이트웨이 기능의 조합을 구성하는 기능으로 프로비전되었는지 확인하는 역할을 합니다. 태그 또는 값을 수정하거나 삭제해도 게이트웨이의 기능 작업은 변경되지 않습니다.
팁
EnhancedNetworkControl 태그는 기능 사용 전에 기존 Application Gateway를 구독에 배포하고 새 기능을 활용할 수 있는 게이트웨이를 구분하려는 경우에 유용할 수 있습니다.
Application Gateway 서브넷
Application Gateway 서브넷은 Application Gateway 리소스가 배포될 Virtual Network 내의 서브넷입니다. 프런트 엔드 개인 IP 구성에서는 이 서브넷이 노출된 앱 또는 사이트에 연결하려는 리소스에 비공개로 연결할 수 있다는 것이 중요합니다.
아웃바운드 인터넷 연결
프라이빗 프런트 엔드 IP 구성만 포함하는 Application Gateway 배포(요청 라우팅 규칙에 연결된 공용 IP 프런트 엔드 구성이 없음)는 인터넷으로 향하는 트래픽을 송신할 수 없습니다. 이 구성은 인터넷을 통해 공개적으로 액세스할 수 있는 백 엔드 대상에 대한 통신에 영향을 줍니다.
Application Gateway에서 인터넷 연결 백 엔드 대상으로 아웃바운드 연결을 사용하도록 설정하려면 Virtual Network NAT를 활용하거나 인터넷에 액세스할 수 있는 가상 어플라이언스로 트래픽을 전달합니다.
Virtual Network NAT는 구성 가능한 유휴 시간 제한뿐만 아니라 사용해야 하는 IP 주소 또는 접두사를 제어합니다. 구성하려면 공용 IP 주소 또는 공용 접두사를 사용하여 새 NAT Gateway를 만들고 Application Gateway를 포함하는 서브넷과 연결합니다.
인터넷 송신에 가상 어플라이언스가 필요한 경우 이 문서의 경로 테이블 제어 섹션을 참조하세요.
공용 IP 사용이 필요한 일반적인 시나리오:
- 프라이빗 엔드포인트 또는 서비스 엔드포인트를 사용하지 않고 키 자격 증명 모음에 통신
- Application Gateway에 직접 업로드된 pfx 파일에는 아웃바운드 통신이 필요하지 않음
- 인터넷을 통해 백 엔드 대상에 통신
- 인터넷 연결 CRL 또는 OCSP 엔드포인트에 통신
네트워크 보안 그룹 제어
Application Gateway 서브넷에 연결된 네트워크 보안 그룹에는 GatewayManager에 대한 인바운드 규칙이 더 이상 필요하지 않으며 인터넷에 대한 아웃바운드 액세스가 필요하지 않습니다. 유일한 필수 규칙은 상태 프로브가 게이트웨이에 도달할 수 있도록 AzureLoadBalancer에서 인바운드 허용입니다.
다음 구성은 Azure 상태 프로브를 제외한 모든 트래픽을 거부하는 가장 제한적인 인바운드 규칙 집합의 예입니다. 정의된 규칙 외에도 클라이언트 트래픽이 게이트웨이의 수신기에 도달할 수 있도록 명시적 규칙이 정의됩니다.
참고 항목
Application Gateway는 DenyAll 규칙이 실수로 상태 프로브에 대한 액세스를 제한하는 경우 LoadBalanceRule 허용이 지정되었는지 확인하는 경고를 표시합니다.
예제 시나리오
이 예제에서는 다음 규칙과 함께 Azure Portal을 사용하여 NSG를 만드는 단계를 안내합니다.
- 인터넷에서 시작된 클라이언트 요청에서 Application Gateway로의 포트 80 및 8080에 대한 인바운드 트래픽 허용
- 다른 모든 인바운드 트래픽 거부
- 다른 가상 네트워크의 백 엔드 대상에 대한 아웃바운드 트래픽 허용
- 인터넷에 액세스할 수 있는 백 엔드 대상에 대한 아웃바운드 트래픽 허용
- 다른 모든 아웃바운드 트래픽 거부
먼저 네트워크 보안 그룹을 만듭니다. 이 보안 그룹에는 인바운드 및 아웃바운드 규칙이 포함됩니다.
인바운드 규칙
세 가지 인바운드 기본 규칙이 보안 그룹에 이미 프로비전되어 있습니다. 다음 예제를 참조하십시오.
다음으로, 다음 네 가지 새로운 인바운드 보안 규칙을 만듭니다.
- 인터넷에서 인바운드 포트 80, tcp 허용(모든 항목)
- 인터넷에서 인바운드 포트 8080, tcp 허용(모든 항목)
- AzureLoadBalancer에서 인바운드 허용
- 모든 인바운드 거부
이러한 규칙을 만들려면 다음을 수행합니다.
- 인바운드 보안 규칙을 선택합니다.
- 추가 선택
- 인바운드 보안 규칙 추가 창에 각 규칙에 대해 다음 정보를 입력합니다.
- 정보를 입력했으면 추가를 선택하여 규칙을 만듭니다.
- 각 규칙을 만드는 데 시간이 걸립니다.
규칙 번호 | 원본 | 원본 서비스 태그 | 원본 포트 범위 | 대상 | 서비스 | 대상 포트 범위 | 프로토콜 | 작업 | 우선 순위 | 속성 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 모두 | * | 모두 | HTTP | 80 | TCP | 허용 | 1028 | AllowWeb | |
2 | 모두 | * | 모두 | 사용자 지정 | 8080 | TCP | 허용 | 1029 | AllowWeb8080 | |
3 | 서비스 태그 | AzureLoadBalancer | * | 모두 | 사용자 지정 | * | 모두 | 허용 | 1045 | AllowLB |
4 | 모두 | * | 모두 | 사용자 지정 | * | 모두 | 거부 | 4095 | DenyAllInbound |
새로 고침을 선택하여 프로비전이 완료되면 모든 규칙을 검토합니다.
아웃바운드 규칙
우선 순위가 65000, 65001 및 65500인 세 가지 기본 아웃바운드 규칙이 이미 프로비전되어 있습니다.
다음 세 가지 새로운 아웃바운드 보안 규칙을 만듭니다.
- 10.10.4.0/24에서 백 엔드 대상 203.0.113.1로의 TCP 443 허용
- 원본 10.10.4.0/24에서 대상 10.13.0.4로의 TCP 80 허용
- DenyAll 트래픽 규칙
이러한 규칙에는 각각 400, 401 및 4096의 우선 순위가 할당됩니다.
참고 항목
- 10.10.4.0/24는 Application Gateway 서브넷 주소 공간입니다.
- 10.13.0.4는 피어링된 VNet의 가상 머신입니다.
- 203.0.113.1은 백 엔드 대상 VM입니다.
이러한 규칙을 만들려면 다음을 수행합니다.
- 아웃바운드 보안 규칙을 선택합니다.
- 추가 선택
- 아웃바운드 보안 규칙 추가 창에 각 규칙에 대해 다음 정보를 입력합니다.
- 정보를 입력했으면 추가를 선택하여 규칙을 만듭니다.
- 각 규칙을 만드는 데 시간이 걸립니다.
규칙 번호 | 원본 | 원본 IP 주소/CIDR 범위 | 원본 포트 범위 | 대상 | 대상 IP 주소/CIDR 범위 | 서비스 | 대상 포트 범위 | 프로토콜 | 작업 | 우선 순위 | 속성 |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | IP 주소 | 10.10.4.0/24 | * | IP 주소 | 203.0.113.1 | HTTPS | 443 | TCP | 허용 | 400 | AllowToBackendTarget |
2 | IP 주소 | 10.10.4.0/24 | * | IP 주소 | 10.13.0.4 | HTTP | 80 | TCP | 허용 | 401 | AllowToPeeredVnetVM |
3 | 모두 | * | 모두 | 사용자 지정 | * | 모두 | 거부 | 4096 | DenyAll |
새로 고침을 선택하여 프로비전이 완료되면 모든 규칙을 검토합니다.
서브넷에 NSG 연결
마지막 단계는 Application Gateway가 포함된 서브넷에 네트워크 보안 그룹을 연결하는 것입니다.
결과:
Important
액세스를 허용하려는 클라이언트의 인바운드 트래픽을 실수로 거부할 수 있으므로 DenyAll 규칙을 정의할 때는 주의해야 합니다. 백 엔드 대상에 대한 아웃바운드 트래픽을 실수로 거부하여 백 엔드 상태가 실패하고 5XX 응답을 생성할 수도 있습니다.
경로 테이블 컨트롤
Application Gateway의 현재 제공에서 0.0.0.0/0으로 정의된 규칙(또는 규칙 만들기)과 다음 홉을 가상 어플라이언스 사용하여 경로 테이블을 연결하면 Application Gateway를 적절하게 관리할 수 없습니다.
공개 미리 보기 기능을 등록한 후 가상 어플라이언스에 대한 다음 홉을 사용하여 0.0.0.0/0을 정의하는 경로 테이블 규칙의 정의를 통해 가상 어플라이언스 트래픽을 전달할 수 있습니다.
BGP 광고를 통한 강제 터널링 또는 0.0.0.0/0 경로 학습은 Application Gateway 상태에 영향을 미치지 않으며 트래픽 흐름에 적합합니다. 이 시나리오는 VPN, ExpressRoute, Route Server 또는 Virtual WAN을 사용할 때 적용할 수 있습니다.
예제 시나리오
다음 예제에서는 경로 테이블을 만들고 Application Gateway 서브넷에 연결하여 서브넷에서 아웃바운드 인터넷 액세스가 가상 어플라이언스 송신되도록 합니다. 대략적으로 다음 디자인은 그림 1에 요약되어 있습니다.
- Application Gateway는 스포크 가상 네트워크에 있습니다.
- 허브 네트워크에 네트워크 가상 어플라이언스(가상 머신)이 있습니다.
- 가상 어플라이언스 대한 기본 경로(0.0.0.0/0)가 있는 경로 테이블은 Application Gateway 서브넷에 연결됩니다.
그림 1: 가상 어플라이언스를 통한 인터넷 액세스 송신
경로 테이블을 만들고 Application Gateway 서브넷에 연결하려면 다음을 수행합니다.
- 경로를 선택하고 0.0.0.0/0에 대한 다음 홉 규칙을 만들고 대상을 VM의 IP 주소로 구성합니다.
- 서브넷을 선택하고 경로 테이블을 Application Gateway 서브넷에 연결합니다.
- 트래픽이 가상 어플라이언스를 통과하는지 확인합니다.
제한 사항/알려진 문제
퍼블릭 미리 보기에는 다음과 같은 제한 사항이 알려져 있습니다.
프라이빗 링크 구성
프라이빗 엔드포인트를 통해 Application Gateway로 트래픽을 터널링하기 위한 프라이빗 링크 구성 지원은 프라이빗 전용 게이트웨이에서 지원되지 않습니다.
WAF 속도 제한
Application Gateway WAF v2에 대한 속도 제한 사용자 지정 규칙은 현재 지원되지 않습니다.
AGIC를 통해서만 프라이빗 IP 프런트 엔드 구성
AGIC v1.7은 프라이빗 프런트 엔드 IP에 대한 지원만 도입하는 데 사용해야 합니다.
글로벌 VNet 피어링을 통한 프라이빗 엔드포인트 연결
Application Gateway는 글로벌 VNet 피어링을 통해 액세스할 수 있는 VNet에 있는 프라이빗 엔드포인트에 대한 백 엔드 대상 또는 키 자격 증명 모음 참조가 있는 경우 트래픽이 삭제되어 비정상 상태가 발생합니다.
Network Watcher 통합
연결 문제 해결 및 NSG 진단은 확인 및 진단 테스트를 실행할 때 발생하는 오류를 반환합니다.
향상된 네트워크 제어를 사용하도록 설정하기 전에 만든 v2 Application Gateway 공존
서브넷이 향상된 네트워크 제어 기능을 사용하도록 설정하기 전과 후에 만든 Application Gateway v2 배포를 공유하는 경우 NSG(네트워크 보안 그룹) 및 경로 테이블 기능은 이전 게이트웨이 배포로 제한됩니다. 새 기능을 사용하도록 설정하기 전에 프로비전된 애플리케이션 게이트웨이를 다시 프로비전하거나 새로 만든 게이트웨이가 다른 서브넷을 사용하여 향상된 네트워크 보안 그룹 및 경로 테이블 기능을 사용하도록 설정해야 합니다.
- 새 기능을 사용하도록 설정하기 전에 배포된 게이트웨이가 서브넷에 있는 경우 경로 테이블 항목을 추가할 때
For routes associated to subnet containing Application Gateway V2, please ensure '0.0.0.0/0' uses Next Hop Type as 'Internet'
과 같은 오류가 표시될 수 있습니다. - 서브넷에 네트워크 보안 그룹 규칙을 추가할 때 다음이 표시될 수 있습니다.
Failed to create security rule 'DenyAnyCustomAnyOutbound'. Error: Network security group \<NSG-name\> blocks outgoing Internet traffic on subnet \<AppGWSubnetId\>, associated with Application Gateway \<AppGWResourceId\>. This isn't permitted for Application Gateways that have fast update enabled or have V2 Sku.
알 수 없는 백 엔드 상태
백 엔드 상태가 알 수 없음인 경우 다음 오류가 표시 될 수 있습니다.
- 백 엔드 상태를 검색할 수 없습니다. 이는 애플리케이션 게이트웨이 서브넷의 NSG/UDR/방화벽이 v1 SKU가 있는 경우 포트 65503-65534에서 트래픽을 차단하고, v2 SKU가 있거나 백 엔드 풀에 구성된 FQDN을 IP 주소로 확인할 수 없는 경우 포트 65200-65535입니다. 자세히 알아보려면 https://aka.ms/UnknownBackendHealth를 방문하세요.
이 오류는 무시될 수 있으며 향후 릴리스에서 명확히 설명될 예정입니다.
다음 단계
- 더 많은 보안 모범 사례는 Application Gateway에 대한 Azure 보안 기준을 참조하세요.