Open Policy Agent
SDLC / Policy-as-Code
Uniwersalny silnik polityk — zasady jako testowalny kod (Rego).
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).