설명
네트워크 정책이 적용되지 않으면 같은 클러스터 안의 워크로드가 필요 이상으로 서로 통신할 수 있습니다. Network Policy는 마이크로서비스 간 통신 범위를 줄이고, 침해 시 확산을 제한하는 통제입니다.
Calico를 쓰는 Standard에서는 노드의 정책 적용 기능과 애드온을 함께 구성해야 합니다. Autopilot과 Dataplane V2는 정책 적용 기능을 기본 제공하지만, 어느 경우든 실제 Kubernetes NetworkPolicy 리소스가 필요합니다.
잠재적 영향
- 불필요한 Pod 간 통신이 허용돼 내부 이동 범위가 넓어질 수 있습니다.
- 민감한 워크로드가 같은 클러스터의 다른 서비스에 더 쉽게 노출될 수 있습니다.
해결 방법
- Calico Standard에서
network_policy.enabled = true,provider = "CALICO"와addons_config.network_policy_config.disabled = false를 확인하세요. - NetworkPolicy로 필요한 통신만 허용하고 실제 허용·차단 결과를 시험하세요.
- 기존 클러스터에서 기능을 변경할 때는 노드 재생성과 워크로드 중단에 대비하세요.
예시
Calico를 쓰는 Standard 클러스터의 발췌입니다. 실제 NetworkPolicy 리소스는 별도로 배포하세요. Autopilot이나 Dataplane V2에 이 Calico 설정을 그대로 적용하지 마세요.
변경 전
hcl
resource "google_container_cluster" "cluster" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
network_policy {
enabled = false
}
addons_config {
network_policy_config {
disabled = false
}
}
timeouts {
create = "30m"
update = "40m"
}
}
변경 후
hcl
resource "google_container_cluster" "cluster" {
name = "marcellus-wallace"
location = "us-central1-a"
initial_node_count = 3
networking_mode = "VPC_NATIVE"
network_policy {
enabled = true
provider = "CALICO"
}
addons_config {
network_policy_config {
disabled = false
}
}
timeouts {
create = "30m"
update = "40m"
}
}
설명:
- 변경 전: 애드온은 켜져 있지만 Calico의 노드 정책 적용은 꺼져 있습니다.
- 변경 후: CALICO 제공자와 노드·애드온 기능을 함께 켭니다. 실제 통신 범위는 별도의 NetworkPolicy로 제한합니다.