Azure Container Apps 가상 네트워크를 구성하기 위한 네트워크 보안 그룹

가상 네트워크를 구성하는 데 필요한 NSG(네트워크 보안 그룹)는 Kubernetes에 필요한 설정과 매우 유사합니다.

기본 NSG 규칙보다 더 제한적인 규칙으로 NSG를 통해 네트워크를 보호하여 구독 수준에서 Azure Container Apps 환경에 대한 모든 인바운드 및 아웃바운드 트래픽을 제어할 수 있습니다.

워크로드 프로필 환경에서는 UDR(사용자 정의 경로)과 방화벽을 사용하여 아웃바운드 트래픽을 보호하는 것이 지원됩니다. Azure Firewall 사용하여 아웃바운드 트래픽을 제한하도록 Container Apps용 UDR을 설정하는 방법에 대한 가이드는 사용자 정의 경로를 사용하여 Azure Container Apps 아웃바운드 트래픽을 제어합니다.

외부 워크로드 프로필 환경을 사용하는 경우 Container Apps에 대한 인바운드 트래픽은 서브넷이 아닌 관리되는 리소스 그룹에 있는 공용 IP를 통해 라우팅됩니다. 이 제한은 외부 워크로드 프로필 환경에서 NSG 또는 방화벽을 통한 인바운드 트래픽 잠금이 지원되지 않음을 의미합니다.

레거시 소비 전용 환경에서는 Azure ExpressRoute 지원되지 않으며 사용자 지정 UDR은 제한된 지원을 받습니다. 소비 전용 환경에서 사용할 수 있는 UDR 지원 수준에 대한 자세한 내용은 FAQ를 참조하세요.

NSG 허용 규칙

다음 표에서는 NSG 허용 규칙 컬렉션을 구성하는 방법을 설명합니다. 필요한 특정 규칙은 환경 유형에 따라 달라집니다.

인바운드

참고 항목

워크로드 프로필을 사용하는 경우 인바운드 NSG 규칙은 가상 네트워크를 통과하는 트래픽에만 적용됩니다. 퍼블릭 인터넷의 트래픽을 허용하도록 컨테이너 앱을 설정하는 경우 들어오는 트래픽은 가상 네트워크 대신 퍼블릭 엔드포인트를 통과합니다.

프로토콜 출처 원본 포트 대상 대상 포트 설명
TCP 클라이언트 IP * 컨테이너 앱의 서브넷1 80, 31080 HTTP를 사용할 때 클라이언트 IP가 Container Apps에 액세스할 수 있도록 허용합니다. 31080 는 Container Apps 환경 에지 프록시가 HTTP 트래픽에 응답하는 포트입니다. 내부 부하 분산 장치 뒤에 있습니다.
TCP 클라이언트 IP * 컨테이너 앱의 서브넷1 443, 31443 HTTPS를 사용할 때 클라이언트 IP가 Container Apps에 액세스할 수 있도록 허용합니다. 31443 는 Container Apps 환경 에지 프록시가 HTTPS 트래픽에 응답하는 포트입니다. 내부 부하 분산 장치 뒤에 있습니다.
TCP Azure Load Balancer (Azure 부하 분산 장치) * 컨테이너 앱의 서브넷 30000-32767 2 Azure Load Balancer가 백 엔드 풀을 검색하도록 허용합니다.
TCP 클라이언트 IP * 컨테이너 앱의 서브넷 노출된 포트 및 30000-327672 이 규칙은 TCP 앱에만 적용됩니다. HTTP 앱에는 필요하지 않습니다.

1 환경을 만들 때 이 주소를 매개 변수로 전달합니다. 예들 들어 10.0.0.0/21입니다.

2 범위 내의 포트로 컨테이너 앱을 만들 때 전체 범위가 동적으로 할당되어야 합니다. 컨테이너 앱을 만든 후 필요한 포트는 변경할 수 없는 두 정적 값이며 NSG 규칙을 업데이트할 수 있습니다.

아웃바운드

프로토콜 출처 원본 포트 대상 대상 포트 설명
TCP 컨테이너 앱의 서브넷 * MicrosoftContainerRegistry 443 이 서비스 태그는 시스템 컨테이너에 대한 Microsoft 아티팩트 레지스트리를 나타냅니다.
TCP 컨테이너 앱의 서브넷 * AzureFrontDoor.FirstParty 443 이 서비스 태그는 서비스 태그의 MicrosoftContainerRegistry 종속성입니다.
모두 컨테이너 앱의 서브넷 * 컨테이너 앱의 서브넷 * 이 규칙은 컨테이너 앱의 서브넷에서 IP 간 통신을 허용합니다.
TCP 컨테이너 앱의 서브넷 * AzureActiveDirectory 443 관리 ID를 사용하는 경우 필요합니다.
TCP 컨테이너 앱의 서브넷 * AzureMonitor 443 이 규칙은 Azure Monitor 사용하는 경우에만 필요합니다. Azure Monitor 아웃바운드 호출을 허용합니다.
TCP 및 UDP 컨테이너 앱의 서브넷 * 168.63.129.16 53 이 규칙을 사용하면 환경에서 Azure DNS 사용하여 호스트 이름을 확인할 수 있습니다.

Azure DNS DNS 통신은 AzurePlatformDNS 서비스 태그를 통해 대상으로 지정되지 않는 한 NSG의 적용을 받지 않습니다. DNS 트래픽을 차단하려면 서비스 태그에 대한 트래픽 AzurePlatformDNS 을 거부하는 아웃바운드 규칙을 만듭니다.
TCP 컨테이너 앱의 서브넷1 * 컨테이너 레지스트리 컨테이너 레지스트리의 포트 이 규칙은 컨테이너 레지스트리와 통신하는 데 필요합니다. 예를 들어 Azure Container Registry 사용하는 경우 대상에 대해 AzureContainerRegistryAzureActiveDirectory 필요합니다. 프라이빗 엔드포인트를 사용하지 않는 한 포트는 컨테이너 레지스트리의 포트입니다. 2개
TCP 컨테이너 앱의 서브넷 * Storage.<Region> 443 이 규칙은 Container Registry를 사용하여 이미지를 호스트하는 경우에만 필요합니다.

1 환경을 만들 때 이 주소를 매개 변수로 전달합니다. 예들 들어 10.0.0.0/21입니다.

2 가상 네트워크에 구성된 NSG와 함께 Container Registry를 사용하는 경우 컨테이너 레지스트리에 프라이빗 엔드포인트를 만들어 Container Apps가 가상 네트워크를 통해 이미지를 끌어올 수 있도록 합니다. 프라이빗 엔드포인트로 구성된 경우 Container Registry에 대한 NSG 규칙을 추가할 필요가 없습니다.

고려 사항

  • HTTP 서버를 실행 중인 경우 포트 80443을 추가해야 할 수 있습니다.
  • 보내는 NSG 규칙에서 Azure DNS 주소 168.63.129.16 명시적으로 거부하지 마세요. 이렇게 하면 Container Apps 환경이 작동하지 않습니다.