GKE の NetworkPolicy 適用設定の確認

ネットワークポリシーの適用機能と、許可する通信のポリシーを併せて設定してください。

説明

ネットワークポリシーが適用されていないと、同じクラスター内のワークロードが必要以上に通信できる場合があります。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 で制限します。

参考資料