説明
ネットワークポリシーが適用されていないと、同じクラスター内のワークロードが必要以上に通信できる場合があります。NetworkPolicy はサービス間の通信範囲を絞り、侵害時の被害拡大を抑える制御です。
Standard の Calico ではノードの適用機能とアドオンの両方を設定する必要があります。Autopilot と Dataplane V2 は適用機能を組み込んでいますが、いずれも実際の Kubernetes NetworkPolicy リソースが必要です。
想定される影響
- 不要な Pod 間通信によって横展開の範囲が広がるおそれがあります。
- 機密性の高いワークロードに、同じクラスターの別のサービスからアクセスしやすくなる場合があります。
対処方法
- Standard の Calico では
network_policy.enabled = true、provider = "CALICO"、addons_config.network_policy_config.disabled = falseを確認してください。 - NetworkPolicy で必要な通信を許可し、実際の許可・拒否結果をテストしてください。
- 既存クラスターの機能を変更する際は、ノードの再作成やワークロードの中断に備えてください。
例
Standard の Calico 設定の抜粋です。実際の 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 で制限します。