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 Ausführen einer Gatekeeper-Richtlinie

Sie können die Richtlinie genau wie eine Rego-Richtlinie, die auf den Open Policy Agent abzielt, erstellen und ausführen. Die Struktur Ihres Projekts ist:

.
├── data
│   ├── default-ns.json
│   └── other-ns.json
└── policy.rego

1 directory, 3 files

Erstellen

Erstellen Sie die Richtlinie, indem Sie den opa Befehl ausführen:

$ opa build -t wasm -e policy/violation policy.rego

Dies erstellt die Rego-Richtlinie mit:

  • target: wasm. Wir möchten die Richtlinie für das wasm Ziel erstellen.

  • entrypoint: policy/violation. Der Einstiegspunkt ist die violation Regel innerhalb des policy Pakets.

  • policy.rego: erstellen und die policy.rego Datei einfügen.

Der vorherige Befehl generiert eine bundle.tar.gz Datei. Sie können das Wasm-Modul daraus extrahieren:

$ tar -xf bundle.tar.gz /policy.wasm

Der Projektbaum sieht wie folgt aus:

.
├── bundle.tar.gz
├── data
│   ├── default-ns.json
│   └── other-ns.json
├── policy.rego
└── policy.wasm

1 directory, 5 files

Sie können jetzt Ihre Richtlinie ausführen.

Führen Sie folgendes Kommando aus:

Verwenden Sie kwctl, um Ihre Richtlinie wie folgt auszuführen:

$ kwctl run -e gatekeeper --request-path data/other-ns.json policy.wasm | jq
{
  "uid": "1299d386-525b-4032-98ae-1949f69f9cfc",
  "allowed": true
}

Dies ist Ihre Ressource, die im Namespace other erstellt wurde, sie wird akzeptiert, wie erwartet.

Jetzt können Sie eine Anfrage stellen, die von der Richtlinie abgelehnt wird:

$ kwctl run -e gatekeeper --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"
  }
}

Sie können sehen, dass Ihre Gatekeeper-Richtlinie diese Ressource abgelehnt hat.