0Pricing
DevOps Bootcamp · Lekcja

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.io

ClusterRoles 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

  1. Kontrola dostępu oparta na rolach (RBAC)
  2. Network Policies zapewniające izolację
  3. Standardy bezpieczeństwa Podów
  4. Konta usług i tożsamość obciążeń
← Powrót do DevOps Bootcamp