|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.34-dev. |
Erlauben von Bewertungen im Namespace des Admission Controllers
Standardmäßig erlaubt der Admission Controller nicht, dass Richtlinien Ressourcen in seinem eigenen Namespace evaluieren. Dies verhindert Fehlkonfigurationen, die die Admission Controller-Installation beschädigen könnten.
Diese Sicherheitsmaßnahme wird in zwei Schichten implementiert. Die erste Schicht wird durch das --always-accept-admission-reviews-on-deployments-namespace CLI-Flag gesteuert.
Dieses Flag, das standardmäßig in den Helm-Charts aktiviert ist, sorgt dafür, dass der Controller die KUBEWARDEN_ALWAYS_ACCEPT_ADMISSION_REVIEWS_ON_NAMESPACE Umgebungsvariable in den PolicyServer-Implementierungen konfiguriert. Diese Variable teilt dem Policy-Server mit, dass er immer Zulassungsprüfungen aus dem im Variablen definierten Namespace akzeptieren soll. Die zweite Schicht ist der Admission Controller selbst, der standardmäßig einen Namespace-Selektor zu clusterweiten Richtlinien hinzufügt, um den Namespace zu überspringen, in dem der Controller läuft.
In einigen Szenarien möchten Clusteradministratoren jedoch, dass Richtlinien Ressourcen in diesem Namespace evaluieren. Diese Seite erklärt, wie man dies erreicht, indem man beide Schutzschichten deaktiviert.
Entfernen Sie die Umgebungsvariable zum Schutz des PolicyServers
Der erste Schritt besteht darin, den Controller so zu konfigurieren, dass er die KUBEWARDEN_ALWAYS_ACCEPT_ADMISSION_REVIEWS_ON_NAMESPACE Umgebungsvariable in den PolicyServer-Bereitstellungen nicht setzt.
Um dies zu tun, führen Sie ein Upgrade Ihrer Admission Controller Installation durch und setzen Sie den alwaysAcceptAdmissionReviewsOnDeploymentsNamespace-Wert des kubewarden-controller-Helm-Charts auf false:
helm upgrade -n kubewarden
--set "alwaysAcceptAdmissionReviewsOnDeploymentsNamespace=false"
kubewarden-controller kubewarden/kubewarden-controller
Diese Änderung ermöglicht es Policy-Servern, Ressourcen aus jedem Namespace evaluieren. Sobald dies erledigt ist, können Richtlinien so konfiguriert werden, dass sie Zulassungsprüfungen aus dem Admission Controller Namespace evaluieren.
Richten Sie Richtlinien ein, um Ressourcen im Namespace des Admission Controllers evaluieren.
Um einer Richtlinie zu erlauben, Ressourcen zu evaluieren, die im Namespace des Admission Controllers erstellt wurden, implementieren Sie clusterweite Richtlinien mit dem allowInsideAdmissionControllerNamespace Feld in der Spezifikation, das auf true gesetzt ist:
|
Und die namespaced Richtlinien?
Dieses Spezifikationsfeld ist nur in clusterweiten Richtlinien verfügbar. Da namespaced Richtlinien Ressourcen im selben Namespace evaluieren, in dem sie implementiert werden, macht es keinen Sinn, dieses Feld zu ihren CRDs hinzuzufügen. Darüber hinaus sollte der Namespace des Admission Controllers von Clusterbetreibern verwaltet werden, die entscheiden können, ob sie dort eine Richtlinie implementieren. |
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
annotations:
io.kubewarden.policy.category: PSP
io.kubewarden.policy.severity: medium
name: pod-privileged-policy
spec:
module: registry://ghcr.io/kubewarden/policies/pod-privileged:v1.0.10
settings: {}
rules:
- apiGroups:
- ""
apiVersions:
- v1
resources:
- pods
operations:
- CREATE
mutating: false
allowInsideAdmissionControllerNamespace: true
Diese Konfigurationsoption, die standardmäßig false ist, bewirkt, dass der Controller das Hinzufügen des Namespace-Selectors überspringt, der den Namespace des Admission Controllers ausschließt, sodass die Richtlinie Ressourcen aus allen Namespaces, einschließlich dieses Namespaces, evaluieren kann.
|
Was ist mit meinen benutzerdefinierten Namespace-Selektoren?
Die CRDs der Richtlinien erlauben es den Benutzern ebenfalls, ihre eigenen Namespace-Selektoren zu definieren. Diese Selektoren werden nicht geändert. Das bedeutet, dass wenn ein Benutzer einen Selektor definiert, der den Admission Controller Namespace überspringt, die Richtlinie diesen Namespace wie erwartet ignoriert. |