Robocikowo>ROBOCIKOWO
Bezpieczeństwo

Cedar

2023AktywnyOpublikowano: 6 sierpnia 2026Aktualizacja: 6 sierpnia 2026Opublikowany
Otwarty (Apache 2.0) jezyk polityk autoryzacji i silnik ewaluacji stworzony przez AWS. Decyzje dostepu wyraza w modelu principal-action-resource-context (PARC), laczac RBAC, ABAC i ReBAC.
Kluczowa innowacja
Wydzielenie logiki autoryzacji z kodu aplikacji do osobnego, deklaratywnego jezyka polityk z gwarancja zakonczenia obliczen i formalna weryfikacja (model w Lean), co umozliwia szybka i analizowalna kontrole dostepu.
Kategoria
Bezpieczeństwo
Poziom abstrakcji
Building block
Poziom operacji
ToolingOrkiestracjaAplikacja
Zastosowania
Autoryzacja w aplikacjach (kontrola dostepu do zasobow)Kontrola dostepu do dzialan i narzedzi agentow AIAmazon Verified PermissionsAWS Verified AccessFine-grained authorization (RBAC/ABAC/ReBAC)Analiza i walidacja polityk dostepu

Jak działa

Deweloper definiuje schemat (schema) opisujacy typy podmiotow, akcji, zasobow i ich atrybuty, a nastepnie zestaw polityk w jezyku Cedar (np. 'permit(principal in Group::"admins", action, resource);'). W czasie dzialania aplikacja przekazuje do silnika Cedar zadanie autoryzacji zlozone z czterech elementow: principal (kto), action (co), resource (na czym) oraz context (dodatkowe dane, np. czas, adres IP, MFA). Silnik ewaluuje wszystkie pasujace polityki i zwraca decyzje: domyslnie Deny, chyba ze istnieje pasujaca polityka 'permit' i zadna 'forbid'. Poniewaz jezyk nie dopuszcza petli ani nieograniczonej rekurencji, ewaluacja zawsze sie konczy, a walidator moze statycznie sprawdzic polityki wzgledem schematu i analizowac ich rownowaznosc.

Rozwiązany problem

Tradycyjnie logika autoryzacji jest wplatana bezposrednio w kod aplikacji, przez co jest trudna do audytu, testowania, ponownego uzycia i zmiany bez ryzyka bledow bezpieczenstwa. Cedar wydziela te logike do deklaratywnych polityk, ktore mozna analizowac, wersjonowac i weryfikowac niezaleznie od aplikacji.

Komponenty

Polityka (Policy)Definiuje warunki przyznania lub odmowy dostepu.

Pojedyncza regula permit/forbid wyrazona w modelu principal-action-resource-context.

Schemat (Schema)Kontrakt typow dla polityk i walidatora.

Deklaracja typow podmiotow, akcji, zasobow i ich atrybutow, umozliwiajaca statyczna walidacje polityk.

Silnik ewaluacji (Authorization engine)Egzekwuje decyzje dostepu w czasie dzialania.

Komponent oceniajacy zadanie autoryzacji wzgledem zbioru polityk i zwracajacy decyzje Allow/Deny wraz z uzasadnieniem (determining policies).

Walidator / analizatorStatyczna analiza i bezpieczenstwo polityk.

Narzedzie sprawdzajace polityki wzgledem schematu oraz analizujace ich wlasnosci (np. rownowaznosc po refaktoryzacji).

Oficjalna

Implementacja

Pułapki implementacyjne
Domyslna odmowa (default deny)Średnia

Brak pasujacej polityki 'permit' oznacza odmowe. Pominiecie wymaganej polityki cichcem blokuje dostep.

Rozwiązanie:Testuj polityki i uzywaj walidatora oraz analizy pokrycia dla kluczowych scenariuszy.
Rozjazd schematu z danymiŚrednia

Jesli atrybuty przekazywane w zadaniu nie odpowiadaja schematowi, walidacja i decyzje moga byc bledne.

Rozwiązanie:Utrzymuj schemat jako zrodlo prawdy i waliduj dane wejsciowe wzgledem niego.

Ewolucja

Oryginalny paper · 2024 · OOPSLA 2024 (arXiv:2403.04651) · Joseph W. Cutler
Cedar: A New Language for Expressive, Fast, Safe, and Analyzable Authorization
Joseph W. Cutler, Craig Disselkoen, Aaron Eline, Shaobo He, Kyle Headley, Michael Hicks, Kesha Hietala, Eleftherios Ioannidis, John Kastner, Anwar Mamat, Darin McAdams, Matt McCutchen, Neha Rungta, Emina Torlak, Andrew Wells
2023
Udostepnienie Cedar jako open source (Apache 2.0)
Punkt przełomowy

AWS ogloszil i udostepnil jezyk Cedar oraz implementacje w Rust; rownolegle uruchomiono Amazon Verified Permissions.

2024
Publikacja pracy naukowej i model formalny w Lean
Punkt przełomowy

Opublikowano prace opisujaca jezyk oraz formalny model w Lean z dowodami kluczowych wlasnosci (poprawnosc, bezpieczenstwo, analizowalnosc).

Hiperparametry (konfigurowalne osie)

Model kontroli dostepuWysoka

Cedar pozwala wyrazac rozne modele autoryzacji w ramach jednego jezyka.

RBACOparte na rolach/grupach
ABACOparte na atrybutach principala/zasobu/kontekstu
ReBACOparte na relacjach (hierarchie in)

Złożoność obliczeniowa

Złożoność czasowa: O(P) — liniowa wzgledem liczby i rozmiaru polityk.

Wymagania sprzętowe

Podstawowe

Cedar to silnik ewaluacji polityk dzialajacy na zwyklym CPU; nie wymaga akceleratorow.