RBAC (Role-Based Access Control), czyli kontrola dostępu oparta na rolach, to model uprawnień, w którym nie przypisujesz praw bezpośrednio konkretnym osobom, tylko rolom. Użytkownik dostaje rolę (np. developer, admin, viewer), a do roli podpięty jest zestaw uprawnień: co wolno czytać, edytować, usuwać. Zmieniasz komuś rolę, a nie grzebiesz w setce pojedynczych checkboxów.
Sens jest prosty: oddzielasz kto od co może. Bez RBAC, kiedy do firmy dochodzi dziesiąty backend, ktoś ręcznie klika mu te same dwadzieścia uprawnień co poprzednim dziewięciu — i prędzej czy później jednemu zapomni odebrać dostęp do produkcji. Z RBAC tworzysz rolę raz, opisujesz w niej politykę i przypisujesz ją ludziom. Onboarding to jedna operacja, offboarding też. To także audyt: na pytanie „kto ma dostęp do bazy klientów?” odpowiadasz listą ról, a nie przeszukiwaniem każdego konta z osobna.
Jak to wygląda w praktyce
Najczęściej spotkasz RBAC w Kubernetes. Tam definiujesz obiekt Role (zestaw uprawnień w danym namespace), a potem RoleBinding, który łączy tę rolę z użytkownikiem albo ServiceAccount. Przykładowo rola pozwalająca tylko podglądać pody: w Role ustawiasz verbs: ["get", "list", "watch"] na zasobie pods — i tyle, nikt z tą rolą nic nie skasuje. Sprawdzisz to komendą kubectl auth can-i delete pods --as=jan, która zwróci yes albo no. Podobny model siedzi w AWS IAM (role i policy), w bazach SQL (GRANT na rolę) czy w panelu uprawnień GitLaba.
Na co uważać
Pierwszy klasyk to eksplozja ról: zamiast kilkunastu sensownych ról robisz po jednej na każdego pracownika i wracasz do punktu wyjścia, tylko gorzej. Drugi to mylenie RBAC z ABAC (Attribute-Based Access Control) — tam decyzja zależy od atrybutów (dział, pora dnia, lokalizacja), a nie od sztywnej roli. RBAC jest prostszy, ABAC bardziej elastyczny i często łączy się je razem. Trzymaj się też least privilege: rola ma dawać minimum potrzebne do pracy, a nie admin „na wszelki wypadek”. I pamiętaj — RBAC mówi, co wolno zrobić po zalogowaniu (autoryzacja), ale nie sprawdza, kim jesteś; tym zajmuje się uwierzytelnianie.
Pojęcia powiązane: ABAC, least privilege, IAM, uwierzytelnianie vs. autoryzacja, ServiceAccount, policy, GRANT/REVOKE.