Ansichten:
Profilanwendbarkeit: Stufe 1
Erlauben Sie nicht generell, dass Container mit dem hostIPC-Flag auf "true" gesetzt ausgeführt werden.
Ein Container, der im IPC-Namespace des Hosts läuft, kann IPC verwenden, um mit Prozessen außerhalb des Containers zu interagieren.
Es sollte mindestens eine Zugriffssteuerungsrichtlinie definiert sein, die es Containern nicht erlaubt, den Host-IPC-Namespace zu teilen.
Wenn Sie Container ausführen müssen, die hostIPC erfordern, sollte dies in einer separaten Richtlinie definiert werden. Sie sollten sorgfältig überprüfen, dass nur begrenzte Dienstkonten und Benutzer die Berechtigung erhalten, diese Richtlinie zu verwenden.
Hinweis
Hinweis
Standardmäßig gibt es keine Einschränkungen bei der Erstellung von hostIPC-Containern.

Auswirkung

Pods, die mit spec.hostIPC: true definiert sind, werden nicht zugelassen, es sei denn, sie werden unter einer spezifischen Richtlinie ausgeführt.

Prüfung

Listen Sie die Richtlinien auf, die für jeden Namespace im Cluster verwendet werden, und stellen Sie sicher, dass jede Richtlinie die Zulassung von hostIPC-Containern untersagt.
Im YAML-Ausgabe suchen Sie im Abschnitt spec nach der Einstellung hostIPC, um zu überprüfen, ob sie auf true gesetzt ist.
Option 1
kubectl get pods --all-namespaces -o json | jq -r '.items[] |
select(.spec.hostIPC == true) |
"\(.metadata.namespace)/\(.metadata.name)"'
Option 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}'
Beim Erstellen einer Pod-Sicherheitsrichtlinie sind ["kube-system"]-Namespaces standardmäßig ausgeschlossen.
Dieser Befehl ruft alle Pods in allen Namespaces im JSON-Format ab, verwendet dann jq, um diejenigen herauszufiltern, die das hostIPC-Flag auf true gesetzt haben, und formatiert schließlich die Ausgabe, um den Namespace und den Namen jedes übereinstimmenden Pods anzuzeigen.

Wiederherstellung

Fügen Sie Richtlinien zu jedem Namespace im Cluster hinzu, der Benutzer-Workloads enthält, um die Zulassung von hostIPC-Containern zu beschränken.