조직에서는 일반적으로 데이터 반출 위험을 제거하기 위해 클러스터에서 송신(아웃바운드) 네트워크 트래픽을 규제하기 위한 엄격한 보안 및 규정 준수 요구 사항이 있습니다. 기본적으로 표준 SKU AKS(Azure Kubernetes Service) 클러스터에는 무제한 아웃바운드 인터넷 액세스가 있습니다. 이러한 수준의 네트워크 액세스가 있으면 사용자가 실행하는 노드와 서비스는 필요할 때마다 외부 리소스에 액세스할 수 있습니다. 송신 트래픽을 제한하려면 정상적인 클러스터 유지 관리 작업을 유지할 수 있도록 제한된 수의 포트 및 주소에 액세스할 수 있어야 합니다. AKS 클러스터에 대한 아웃바운드 네트워크 및 FQDN(정규화된 도메인 이름) 규칙에 대한 개념 문서는 AKS 클러스터에 필요한 엔드포인트 목록과 선택적 추가 기능 및 기능을 제공합니다.
클러스터에서 아웃바운드 트래픽을 제한하는 일반적인 솔루션 중 하나는 방화벽 디바이스를 사용하여 방화벽 규칙에 따라 트래픽을 제한하는 것입니다. 방화벽은 애플리케이션에 아웃바운드 액세스가 필요하지만 아웃바운드 요청을 검사하고 보호해야 하는 경우에 적용됩니다. 필요한 송신 규칙 및 FQDN 을 사용하여 방화벽을 수동으로 구성하는 것은 특히 클러스터 부트스트래핑에 대한 아웃바운드 종속성이 없는 격리된 AKS 클러스터를 만드는 것이 유일한 요구 사항인 경우 번거로운 프로세스입니다.
데이터 반출 위험을 줄이기 위해, 네트워크 격리 클러스터를 사용하면 Microsoft Artifact Registry(MAR)에서 클러스터 구성 요소 및 이미지를 가져올 때도 아웃바운드 네트워크와의 의존성 없이 AKS 클러스터를 부트스트래핑할 수 있습니다. 클러스터 운영자는 사용하도록 설정하려는 각 시나리오에 대해 허용된 아웃바운드 트래픽을 증분 방식으로 설정할 수 있습니다.
네트워크 격리 클러스터의 작동 방식
다음 다이어그램은 네트워크 격리 클러스터에 대한 종속성 간의 네트워크 통신을 보여줍니다.
AKS 클러스터는 MAR(Microsoft Artifact Registry)에서 클러스터 및 해당 기능 또는 추가 기능에 필요한 아티팩트 가져오기 이 이미지 풀을 사용하면 AKS가 최신 버전의 클러스터 구성 요소를 제공하고 중요한 보안 취약성을 해결할 수 있습니다. 네트워크 격리 클러스터는 MAR에서 끌어오는 대신 클러스터에 연결된 프라이빗 ACR(Azure Container Registry) 인스턴스에서 해당 이미지와 이진 파일을 끌어오려고 시도합니다. 이미지가 없는 경우 프라이빗 ACR은 MAR에서 끌어와 프라이빗 엔드포인트를 통해 제공하므로 클러스터에서 공용 MAR 엔드포인트로 송신할 필요가 없습니다.
다음 두 옵션은 네트워크 격리 클러스터와 연결된 프라이빗 ACR에 대해 지원됩니다.
AKS 관리 ACR - AKS는 이 옵션에서 ACR 리소스를 만들고, 관리하고, 조정합니다. 해야 할 일은 아무것도 없습니다.
참고
AKS에서 관리하는 ACR 리소스가 귀하의 구독에 생성됩니다. 부트스트랩 아티팩트 원본에 대한 AKS 관리 ACR을 사용하여 클러스터를 삭제하는 경우 AKS 관리 ACR, 프라이빗 링크 및 프라이빗 엔드포인트와 같은 관련 리소스도 자동으로 삭제됩니다. 클러스터에서 아웃바운드 형식을
none
또는block
이외의 다른 형식으로 변경하고--bootstrap-artifact-source
를Cache
으로 유지할 경우 그런 다음 관련 리소스가 삭제되지 않습니다.BYO(Bring Your Own) ACR - BYO ACR 옵션을 사용하려면 ACR 리소스와 AKS 클러스터 간에 프라이빗 링크가 있는 ACR을 만들어야 합니다. 레지스트리에 대한 프라이빗 엔드포인트를 구성하는 방법을 이해하려면 Azure Private Link를 사용하여 Azure 컨테이너 레지스트리에 비공개로 연결을 참조하세요. 또한 권한을 할당하고 클러스터에서 사용되는 캐시 규칙, 프라이빗 링크 및 프라이빗 엔드포인트를 관리해야 합니다.
참고
AKS 클러스터를 삭제하거나 기능을 사용하지 않도록 설정한 후 BYO ACR, 프라이빗 링크 및 프라이빗 엔드포인트는 자동으로 삭제되지 않습니다. BYO ACR에 사용자 지정된 이미지 및 캐시 규칙을 추가하는 경우 클러스터 조정 후에 유지됩니다.
네트워크 격리 클러스터를 만들려면 먼저 API 서버와 노드 풀 간의 네트워크 트래픽이 프라이빗 네트워크에만 유지되도록 해야 합니다. 다음 프라이빗 클러스터 모드 중 하나를 선택할 수 있습니다.
- 프라이빗 링크 기반 클러스터 - 컨트롤 플레인 또는 API 서버가 AKS 관리 Azure 리소스 그룹에 있고 노드 풀이 리소스 그룹에 있습니다. 서버와 노드 풀은 API 서버 가상 네트워크의 Azure Private Link 서비스 및 AKS 클러스터의 서브넷에 노출되는 프라이빗 엔드포인트를 통해 서로 통신할 수 있습니다.
- API Server VNet 통합이 구성된 클러스터 - API Server VNet 통합으로 구성된 클러스터는 API 서버 엔드포인트를 AKS가 배포된 가상 네트워크의 위임된 서브넷에 직접 투영합니다. API 서버 VNet 통합을 통해 프라이빗 링크나 터널 없이도 API 서버와 클러스터 노드 간의 네트워크 통신이 가능합니다.
또한 AKS 클러스터의 송신 경로가 제어되고 제한되는지 확인해야 합니다. 다음 네트워크 아웃바운드 유형 중 하나를 선택할 수 있습니다.
none
의 아웃바운드 유형 -none
이 설정된 경우. AKS는 송신 경로를 자동으로 구성하지 않으며 기본 경로는 필요하지 않습니다. BYO(Bring-your-own) 가상 네트워크 시나리오와 관리형 가상 네트워크 시나리오 모두에서 지원됩니다. 자체 가상 네트워크 시나리오를 사용하는 경우 필요한 경우 명시적인 송신 경로를 설정해야 합니다.block
의 아웃바운드 형식(미리 보기) -block
이 설정된 경우. AKS는 클러스터에서의 모든 송신 트래픽을 적극적으로 차단하도록 네트워크 규칙을 구성합니다. 이 옵션은 아웃바운드 연결을 제한해야 하는 보안 수준이 높은 환경에 유용합니다. 관리형 가상 네트워크 시나리오에서 지원됩니다. 사용자 고유의 가상 네트워크 시나리오에서 NSG(네트워크 보안 그룹) 규칙을none
추가하여 모든 아웃바운드 트래픽을 차단함으로써 유사한 효과를 얻을 수 있습니다.
참고
아웃바운드 형식 none
은 일반적으로 사용할 수 있습니다.
아웃바운드 형식 block
은 미리 보기로 제공됩니다.
중요
AKS 미리 보기 기능은 셀프 서비스에서 사용할 수 있습니다(옵트인 방식). 미리 보기는 "있는 그대로" 및 "사용 가능한 상태로" 제공되며 서비스 수준 계약 및 제한적 보증에서 제외됩니다. AKS 미리 보기의 일부는 고객 지원팀에서 최선을 다해 지원합니다. 따라서 이러한 기능은 프로덕션 용도로 사용할 수 없습니다. 자세한 내용은 다음 지원 문서를 참조하세요.
제한 사항
Unmanaged
채널은 지원되지 않습니다.- Windows 노드 풀은 아직 지원되지 않습니다.
- kubenet 네트워킹은 지원되지 않습니다.
주의
네트워크 격리 AKS 클러스터에서 노드 공용 IP 를 사용하는 경우 아웃바운드 형식 none
의 아웃바운드 트래픽을 허용합니다.
송신이 필요한 기능, 추가 기능 및 확장 사용
BYO ACR을 사용하는 네트워크 격리 클러스터의 경우:
- 아웃바운드 형식
none
의 네트워크 격리 클러스터에서 아웃바운드 네트워크 액세스가 필요한 AKS 기능 또는 추가 기능을 사용하려는 경우 이 문서에 는 각 기능에 대한 아웃바운드 네트워크 요구 사항이 포함되어 있습니다. 또한 이 문서에서는 클러스터의 가상 네트워크 내에서 보안 연결을 위한 프라이빗 링크 통합을 지원하는 기능이나 추가 기능을 열거합니다. 이러한 기능에 액세스하려면 프라이빗 엔드포인트를 설정하는 것이 좋습니다. 예를 들어 네트워크 격리 클러스터에서 Managed Prometheus(Azure Monitor 작업 영역) 및 컨테이너 인사이트(Log Analytics 작업 영역)를 사용하도록 프라이빗 엔드포인트 기반 수집 을 설정할 수 있습니다. 이러한 기능에 프라이빗 링크 통합을 사용할 수 없는 경우 그런 다음, 해당 기능에 필요한 네트워크 규칙 및 애플리케이션 규칙에 따라 사용자 정의 라우팅 테이블 및 Azure Firewall 을 사용하여 클러스터를 설정할 수 있습니다. - Azure Files 및 Blob Storage에 Azure CSI(Container Storage Interface) 드라이버를 사용하는 경우 "networkEndpointType: privateEndpoint"를 사용하여 사용자 지정 스토리지 클래스를 만들어야 합니다. Azure Files 스토리지 클래스 및 Azure Blob Storage 클래스의 예제를 참조하세요.
- 다음 AKS 클러스터 확장은 네트워크 격리 클러스터에서 아직 지원되지 않습니다.
자주 묻는 질문
네트워크 격리 클러스터와 Azure Firewall의 차이점은 무엇인가요?
네트워크 격리 클러스터는 클러스터 부트스트래핑 프로세스 전체에서 VNet 이외에는 어떠한 송신 트래픽도 요구하지 않습니다. 네트워크 격리 클러스터의 아웃바운드 유형은 none
또는 block
중 하나입니다. 아웃바운드 형식이 설정된 none
경우 AKS는 클러스터에 대한 아웃바운드 연결을 설정하지 않으므로 사용자가 직접 구성할 수 있습니다. 아웃바운드 형식이 설정된 block
경우 모든 아웃바운드 연결이 차단됩니다.
방화벽은 일반적으로 신뢰할 수 있는 네트워크와 신뢰할 수 없는 네트워크(예: 인터넷) 사이에 장벽을 설정합니다. 예를 들어 Azure Firewall은 대상을 기반으로 하는 아웃바운드 HTTP 및 HTTPS 트래픽을 제한할 수 있습니다. 이를 통해 송신 트래픽을 세부적으로 제어할 수 있을 뿐만 아니라, AKS 클러스터의 아웃바운드 종속성을 포함하는 FQDN에 대한 액세스를 제공할 수도 있습니다. 이것은 NSG가 할 수 없는 일입니다. 예를 들어 방화벽을 통해 아웃바운드 트래픽을 강제로 적용하도록 userDefinedRouting
클러스터의 아웃바운드 유형을 설정한 다음 아웃바운드 트래픽에 대한 FQDN 제한을 구성할 수 있습니다. 여전히 방화벽을 원하는 경우가 많습니다. 애플리케이션에서 아웃바운드 트래픽이 있거나 송신 및 수신 모두 클러스터 트래픽을 제어, 검사 및 보호하려는 경우와 같습니다.
요약하자면, Azure Firewall을 사용하여 아웃바운드 요청이 있는 클러스터에 대한 송신 제한을 정의할 수 있지만, 네트워크 격리 클러스터는 아웃바운드 요청을 모두 제거하거나 차단하여 기본값으로 보안 상태를 더욱 강화합니다.
네트워크 격리 클러스터가 작동하려면 허용 목록 엔드포인트를 설정해야 하나요?
클러스터 만들기 및 부트스트래핑 단계에서는 네트워크 격리 클러스터의 아웃바운드 트래픽이 필요하지 않습니다. AKS 구성 요소 및 추가 기능에 필요한 이미지는 퍼블릭 엔드포인트를 통해 MAR(Microsoft 아티팩트 레지스트리)에서 끌어오는 대신 클러스터에 연결된 프라이빗 ACR에서 가져옵니다.
네트워크 격리 클러스터를 설정한 후 서비스 엔드포인트에 대한 아웃바운드 요청을 수행해야 하는 기능 또는 추가 기능을 사용하도록 설정하려면 Azure Private Link에서 제공하는 서비스에 프라이빗 엔드포인트를 설정할 수 있습니다.
노드 풀 이미지를 업그레이드하도록 패키지를 수동으로 업그레이드할 수 있나요?
패키지 리포지토리로의 송신을 기반으로 패키지를 수동으로 업그레이드하는 것은 권장되지 않습니다. 대신 노드 OS 이미지를 수동으로 업그레이드 하거나 자동 업그레이드할 수 있습니다. NodeImage
및 None
업그레이드 채널만 현재 네트워크 격리 클러스터에 대해 지원됩니다.
none
또는 block
를 제외한 다른 아웃바운드 형식으로 변경하면 여전히 네트워크 격리 클러스터가 되나요?
네트워크 격리 클러스터에 대해 지원되는 유일한 아웃바운드 형식은 아웃바운드 형식 none
및 block
. 다른 아웃바운드 형식을 사용하는 경우 클러스터는 연관된 프라이빗 ACR에서 아티팩트를 계속 끌어올 수 있지만, 이로 인해 송신 트래픽이 생성될 수 있습니다.
다음 단계
Azure Kubernetes Service