← Wszystkie aktualności
ARTYKUŁ
22 października 2026 Zaktualizowano 24 września 2026 4 min czytania

Open Policy Agent dla MSP: admission, autoryzacja API i bramki CI

Praktyczny przewodnik po Open Policy Agent do autoryzacji API i kontroli CI, Gatekeeper do admission w Kubernetes oraz niedawnej poprawce parsera Rego.

W tym artykule
  1. Gdzie OPA sprawdza się poza Kubernetesem
  2. OPA, Gatekeeper i Conftest to trzy różne rzeczy
  3. Gatekeeper: egzekwowanie polityk u wejścia do Kubernetesa
  4. Wrzesień 2026: błąd parsera naprawiony w OPA 1.20.2
  5. Praktyczne punkty startowe
  6. Co zrobić

Open Policy Agent (OPA) jest znany przede wszystkim jako silnik stojący za kontrolą admission w Kubernetesie, ale sam podstawowy projekt nie ma nic wspólnego wyłącznie z Kubernetesem. Ten przewodnik jest dla MSP i zespołów platformowych, które chcą używać OPA jako uniwersalnego silnika polityk — do autoryzacji API, kontroli CI i admission w Kubernetesie — bez mylenia tego, co robi które narzędzie, a także pokazuje, co zmieniła niedawna poprawka parsera dla tych, którzy korzystają już z nowszej składni Rego w OPA.

Rzędy jasnych wież serwerowych z niebieskimi lampkami stanu wypełniają serwerownię centrum danych
Fot.: Faber (CC BY-SA 2.0), Wikimedia Commons.

Gdzie OPA sprawdza się poza Kubernetesem

Podstawowy projekt — open-policy-agent/opa na GitHubie, z około 12,3 tysiąca gwiazdek i 1,7 tysiąca forków — to silnik polityk, który ocenia żądanie względem spisanej polityki zamiast logiki aplikacji zaszytej na stałe w kodzie. MSP i zespoły produktowe używają go wszędzie tam, gdzie trzeba podjąć taką decyzję, nie tylko na brzegu klastra Kubernetes.

Ten sam język polityk Rego, który uruchamia, działa równie dobrze na bramie API lub wewnątrz sidecara usługi, oceniając, czy żądanie jest autoryzowane, zanim dotrze do kodu aplikacji. Te same pakiety polityk można ponownie wykorzystać w pipeline'ach CI, aby wychwytywać naruszenia — zabronioną zależność, źle skonfigurowany zasób czy niezatwierdzony region — zanim zmiana zostanie wdrożona, a nie po fakcie.

OPA, Gatekeeper i Conftest to trzy różne rzeczy

Kontrola admission w Kubernetesie za pomocą Gatekeepera to integracja zbudowana na OPA, a nie sam OPA, a Conftest to osobne narzędzie wiersza poleceń do testowania ustrukturyzowanych plików konfiguracyjnych względem polityk Rego. Łączenie tych trzech elementów w jedną opowieść o OPA w materiałach dla klientów zawyża to, co każde narzędzie robi samodzielnie: każde ma własny model wdrożenia i własne tryby awarii.

Gatekeeper: egzekwowanie polityk u wejścia do Kubernetesa

OPA Gatekeeper, utrzymywany w organizacji Open Policy Agent na GitHubie z około 4,3 tysiąca gwiazdek, to kontroler admission dla Kubernetesa. Przechwytuje żądania API za pomocą walidującego webhooka admission i sprawdza je względem polityk Rego w momencie zgłoszenia workloadu, a nie po tym, jak już działa. Dla MSP zarządzającego wieloma klastrami klientów regułę można napisać raz i egzekwować ją spójnie: wymagać, aby obrazy kontenerów pochodziły z zatwierdzonego rejestru lub miały zweryfikowaną atestację podpisu, odrzucać kontenery żądające trybu uprzywilejowanego lub nieograniczonych montowań hostPath, albo ograniczać typy workloadów, jakie może przyjąć dana przestrzeń nazw.

Gatekeeper to integracja specyficzna dla Kubernetesa, a nie zamiennik podstawowego silnika, którego MSP używają też do autoryzacji API i kontroli CI poza Kubernetesem; oba są komplementarne — Gatekeeper obsługuje ścieżkę admission, podczas gdy podstawowy silnik podejmuje decyzje dotyczące polityk w innych miejscach stosu. Nie zastępuje też RBAC, polityki sieciowej ani higieny sekretów: dodaje warstwę nad nimi, a nie w ich miejsce.

Wrzesień 2026: błąd parsera naprawiony w OPA 1.20.2

OPA 1.20.2, wydana na początku września 2026, naprawia błąd parsera wprowadzony dwie wersje wcześniej w 1.20.0, która dodała nowe słowa kluczowe Rego and i or do łączenia warunków w pojedynczym ciele reguły. Gdy polityka importowała te słowa kluczowe, bezpośrednio lub przez import future.keywords, parser OPA najpierw odczytywał instrukcję zaczynającą się od nawiasu klamrowego jako ciało operandu, a następnie odczytywał ją ponownie jako term, na przykład comprehension, jeśli nie następowało po niej ani and, ani or.

Regresja sprawiała, że błędy zarejestrowane podczas tego pierwszego, porzuconego odczytu pozostawały w pamięci podręcznej i były błędnie zgłaszane przy drugim, udanym odczycie, przez co parser odrzucał polityki, które w rzeczywistości były poprawne. Polityki, które nie importują and/or, nigdy nie były dotknięte tym problemem, a jest to wąska poprawka błędu, a nie ostrzeżenie bezpieczeństwa; towarzyszący projekt opa-envoy-plugin wydał odpowiadające mu wydanie v1.20.2-envoy, więc zespoły korzystające z tego pluginu powinny sprawdzić, czy otrzymały tę samą aktualizację wersji.

MSP, które chcą zewnętrznej weryfikacji tych kontroli w ramach programu zgodności z NIS2, DORA lub RODO, mogą skorzystać z dedykowanego wsparcia: usługi cyberbezpieczeństwa Altovar obejmują testy penetracyjne, ocenę podatności, reagowanie na incydenty i pracę nad zgodnością w ramach tych samych regulacji.

Praktyczne punkty startowe

  • Autoryzacja API: oceń polityki Rego na poziomie bramy lub sidecara dla żądań, które wymagają reguł per tenant lub per rola wykraczających poza wbudowaną autoryzację frameworku.
  • Bramki polityk w CI: uruchamiaj te same reguły Rego względem infrastructure-as-code lub manifestów w kroku pipeline'u, przerywając build w razie naruszeń zamiast polegać na ręcznej weryfikacji.
  • Admission w Kubernetesie: uruchamiaj polityki Gatekeepera w trybie dry-run lub warn, dokumentuj wyjątki dla istniejących workloadów i ograniczaj ograniczenia do konkretnych przestrzeni nazw, zanim je rozszerzysz.
  • Współdzielone biblioteki polityk: napisz reguły raz i stosuj je w admission, autoryzacji API i CI, zamiast trzykrotnie odtwarzać tę samą logikę.

Co zrobić

  1. Zmapuj, gdzie obecnie zapadają decyzje dotyczące polityk w twoim stosie — admission, brama, CI — i oznacz te, które wciąż są zaszyte na stałe zamiast oparte na politykach.
  2. Jeśli używasz Gatekeepera, wdrażaj nowe ograniczenia w trybie dry-run lub warn i dokumentuj wyjątki, zanim przełączysz je na enforce.
  3. Utrzymuj te trzy narzędzia rozdzielone we własnej dokumentacji: silnik OPA, Gatekeeper do admission i Conftest do CI oraz testów konfiguracji.
  4. Jeśli twoje polityki Rego importują słowa kluczowe and/or, sprawdź, czy działasz na wersji 1.20.2 lub nowszej, zanim uznasz odrzucenie za błąd w pisaniu polityki.
  5. Sprawdź, czy zależne narzędzia, takie jak plugin Envoy lub sidecary, otrzymały tę samą aktualizację wersji OPA.
  6. Łącz polityki admission i autoryzacji z RBAC, polityką sieciową i higieną sekretów, zamiast traktować je jako pełny zamiennik.

Źródła: GitHub — open-policy-agent/opa, GitHub — open-policy-agent/opa releases, GitHub — open-policy-agent/gatekeeper.