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