GKE 네트워크 정책 지원 점검

Pod 통신을 제한할 정책과 이를 실제로 적용하는 네트워크 기능을 함께 구성하세요.

설명

네트워크 정책은 네임스페이스와 Pod 선택자를 기준으로 허용할 트래픽을 정의해, 한 워크로드가 침해되었을 때 다른 워크로드로 확산되는 범위를 줄이는 데 도움이 됩니다. 정책을 적용하는 네트워크 기능과 실제 Kubernetes NetworkPolicy 리소스가 모두 필요합니다.

Standard의 Calico는 network_policy 설정과 애드온을 확인해야 합니다. Autopilot과 Dataplane V2는 정책 적용 기능을 기본 제공하므로 Calico 설정을 추가하는 대신 실제 정책을 확인하세요.

잠재적 영향

  • Pod 사이의 불필요한 통신을 네트워크 계층에서 제한하기 어려울 수 있습니다.
  • 침해된 워크로드를 통한 수평 이동과 내부 서비스 탐색 위험이 커질 수 있습니다.

해결 방법

  • Calico를 쓰는 Standard에서는 network_policy.enabled = true, provider = "CALICO"와 네트워크 정책 애드온 활성화를 함께 확인하세요.
  • Kubernetes NetworkPolicy 리소스로 필요한 통신을 허용하고 기본 거부 정책을 단계적으로 적용하세요.
  • 기존 클러스터의 기능 변경은 노드 재생성을 수반할 수 있으므로 가용성을 준비하고 실제 허용·차단 결과를 시험하세요.

예시

Calico를 쓰는 Standard 클러스터의 설정 발췌입니다. 노드 수, 프로젝트, 네트워크와 addons_config.network_policy_config.disabled = false 설정은 별도로 준비하세요. Autopilot이나 Dataplane V2에는 이 Calico 설정을 그대로 적용하지 마세요.

변경 전

hcl
resource "google_container_cluster" "example" {
  name     = "example-cluster"
  location = "asia-northeast3"

  network_policy {
    enabled = false
  }
}

변경 후

hcl
resource "google_container_cluster" "example" {
  name     = "example-cluster"
  location = "asia-northeast3"

  network_policy {
    enabled  = true
    provider = "CALICO"
  }
}

설명:

  • 변경 전: Calico의 노드 정책 적용을 끕니다. 이 예제에는 실제 NetworkPolicy도 포함되지 않습니다.
  • 변경 후: 정책 적용을 켜고 필요한 CALICO 제공자를 명시합니다. 별도의 NetworkPolicy로 실제 통신 범위를 제한해야 합니다.

참조