← До фільтрів та технологій

← До списку лабораторних по Kubernetes

Kubernetes Лабораторна 38: Порівняння Role і ClusterRole

Технологія: Kubernetes

Номер лабораторної: 38 · Рівень: middle

Тема: Role проти ClusterRole у RBAC

Повний опис / сценарій лабораторної:

Мета: навчитися розрізняти role і clusterrole та правильно їх застосовувати.



Крок 1. Створити namespace rbac-scope.

Команда: kubectl create namespace rbac-scope

Пояснення: тут будемо тестувати namespace scoped права.



Крок 2. Створити service account ns-user у цьому namespace.

Команда: kubectl create serviceaccount ns-user -n rbac-scope

Пояснення: цей користувач матиме обмежені права.



Крок 3. Написати role що дозволяє роботу з pod тільки в rbac-scope.

Пояснення: role включає get list watch create delete для pod.



Крок 4. Застосувати role і rolebinding.

Команда: kubectl apply -f role-ns-pods.yaml; kubectl apply -f rb-ns-user.yaml

Пояснення: ns-user отримує права лише в одному namespace.



Крок 5. Створити ще один namespace rbac-other.

Команда: kubectl create namespace rbac-other

Пояснення: тут ns-user не повинен мати жодних прав.



Крок 6. Створити clusterrole з правами читання pod у всіх namespace.

Пояснення: clusterrole описує права на рівні всього кластера.



Крок 7. Звязати clusterrole з іншим service account.

Команда: kubectl create serviceaccount cluster-reader; kubectl apply -f crb-cluster-reader.yaml

Пояснення: cluster-reader зможе читати pod в будь якому namespace.



Крок 8. Зібрати kubeconfig для ns-user і cluster-reader.

Пояснення: у реальній системі це робиться автоматично через auth провайдер але для лабораторії можна згенерувати тимчасові конфігурації.



Крок 9. Перевірити що ns-user не може працювати з pod у rbac-other.

Пояснення: запити kubectl get pods -n rbac-other мають повертати помилку доступу.



Крок 10. Міні звіт.

Завдання: опиши коли краще використовувати role а коли потрібна clusterrole наприклад для адміністраторів або операторів моніторингу.