Kontrola dostępu oparta na rolach (RBAC)
Zarządzaj uprawnieniami użytkowników i kont usług w klastrze za pomocą ról RBAC i powiązań ról.
Kontrola dostępu oparta na rolach (RBAC) to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Czym jest RBAC w Kubernetesie?
W tej lekcji poznają Państwo kontrolę dostępu opartą na rolach (RBAC) — kluczową funkcję bezpieczeństwa w Kubernetesie.
RBAC pomaga zarządzać tym, kto i jakie działania może wykonywać w klastrze. Działa jak ochroniarz pilnujący zasobów Kubernetes, dzięki czemu tylko uprawnieni użytkownicy i aplikacje mogą wykonywać określone operacje.
Dlaczego RBAC jest niezbędny
Bez RBAC każdy, kto ma dostęp do klastra, mógłby potencjalnie wykonać dowolną operację, co prowadziłoby do zagrożeń bezpieczeństwa lub przypadkowych uszkodzeń.
- Bezpieczeństwo: zapobiega nieautoryzowanemu dostępowi i operacjom.
- Zgodność: pomaga spełnić wymogi regulacyjne dotyczące kontroli dostępu.
- Minimalne uprawnienia: gwarantuje, że użytkownicy i aplikacje mają tylko uprawnienia, których bezwzględnie potrzebują.
Najważniejsze pojęcia RBAC
RBAC w Kubernetesie opiera się na kilku podstawowych elementach:
- Podmioty: „kto” (użytkownicy, konta usług, grupy).
- Role: „co” (zestaw uprawnień).
- RoleBindings: „jak” (łączą Role z podmiotem).
- ClusterRoles i ClusterRoleBindings: odpowiedniki Role i RoleBindings obowiązujące w całym klastrze.
Podmioty: użytkownicy i konta usług
Kubernetes musi wiedzieć, kto żąda wykonania operacji. Takie podmioty nazywamy Subjects:
- Użytkownicy: zazwyczaj administratorzy lub programiści. Kubernetes nie zarządza użytkownikami bezpośrednio — korzysta z zewnętrznego uwierzytelniania.
- Konta usług: obiekty Kubernetes używane przez aplikacje lub procesy działające w podach. Są niezbędne do komunikacji poda z serwerem API.
Definiowanie uprawnień za pomocą ról
Role definiuje zestaw uprawnień w określonej przestrzeni nazw. Określa, jakie działania (czasowniki) można wykonywać na danych zasobach.
Przykładowo Role może zezwalać na pobieranie i wyświetlanie listy podów w przestrzeni nazw „default”.
Przykład Role: Pod Reader
Oto definicja YAML obiektu Role o nazwie pod-reader. Ta Role przyznaje uprawnienia do operacji „get”, „list” i „watch” (monitorowania) podów.
Proszę zwrócić uwagę na apiGroups: [""], które odwołuje się do podstawowej grupy API Kubernetes.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: pod-reader
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]Przyznawanie uprawnień za pomocą RoleBindings
RoleBinding łączy określoną Role z jednym podmiotem Subjects lub większą ich liczbą (użytkownikami, kontami usług lub grupami) w określonej przestrzeni nazw.
To połączenie oznacza: „ten użytkownik lub aplikacja może wykonywać w tej przestrzeni nazw operacje dozwolone przez tę Role”.
Przykład RoleBinding: przyznawanie dostępu
Ten RoleBinding łączy naszą Role pod-reader z kontem usługi o nazwie my-app-sa w przestrzeni nazw default. Od tej chwili my-app-sa może odczytywać pody.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: my-app-sa # The service account getting permissions
namespace: default
roleRef:
kind: Role
name: pod-reader # The Role being granted
apiGroup: rbac.authorization.k8s.ioClusterRoles i ClusterRoleBindings
Czasami potrzebne są uprawnienia obowiązujące w całym klastrze, a nie tylko w jednej przestrzeni nazw. Właśnie do tego służą ClusterRoles i ClusterRoleBindings.
- ClusterRole: definiuje uprawnienia do zasobów o zasięgu klastra (takich jak węzły i woluminy trwałe) lub do działań we wszystkich przestrzeniach nazw (np. „list all pods”).
- ClusterRoleBinding: łączy ClusterRole z podmiotami, przyznając uprawnienia obowiązujące w całym klastrze.
Szybkie sprawdzenie RBAC
Programista musi wdrażać nowe aplikacje wyłącznie w przestrzeni nazw dev. Których dwóch zasobów RBAC Kubernetes należy przede wszystkim użyć, aby przyznać mu to konkretne uprawnienie?
Podsumowanie: podstawy RBAC
Świetna praca! Poznali Państwo podstawy RBAC w Kubernetesie:
- RBAC kontroluje, kto może korzystać z zasobów klastra.
- Role definiują uprawnienia w obrębie przestrzeni nazw.
- RoleBindings łączą Role z podmiotami (użytkownikami i kontami usług).
- ClusterRoles i ClusterRoleBindings obsługują uprawnienia obowiązujące w całym klastrze.
Opanowanie RBAC ma kluczowe znaczenie dla zabezpieczenia środowiska Kubernetes!
Często zadawane pytania
Czy lekcja „Kontrola dostępu oparta na rolach (RBAC)” jest bezpłatna?
Tak — pełny tekst „Kontrola dostępu oparta na rolach (RBAC)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Kontrola dostępu oparta na rolach (RBAC)”?
Zarządzaj uprawnieniami użytkowników i kont usług w klastrze za pomocą ról RBAC i powiązań ról. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Kontrola dostępu oparta na rolach (RBAC)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Kontrola dostępu oparta na rolach (RBAC)
- Network Policies zapewniające izolację
- Standardy bezpieczeństwa Podów
- Konta usług i tożsamość obciążeń