説明
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 の公開範囲とネットワークポリシーは別途管理してください。