|
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. |
Erstellen und führen Sie eine OPA-Richtlinie für Admission Controller aus.
Im vorherigen Abschnitt haben Sie Ihre Rego-Richtlinie geschrieben. Die Struktur sieht wie folgt aus:
.
├── data
│ ├── default-ns.json
│ └── other-ns.json
├── policy.rego
└── request.rego
1 directory, 4 files
Erstellen
Zum Erstellen:
$ opa build -t wasm -e policy/main policy.rego request.rego
Dies erstellt die Rego-Richtlinie mit:
-
target:wasm. Sie möchten die Richtlinie für daswasmZiel erstellen. -
entrypoint:policy/main. Der Einstiegspunkt ist diemainRegel innerhalb despolicyPakets. -
policy.rego: Erstellen und fügen Sie diepolicy.regoDatei ein. -
request.rego: Erstellen und fügen Sie dierequest.regoDatei ein.
Nachdem der Build abgeschlossen ist, hat opa build eine bundle.tar.gz Datei generiert.
Sie können sie extrahieren:
$ tar -xf bundle.tar.gz /policy.wasm
Jetzt sieht der Baum wie folgt aus:
.
├── bundle.tar.gz
├── data
│ ├── default-ns.json
│ └── other-ns.json
├── policy.rego
├── policy.wasm
└── request.rego
1 directory, 6 file
Sie haben Ihre policy.wasm Datei:
$ file policy.wasm
policy.wasm: WebAssembly (wasm) binary module version 0x1 (MVP)
Jetzt führen Sie sie aus.
Führen Sie folgendes Kommando aus:
Verwenden Sie kwctl, um die Richtlinie auszuführen:
$ kwctl run -e opa --request-path data/other-ns.json policy.wasm | jq
{
"uid": "1299d386-525b-4032-98ae-1949f69f9cfc",
"allowed": true
}
Diese Anfrage wird von der Richtlinie akzeptiert, da dies die Anfrage ist, die auf den other Namespace verweist.
-
execution-mode:opa. Rego-Richtlinien können auf Open Policy Agent oder Gatekeeper abzielen. Sie müssenkwctlmitteilen, welche Art von Richtlinie Sie ausführen. -
request-path: Der Standort der aufgezeichneten Anfrage, an diekwctldie Richtlinie zur Bewertung sendet.
Versuchen Sie nun, die Anfrage zu bewerten, die den Pod im default Namespace erstellt:
$ kwctl run -e opa --request-path data/default-ns.json policy.wasm | jq
{
"uid": "1299d386-525b-4032-98ae-1949f69f9cfc",
"allowed": false,
"status": {
"message": "it is forbidden to use the default namespace"
}
}
Die Richtlinie lehnt die Anfrage ab und gibt einen Grund an den API-Server zurück, der an den Benutzer oder API-Konsumenten weitergeleitet wird.