설명
네트워크 정책은 네임스페이스와 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로 실제 통신 범위를 제한해야 합니다.