ビュー:
プロファイル適用性: レベル1
通常、hostIPCフラグがtrueに設定されたコンテナの実行を許可しません。
ホストのIPCネームスペースで実行されているコンテナは、コンテナ外のプロセスと相互作用するためにIPCを使用できます。
コンテナがホストIPCネームスペースを共有することを許可しない入場制御ポリシーが少なくとも1つ定義されている必要があります。
コンテナをhostIPCを必要とする場合、別のポリシーで定義する必要があります。そして、そのポリシーを使用する権限が限られたサービスアカウントとユーザにのみ与えられていることを慎重に確認する必要があります。
注意
注意
デフォルトでは、hostIPCコンテナの作成に制限はありません。

影響

spec.hostIPC: trueで定義されたポッドは、特定のポリシーの下で実行されない限り許可されません。

監査

クラスター内の各ネームスペースで使用されているポリシーを一覧表示し、各ポリシーがhostIPCコンテナの許可を禁止していることを確認してください。
YAML出力で、specセクションのhostIPC設定を確認し、それがtrueに設定されているかどうかを確認してください。
kubectl get pods --all-namespaces -o json | jq -r '.items[] |
select(.spec.hostIPC == true) |
"\(.metadata.namespace)/\(.metadata.name)"'
または:
kubectl get pods --all-namespaces -o json | jq '.items[] |
select(.metadata.namespace != "kube-system" and .spec.hostIPC == true)
| {pod: .metadata.name, namespace: .metadata.namespace, container:
.spec.containers[].name}'
Pod Security Policyを作成する際、["kube-system"]ネームスペースはデフォルトで除外されます。
このコマンドは、すべてのネームスペースにわたるすべてのポッドをJSON形式で取得し、次にjqを使用してhostIPCフラグがtrueに設定されているものをフィルタリングし、最後に一致するポッドのネームスペースと名前を表示するように出力をフォーマットします。

修復

ユーザのワークロードがあるクラスター内の各ネームスペースにポリシーを追加して、hostIPCコンテナのアドミッションを制限します。