|
Dies ist eine unveröffentlichte Dokumentation für Admission Controller 1.37-dev. |
Roh-Richtlinien schreiben
Roh-Richtlinien sind Richtlinien, die beliebige JSON-Dokumente auswerten können. Für weitere Informationen zu Roh-Richtlinien verweisen Sie bitte auf die Roh-Richtlinien Seite.
Beispiel
Die folgenden Beispiele sollten Ihnen vertraut sein, wenn Sie die Validierung Seite dieses Tutorials abgeschlossen haben.
|
Denken Sie daran, die Richtlinie als |
Validation
Sie werden eine Richtlinie schreiben, die eine Anfrage im folgenden Format akzeptiert:
{
"request": {
"user": "alice",
"action": "read",
"resource": "products"
}
}
Es wird validiert, dass nur der admin Benutzer Ressourcen löschen kann.
Beginnen Sie damit, eine Richtlinie mit der OPA-Richtlinienvorlage zu erstellen.
Zuerst müssen Sie die policy.rego Datei so ändern, dass sie wie folgt aussieht:
package validation
deny[msg] {
input.request.action == "delete"
input.request.user != "admin"
msg := sprintf("user %v is not allowed to delete resources", [input.request.user])
}
Das utility/policy.rego Modul muss geändert werden, um Kubernetes-spezifischen Code zu entfernen:
package policy
import data.validation
main = {
"response": response,
}
# OPA policy responses need the uid field to be set.
# If the request doesn't contain a uid, set it to an empty string.
default uid = ""
uid = input.request.uid
response = {
"uid": uid,
"allowed": false,
"status": {"message": reason},
} {
reason = concat(", ", validation.deny)
reason != ""
} else = {
"uid": uid,
"allowed": true,
} {
true
}