設定檔適用性:級別 1
通常不要允許容器在
hostIPC
標誌設置為true的情況下運行。在主機的 IPC 命名空間中運行的容器可以使用 IPC 與容器外的進程進行交互。
應至少定義一個不允許容器共享主機 IPC 命名空間的准入控制策略。
如果您需要運行需要
hostIPC
的容器,應該在單獨的策略中定義,並且您應該仔細檢查以確保只有有限的服務帳戶和用戶被授予使用該策略的權限。![]() |
注意預設情況下,對於建立
hostIPC 容器沒有任何限制。 |
影響
除非在特定政策下運行,否則不允許使用
spec.hostIPC: true
定義的 Pods。稽核
列出叢集中每個命名空間使用的策略,確保每個策略都不允許
hostIPC
容器的進入。在 YAML 輸出中,查看 spec 部分下的
hostIPC
設定,以檢查其是否設置為 true
。選項 1
kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.spec.hostIPC == true) | "\(.metadata.namespace)/\(.metadata.name)"'
選項 2
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 安全性政策時,預設會排除
["kube-system"]
命名空間。此命令以 JSON 格式檢索所有命名空間中的所有 pod,然後使用 jq 過濾出那些
hostIPC
標誌設置為 true
的 pod,最後將輸出格式化以顯示每個匹配 pod 的命名空間和名稱。補救
在叢集中每個具有使用者工作負載的命名空間中新增政策,以限制
hostIPC
容器的允許。