|
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. |
Richtlinien verteilen
SUSE Security Admission Controller Richtlinien sind WebAssembly (Wasm) Binärdateien, die vom Admission Controller Policy Server ausgewertet werden.
Der Admission Controller Policy Server lädt Richtlinien aus diesen Quellen:
-
Lokales Dateisystem
-
HTTP(s) Server
-
OCI-konforme Registries:
Admission Controller empfiehlt, Admission Controller Richtlinien über ein reguläres OCI-konformes Registry zu verteilen. Container-Registries sind eine zwingende Voraussetzung für jeden Kubernetes-Cluster. Einen einzigen Ort zu haben, um alle Artefakte, die ein Cluster benötigt, zu speichern und zu sichern, ist vorteilhaft.
Richtlinien in ein OCI-konformes Registry pushen
Das OCI-Imageformat spezifiziert, dass beliebige binäre Blobs in einem regulären OCI-konformen Container-Registry gespeichert werden können.
Das Ziel-OCI-konforme Registry muss Artefakte unterstützen, um erfolgreich eine Admission Controller Richtlinie dorthin zu pushen.
Sie können die kwctl CLI verwenden, um eine
Admission Controller Richtlinie in ein OCI-konformes Registry zu pushen.
Die Richtlinie annotieren
Sie annotieren auch eine Richtlinie mit kwctl. Das Annotieren einer Admission Controller
Richtlinie erfolgt durch das Hinzufügen von Wasm-Custom-Abschnitten zur Richtlinien-Binärdatei. Das bedeutet, dass die Richtlinie ihre eigenen Metadaten paketiert.
Der kwctl annotate Befehl erfordert zwei Eingaben:
-
die Admission Controller Richtlinie, die annotiert werden soll, eine lokale Datei im Dateisystem.
-
die Annotationsdatei, eine Datei, die eine YAML-Beschreibung der Richtlinienmetadaten enthält. Diese Datei befindet sich normalerweise im Stammprojektordner Ihrer Richtlinie.
Zum Beispiel können Sie diese Datei als metadata.yml im aktuellen Verzeichnis speichern:
rules:
- apiGroups: ["*"]
apiVersions: ["*"]
resources: ["*"]
operations: ["*"]
mutating: false
annotations:
io.kubewarden.policy.title: palindromify
io.kubewarden.policy.version: 0.1.0
io.kubewarden.policy.description: Allows you to reject palindrome names in resources and namespace names, or to only accept palindrome names
io.kubewarden.policy.author: Name Surname <name.surname@example.com>
io.kubewarden.policy.url: https://github.com/<org>/palindromify
io.kubewarden.policy.source: https://github.com/<org>/palindromify
io.kubewarden.policy.license: Apache-2.0
io.kubewarden.policy.usage: |
This is markdown text and as such allows you to define a free form usage text.
This policy allows you to reject requests if:
- The name of the resource is a palindrome name.
- The namespace name where this resource is created has a palindrome name.
This policy accepts the following settings:
- `+invert_behavior+`: bool that inverts the policy behavior. If enabled, only palindrome names will be accepted.
Jetzt lassen Sie uns die Richtlinie annotieren:
$ kwctl annotate policy.wasm \
--metadata-path metadata.yml \
--output-path annotated-policy.wasm
Der Annotierungsprozess führt bestimmte Optimierungen an der Richtlinie durch, sodass die annotierte Richtlinie oft kleiner ist als das Original. Das hängt erheblich von der Toolchain ab, die verwendet wurde, um das ursprüngliche Wasm-Objekt zu erzeugen.
Verwenden Sie kwctl inspect, um Ihre Richtlinie zu überprüfen
|
Die Richtlinie pushen
Sie können eine annotierte Richtlinie so pushen:
$ kwctl push annotated-policy.wasm \
<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1
Es wird davon abgeraten, nicht annotierte Richtlinien zu pushen. Der Policy Server verwendet die
Metadaten, die durch Anmerkungen bereitgestellt werden, um eine Richtlinie korrekt auszuführen. Standardmäßig weigert sich kwctl push, eine solche Richtlinie in eine OCI-Registry zu übertragen. Wenn Sie eine unannotierte Richtlinie benötigen, verwenden Sie das --force-Flag von kwctl push.
Sie können eine Richtlinie vom Admission Controller Policy Server oder kwctl als registry://<oci-registry>/kubewarden-policies/palindromify-policy:v0.0.1 referenzieren.