사용자 정의 경로를 사용하여 Azure Container Apps에서 아웃바운드 트래픽 제어
참고 항목
이 기능은 워크로드 프로필 환경 유형에 대해서만 지원됩니다.
이 문서에서는 Azure Firewall과 함께 UDR(사용자 정의 경로)을 사용하여 Container Apps에서 백 엔드 Azure 리소스 또는 기타 네트워크 리소스로 아웃바운드 트래픽을 잠그는 방법을 보여 줍니다.
Azure는 만들 때 가상 네트워크에 대한 기본 경로 테이블을 만듭니다. 사용자 정의 경로 테이블을 구현하여 가상 네트워크 내에서 트래픽이 라우팅되는 방식을 제어할 수 있습니다. 이 가이드에서는 Azure Firewall을 사용하여 아웃바운드 트래픽을 제한하기 위해 Container Apps 가상 네트워크에서 UDR을 설정합니다.
Azure Firewall 대신 NAT 게이트웨이 또는 다른 타사 어플라이언스를 사용할 수도 있습니다.
자세한 내용은 Azure Container Apps의 네트워킹에서 Azure Firewall로 UDR 구성을 참조하세요.
필수 조건
워크로드 프로필 환경: 사용자 지정 가상 네트워크와 통합된 워크로드 프로필 환경입니다. 자세한 내용은 워크로드 프로필 환경에서 컨테이너 앱 환경을 만드는 방법에 대한 가이드를 참조하세요.
curl
지원: 컨테이너 앱에는curl
명령을 지원하는 컨테이너가 있어야 합니다. 이 방법에서는curl
을(를) 사용하여 컨테이너 앱이 올바르게 배포되었는지 확인합니다.curl
(으)로 배포된 컨테이너 앱이 없는 경우curl
,mcr.microsoft.com/k8se/quickstart:latest
을(를) 지원하는 다음 컨테이너를 배포할 수 있습니다.
방화벽 서브넷 만들기
통합 가상 네트워크에 방화벽을 배포하려면 AzureFirewallSubnet이라는 서브넷이 필요합니다.
Azure Portal에서 앱과 통합된 가상 네트워크를 엽니다.
왼쪽 메뉴에서 서브넷을 선택한 다음 , + 서브넷을 선택합니다.
다음 값을 입력합니다.
설정 작업 이름 AzureFirewallSubnet을 입력합니다. 서브넷 주소 범위 기본값을 사용하거나 서브넷 범위/26 이상을 지정합니다. 저장을 선택합니다.
방화벽 배포
Azure Portal 메뉴 또는 홈 페이지에서 리소스 만들기를 선택합니다.
방화벽 검색
방화벽을 선택합니다.
만들기를 실행합니다.
방화벽 만들기 페이지에서 다음 설정대로 방화벽을 구성합니다.
설정 작업 리소스 그룹 통합 가상 네트워크와 동일한 리소스 그룹을 입력합니다. 이름 원하는 이름을 입력합니다. 지역 통합 가상 네트워크와 동일한 지역을 선택합니다. 방화벽 정책 새로 추가를 선택하여 새로 만듭니다. 가상 네트워크 통합 가상 네트워크를 선택합니다. 공용 IP 주소 기존 주소를 선택하거나 새로 추가를 선택하여 주소를 만듭니다. 검토 + 만들기를 선택합니다. 유효성 검사가 완료되면 만들기를 선택합니다. 유효성 검사 단계를 완료하는 데 몇 분 정도 걸릴 수 있습니다.
배포가 완료되면 리소스로 이동을 선택합니다.
방화벽의 개요 페이지에서 방화벽 개인 IP를 복사합니다. 이 IP 주소는 가상 네트워크에 대한 라우팅 규칙을 만들 때 다음 홉 주소로 사용됩니다.
방화벽으로 모든 트래픽 라우팅
Azure의 가상 네트워크에는 네트워크를 만들 때 기본 경로 테이블이 있습니다. 사용자 정의 경로 테이블을 구현하여 가상 네트워크 내에서 트래픽이 라우팅되는 방식을 제어할 수 있습니다. 다음 단계에서는 모든 트래픽을 Azure Firewall에 라우팅하는 UDR을 만듭니다.
Azure Portal 메뉴 또는 홈 페이지에서 리소스 만들기를 선택합니다.
경로 테이블 검색
경로 테이블 선택
만들기를 실행합니다.
다음 값을 입력합니다.
설정 작업 지역 지역을 가상 네트워크로 선택합니다. 이름 이름을 입력합니다. 게이트웨이 경로 전파 아니요를 선택합니다. 검토 + 만들기를 선택합니다. 유효성 검사가 완료되면 만들기를 선택합니다.
배포가 완료되면 리소스로 이동을 선택합니다.
왼쪽 메뉴에서 경로를 선택한 다음 추가를 선택하여 새 경로 테이블을 만듭니다.
다음 설정으로 경로 테이블을 구성합니다.
설정 작업 주소 접두사 0.0.0.0/0을 입력합니다. 다음 홉 유형 가상 어플라이언스 선택 다음 홉 주소 방화벽 배포에 저장한 방화벽 개인 IP를 입력합니다. 추가를 선택하여 경로를 만듭니다.
왼쪽 메뉴에서 서브넷을 선택한 다음 연결을 선택하여 경로 테이블을 container app의 서브넷과 연결합니다.
연결 서브넷을 다음 값으로 구성합니다.
설정 작업 가상 네트워크 container app에 대한 가상 네트워크를 선택합니다. 서브넷 container app에 대한 서브넷을 선택합니다. 확인을 선택합니다.
방화벽 정책 구성
참고 항목
Azure Container Apps에서 Azure Firewall로 UDR을 사용하는 경우 특정 FQDN 및 서비스 태그를 방화벽 허용 목록에 추가해야 합니다. 필요한 서비스 태그는 Azure Firewall로 UDR 구성을 참조하여 결정하세요.
이제 container app에서 모든 아웃바운드 트래픽이 방화벽으로 라우팅됩니다. 현재 방화벽은 여전히 모든 아웃바운드 트래픽을 허용합니다. 허용되거나 거부된 아웃바운드 트래픽을 관리하려면 방화벽 정책을 구성해야 합니다.
개요 페이지의 Azure Firewall 리소스에서 방화벽 정책을 선택합니다.
방화벽 정책 페이지의 왼쪽 메뉴에서 애플리케이션 규칙을 선택합니다.
규칙 컬렉션 추가를 선택합니다.
규칙 컬렉션에 대해 다음 값을 입력합니다.
설정 작업 이름 컬렉션 이름을 입력합니다. 규칙 컬렉션 형식 애플리케이션을 선택합니다. 우선 순위 110과 같은 우선 순위를 입력합니다. 규칙 컬렉션 작업 허용 선택 규칙 컬렉션 그룹 DefaultApplicationRuleCollectionGroup을 선택합니다. 규칙 아래에서 다음 값을 입력합니다.
설정 작업 이름 규칙의 이름을 입력합니다. 원본 유형 IP 주소를 선택합니다. Source *을 입력합니다. 프로토콜 http:80,https:443을 입력합니다. 대상 형식 FQDN을 선택합니다. 대상 mcr.microsoft.com
,*.data.mcr.microsoft.com
을 입력합니다. ACR을 사용하는 경우 ACR 주소 및*.blob.core.windows.net
를 추가합니다.작업 허용 선택 참고 항목
Docker Hub 레지스트리를 사용 중이고 방화벽을 통해 액세스하려는 경우 다음 FQDN을 규칙 대상 목록에 추가해야 합니다. hub.docker.com, registry-1.docker.io 및 production.cloudflare.docker.com.
추가를 선택합니다.
방화벽이 아웃바운드 트래픽을 차단하고 있는지 확인
방화벽 구성이 올바르게 설정되었는지 확인하려면 앱의 디버깅 콘솔에서 curl
명령을 사용할 수 있습니다.
Azure Firewall로 구성된 Container Apps으로 이동합니다.
왼쪽 메뉴에서 콘솔을 선택한 다음
curl
명령을 지원하는 컨테이너를 선택합니다.시작 선택 명령 메뉴에서 /bin/sh를 선택하고 연결을 선택합니다.
콘솔에서
curl -s https://mcr.microsoft.com
을 실행합니다. 방화벽 정책에 대한 허용 목록에mcr.microsoft.com
을 추가하면 성공적인 응답이 표시됩니다.example.com
과 같은 대상 규칙과 일치하지 않는 URL에 대해curl -s https://<FQDN_ADDRESS>
를 실행합니다. 예제 명령은curl -s https://example.com
과 같습니다. 방화벽이 요청을 차단했음을 나타내는 응답을 받지 않아야 합니다.