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

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

Kubernetes Лабораторна 70: Обмеження доступу до Secret

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

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

Тема: RBAC для доступу до Secret

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

Мета: навчитися робити role які дозволяють читати secret лише потрібним serviceaccount.



Крок 1. Створити namespace secrets-demo.

Команда: kubectl create namespace secrets-demo

Пояснення: тут будуть тестові secret і поди.



Крок 2. Створити secret з обліковими даними.

Команда: kubectl create secret generic db-creds --from-literal=user=dbu --from-literal=pass=dbp -n secrets-demo

Пояснення: цей secret повинен бути доступний тільки одному сервісу.



Крок 3. Створити serviceaccount app-sa у namespace.

Команда: kubectl create serviceaccount app-sa -n secrets-demo



Крок 4. Написати role для читання secret.

Пояснення: роль дозволяє get list watch для ресурсів secret.



Крок 5. Звязати role з app-sa через rolebinding.

Команда: kubectl apply -f rb-app-sa-secrets.yaml

Пояснення: тільки app-sa отримує права читання.



Крок 6. Створити інший serviceaccount without-sa.

Команда: kubectl create serviceaccount without-sa -n secrets-demo

Пояснення: він не отримує rolebinding.



Крок 7. Створити pod з app-sa і спробувати прочитати secret через api.

Пояснення: використай kubectl exec і kubectl у контейнері або простий скрипт.



Крок 8. Створити pod з without-sa і повторити спробу.

Пояснення: очікується помилка доступу при спробі читання secret.



Крок 9. Перевірити опис rolebinding.

Команда: kubectl describe rolebinding app-sa-secrets -n secrets-demo

Пояснення: переконайся що привязаний правильний serviceaccount.



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

Завдання: опиши стратегію поділу прав для читання конфіденційних secret у продакшені.