← Katalog
E I A C

Open Policy Agent

SDLC / Policy-as-Code

Uniwersalny silnik polityk — zasady jako testowalny kod (Rego).

★ 10 000 Apache-2.0 #policy-as-code#rego#security#cncf

Open Policy Agent (OPA) to uniwersalny silnik polityk, który oddziela decyzje autoryzacyjne i zgodności od kodu aplikacji. Reguły piszesz w języku Rego, a OPA odpowiada na pytania „czy to działanie jest dozwolone?” na podstawie danych wejściowych. Tę samą politykę można egzekwować w pipeline CI, w Kubernetes (Gatekeeper), w API gateway czy w samej aplikacji.

Kiedy używać

  • Chcesz spójnie egzekwować zasady bezpieczeństwa/zgodności w wielu miejscach.
  • Polityka ma być testowalna, wersjonowana i recenzowana jak kod.
  • Bramkujesz PR-y, manifesty Kubernetes albo plan Terraform.

Przykład użycia

package eiac.authz

default allow := false

allow if {
  input.method == "GET"
  startswith(input.path, "/public/")
}
opa eval -d policy.rego -i input.json "data.eiac.authz.allow"
opa test .   # testy jednostkowe polityk

Warto wiedzieć

  • Z Conftest sprawdzisz pliki konfiguracyjne (YAML/JSON/HCL) w CI.
  • W Kubernetes popularny przez OPA Gatekeeper (admission control).