説明
ネットワークポリシーは名前空間や 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 で制限する必要があります。