GKE のネットワークポリシー対応設定の確認

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

説明

ネットワークポリシーは名前空間や Pod セレクターを使って許可する通信を定義し、侵害されたワークロードからの被害拡大を抑えます。適用機能と実際の Kubernetes NetworkPolicy リソースの両方が必要です。

Standard の Calico では network_policy とアドオン設定を確認する必要があります。Autopilot と Dataplane V2 は適用機能を組み込んでいるため、Calico 設定を追加するのではなく実際のポリシーを確認してください。

想定される影響

  • 不要な Pod 間通信をネットワーク層で制限できない場合があります。
  • 侵害されたワークロードからの横展開や内部サービス探索のリスクが高まるおそれがあります。

対処方法

  • Calico を使う Standard では network_policy.enabled = true、provider = "CALICO" とネットワークポリシーアドオンの有効化を併せて確認してください。
  • Kubernetes NetworkPolicy で必要な通信を許可し、デフォルト拒否を段階的に適用してください。
  • 既存クラスターの変更ではノードが再作成される場合があるため、可用性を確保し、実際の許可・拒否結果をテストしてください。

例

Standard の Calico 設定の抜粋です。ノード数、プロジェクト、ネットワーク、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 で制限する必要があります。

参考資料