← До списку лабораторних по Kubernetes
Повний опис / сценарій лабораторної:
Мета: навчитися розрізняти 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 наприклад для адміністраторів або операторів моніторингу.