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.
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.
Pojedyncza regula permit/forbid wyrazona w modelu principal-action-resource-context.
Deklaracja typow podmiotow, akcji, zasobow i ich atrybutow, umozliwiajaca statyczna walidacje polityk.
Komponent oceniajacy zadanie autoryzacji wzgledem zbioru polityk i zwracajacy decyzje Allow/Deny wraz z uzasadnieniem (determining policies).
Narzedzie sprawdzajace polityki wzgledem schematu oraz analizujace ich wlasnosci (np. rownowaznosc po refaktoryzacji).
Oficjalna
Brak pasujacej polityki 'permit' oznacza odmowe. Pominiecie wymaganej polityki cichcem blokuje dostep.
Jesli atrybuty przekazywane w zadaniu nie odpowiadaja schematowi, walidacja i decyzje moga byc bledne.
AWS ogloszil i udostepnil jezyk Cedar oraz implementacje w Rust; rownolegle uruchomiono Amazon Verified Permissions.
Opublikowano prace opisujaca jezyk oraz formalny model w Lean z dowodami kluczowych wlasnosci (poprawnosc, bezpieczenstwo, analizowalnosc).
Złożoność czasowa: O(P) — liniowa wzgledem liczby i rozmiaru polityk.
Cedar pozwala wyrazac rozne modele autoryzacji w ramach jednego jezyka.
Cedar to silnik ewaluacji polityk dzialajacy na zwyklym CPU; nie wymaga akceleratorow.