Service Accounts в Kubernetes: токены, RBAC и kubectl auth can-i (практика)
Shubham gour
0:00 / 0:00
Service Accounts в Kubernetes: токены, RBAC и kubectl auth can-i (практика)
442 просмотра · 11 дн. назад
Shubham gour
5,48 тыс. подписчиков
442 просмотра · 11 дн. назад
Как Kubernetes узнает, кто является вашим приложением и что ему разрешено делать? В этом практическом руководстве по учетным записям служб Kubernetes мы подробно рассмотрим учетные записи служб: учетную запись службы по умолчанию, которую получает каждый Pod, токен, который Kubernetes монтирует в Pod, что находится внутри этого JWT-токена и как предоставить вашей собственной учетной записи службы минимальные привилегии с помощью RBAC.
Мы начнем с простого Pod на nginx, изучим, что Kubernetes делает автоматически, затем создадим пользовательскую учетную запись службы, привяжем ее к роли только для чтения, прикрепим ее к Pod и проверим ее права доступа с помощью команды kubectl auth can-i. Все демонстрируется в режиме реального времени на кластере Minikube.
Что вы узнаете:
• Обычные пользователи против учетных записей служб — два типа идентификации в Kubernetes
• Идентификация против авторизации: учетная запись службы = идентификация, RBAC = разрешения
• Учетная запись службы по умолчанию, которая есть в каждом пространстве имен, и как она назначается подам
• Смонтированный токен по адресу /var/run/secrets/kubernetes.io/serviceaccount (ca.crt, пространство имен, токен)
• Что находится внутри JWT-токена учетной записи службы (пространство имен, узел, под, утверждения учетной записи службы) — и почему декодирование не проверяется
• Отключение монтирования токена с помощью automountServiceAccountToken: false
• Создание учетной записи службы с помощью kubectl create serviceaccount и запрос кратковременного токена с помощью kubectl create token
• Написание роли RBAC (pod-reader: get, list, watch Pods) и поиск apiVersion с помощью kubectl api-resources
• • Создание RoleBinding (subjects + roleRef) для связи роли с ServiceAccount
• Прикрепление ServiceAccount к Pod с serviceAccountName (и исправление ошибки «serviceaccount not found»)
• Проверка разрешений с помощью kubectl auth can-i --as=system:serviceaccount:default:my-sa
⏱️ Разделы
0:00 Введение
0:39 Что такое ServiceAccount? Идентификация против авторизации
2:26 Учетная запись службы по умолчанию
5:26 Смонтированный токен
9:17 Что внутри токена (JWT)
12:52 Отключение автоматического монтирования токена
16:56 Создание учетной записи службы
19:29 RBAC: роль
24:13 RBAC: привязка роли
28:02 Прикрепление учетной записи службы к поду
30:49 Проверка с помощью kubectl auth can-i
32:58 Итоги
📚 Ресурсы
• Документация Kubernetes – Учетные записи служб: https://kubernetes.io/docs/concepts/s...
• Документация Kubernetes – Настройка учетных записей служб для подов: https://kubernetes.io/docs/tasks/conf...
• Документация Kubernetes – Использование авторизации RBAC: https://kubernetes.io/docs/reference/...
• Декодер JWT, используемый в демонстрации (только для обучения — никогда не вставляйте токены из производственной среды): https://www.jwt.io/
▶️ Полный плейлист Kubernetes: • Kubernetes Tutorial for Beginners | Comple...
Это видео основано на предыдущем эпизоде о RBAC — посмотрите его первым, если роли и привязки ролей для вас в новинку.
Если это помогло вам понять учетные записи служб Kubernetes, подпишитесь на канал Shubham Gour Tech, чтобы получать больше практических руководств по Kubernetes и DevOps. Есть вопрос о токенах или RBAC? Оставьте его в комментариях — я читаю все.
#Kubernetes #ServiceAccount #RBAC #DevOps #KubernetesTutorial