다음을 통해 공유


계층 7(L7) 정책 개요(미리 보기)

네트워크 정책은 Pod 통신을 정의하고 제어하여 Kubernetes 클러스터를 보호하는 데 필수적입니다. 트래픽 흐름을 규제하여 무단 액세스 및 잠재적인 보안 위반을 완화합니다. 고급 컨테이너 네트워킹 서비스는 FQDN 기반 네트워크 정책을 사용하여 보안을 강화합니다. 이 기반을 확장하면서 고급 컨테이너 네트워킹 서비스는 이제 L7 정책 지원을 제공하여 애플리케이션 수준 트래픽에 대한 자세한 검사 및 관리를 지원합니다. 이러한 발전은 AKS 클러스터 내에서 네트워크 통신의 보안 및 효율성을 모두 향상시킵니다. 이 제품에는 HTTP, gRPC 및 Kafka를 포함하여 널리 채택된 프로토콜에 대한 포괄적인 지원이 포함됩니다.

L7 정책의 구성 요소

Envoy 프록시: ACNS 보안 에이전트의 일부인 Envoy는 L7 정책의 적용 지점 역할을 합니다. TPROXY는 애플리케이션 트래픽을 검사하여 정의된 L7 정책과 비교합니다. 확장성 및 리소스 관리를 향상시키기 위해 Envoy는 Cilium 에이전트에서 분리된 별도의 DaemonSet으로 배포됩니다.

L7 정책 작동 방식

애플리케이션 또는 Pod에 대해 L7 정책 적용을 사용하도록 설정하면 나가는 네트워크 트래픽이 먼저 평가되어 구성된 애플리케이션 수준 규칙 준수를 확인합니다. 원본 Pod의 네트워크 인터페이스에 연결된 eBPF 프로브는 패킷을 표시한 다음 노드 로컬 Envoy 프록시로 리디렉션됩니다. 이 리디렉션은 L7 정책을 적용하는 Pod에 대해서만 발생하며 정책 적용이 선택적으로 적용되도록 합니다.

Cilium 네트워크 필터로 보강된 Envoy 프록시는 정책 기준에 따라 트래픽을 대상 Pod로 전달할지 여부를 결정합니다. 허용되는 경우 트래픽이 진행됩니다. 그렇지 않은 경우 Envoy는 원래 Pod에 적절한 오류 코드를 반환합니다. 권한 부여가 성공하면 Envoy 프록시는 트래픽 흐름을 용이하게 하여 애플리케이션 수준의 가시성과 제어를 제공합니다. 이를 통해 Cilium 에이전트는 정책 엔진 내에서 자세한 네트워크 정책을 적용할 수 있습니다. 다음 다이어그램에서는 L7 정책 적용의 개략적인 흐름을 보여 줍니다.

L7 정책의 작동 방식을 보여 주는 스크린샷

허블 및 Grafana를 사용하여 L7 트래픽 모니터링

L7 트래픽 흐름, 특히 HTTP, gRPC 및 Kafka에 대한 인사이트를 얻기 위해 Cilium에서 제공하는 Azure CNI는 고급 컨테이너 네트워킹 서비스에서 기본적으로 사용하도록 설정된 Hubble 에이전트를 활용합니다. 허블은 자세한 흐름 수준 메트릭을 제공합니다.

이러한 L7 메트릭의 분석을 간소화하기 위해 미리 구성된 Azure Managed Grafana 대시보드를 제공합니다. > 워크로드)"과 같은 파일 이름을 사용하여 대시보드 Azure Managed Prometheus 폴더에서 찾을 수 있습니다.

이러한 대시보드는 클러스터, 네임스페이스 및 워크로드 수준에서 L7 흐름 데이터에 대한 세부적인 가시성을 제공합니다.

비고

이러한 대시보드는 클러스터에서 이 기능을 사용하도록 설정하고 관련 정책을 적용한 경우에만 데이터를 표시합니다. 또한 모니터링 메트릭은 ACNS 보안 에이전트의 구성 요소인 Envoy를 통해 전달 되지 않아도 됩니다. 대신, 이러한 메트릭은 고급 컨테이너 네트워킹 서비스의 관찰 기능의 일부로 클러스터에 설치된 Hubble 에이전트에 의해 수집됩니다.

주요 이점

세분화된 Application-Level 제어: L7 정책을 사용하면 HTTP 메서드, gRPC 경로 및 Kafka 토픽과 같은 애플리케이션별 특성에 따라 네트워크 트래픽을 세분화하여 제어할 수 있습니다. 이는 기본 IP 주소 및 기존 네트워크 정책의 포트 기반 제어를 넘어 확장됩니다.

보안 강화: L7 정책은 애플리케이션 수준 트래픽을 검사하여 애플리케이션 계층에서 취약성을 악용하는 공격을 방지할 수 있습니다. 여기에는 특정 API 또는 서비스에 대한 무단 액세스 차단이 포함됩니다. 또한 L7 정책은 제로 트러스트 보안 전략의 중요한 구성 요소이므로 애플리케이션 계층에서 최소 권한 원칙을 적용할 수 있습니다.

정상적인 오류 처리: 일반적으로 무단 트래픽을 자동으로 삭제하는 L3/L4 정책과 달리 L7 정책은 애플리케이션 수준 오류 코드(예: HTTP 403, Kafka 권한 부여 실패)를 반환하여 애플리케이션이 오류를 보다 정상적으로 처리할 수 있도록 합니다.

관찰 가능성: AKS 클러스터에 적용된 고급 컨테이너 네트워킹 서비스 및 L7 정책에 대해 관찰성을 사용하도록 설정하면 Grafana 대시보드를 사용하여 트래픽 및 정책 효율성을 모니터링할 수 있습니다.

제한 사항 및 고려 사항

  • 현재 기능 지원은 HTTP, HTTPS, gRPC 및 Kafka를 기반으로 하는 Cilium의 Layer 7 정책 적용에 의존합니다.
  • 미리 보기에서 지원되는 최대 클러스터 크기는 최대 1,000개의 노드 또는 40,000개의 Pod 중 더 큽니다.
  • Envoy 프록시를 통과하는 트래픽에는 대기 시간이 함께 제공됩니다. 사용자는 초당 3,000개 이상의 요청을 초과하여 눈에 띄는 대기 시간 저하가 발생할 수 있습니다.
  • 관찰 가능성 솔루션의 일환으로 envoy_http_rq_total 메트릭을 제공합니다. 이러한 메트릭은 총 요청 수를 제공하며, 이는 초당 요청(rps)을 파생시키는 데 사용할 수 있습니다.
  • Cilium 업그레이드 또는 롤아웃 중에 기존 세션을 정상적으로 닫을 수 있습니다. 애플리케이션은 일반적으로 연결 또는 요청 수준에서 재시도 메커니즘을 구현하여 이러한 중단을 정상적으로 처리해야 합니다. 롤아웃 중에 시작된 새 연결은 영향을 받지 않습니다.
  • ACNS(Advanced Container Networking Services)를 통한 L7 정책은 Istio와 같은 대체 방법을 통해 구현된 L7 정책과 호환되지 않습니다. 다음 표에서는 지원되는 시나리오를 요약합니다.
기능/구성 요소 AKS, Istio - 관리되는 추가 기능을 사용하는 L7 정책
Cilium에서 제공하는 Azure CNI의 K8s 네트워크 정책 지원됨
Cilium 및 ACNS에서 제공하는 Azure CNI의 L4(FQDN) 정책 지원됨
Cilium 및 ACNS에서 제공하는 Azure CNI의 L7(HTTP/GRPC/Kafka) 정책 지원되지 않음

가격 책정

중요합니다

고급 컨테이너 네트워킹 서비스는 유료 제품입니다. 가격 책정에 대한 자세한 내용은 고급 컨테이너 네트워킹 서비스 - 가격 책정을 참조하세요.

다음 단계