ホストのネットワーク名前空間の共有

不要な hostNetwork 共有を削除し、サービスのネットワーク公開範囲を管理してください。

説明

hostNetwork: true を指定すると、Pod はホストのネットワーク名前空間を直接使います。ノードのネットワーク上で動作するため、ポートの競合や公開範囲の拡大が起きる場合があります。

一般的なアプリケーションでは、分離された Pod ネットワークで動作する方が通常は安全です。システムワークロードに明確な必要性がなければ、ホストネットワークの共有は避けてください。

想定される影響

  • ホストネットワークを直接使うことで、Pod の公開範囲が広がる場合があります。
  • ポート競合や予期しないネットワーク動作が発生する場合があります。
  • 侵害時にノードのネットワークリソースが悪用されるリスクが高まります。

対処方法

  • Pod 設定で hostNetwork: false を維持してください。
  • ホストネットワークが必要なワークロードだけを例外として許可してください。
  • 外部公開には Service や Ingress を検討し、必要な認証とアクセス制御を別途適用してください。

例

ネットワーク名前空間設定の抜粋です。通常の Pod ネットワークでも、それだけで他の Pod からのアクセスがすべて遮断されるわけではありません。

変更前

yaml
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  hostNetwork: true
  containers:
    - name: sec-ctx-demo
      image: busybox

変更後

yaml
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  containers:
    - name: sec-ctx-demo
      image: busybox

補足:

  • 変更前: ホストネットワークを使い、Pod とノードネットワークの分離が弱くなります。
  • 変更後: hostNetwork を省略し、デフォルトのネットワーク名前空間分離を維持します。Service の公開範囲とネットワークポリシーは別途管理してください。

参考資料