Service Account Kubernetes

Простыми словами

Приложение действует не от имени администратора, а под собственной технической идентичностью. Ему можно дать ровно те действия, которые нужны, и не передавать личные учётные данные сотрудника.

Как применяется

Service account назначают контроллерам, операторам и другим нагрузкам, которым нужен API-доступ. Если приложению он не требуется, автоматическое монтирование токена отключают. Токен считают секретом: попадание в журнал или образ позволяет действовать с правами этой записи.

Пример применения

Процесс создаёт задания в namespace jobs. Для него заводят отдельную service account и разрешают создавать и читать Job только там. После запуска проверяют, что запросы к Secret и к другому namespace запрещены; использование default не принимают за осмысленно выбранную политику.

Не путать с

  • RoleОписывает разрешения, но не удостоверяет приложение.
  • ПользовательЛичная идентичность человека с другим жизненным циклом и способом выдачи доступа.
  • SecretМожет хранить чувствительные значения; не равен сервисной идентичности и её правам.

Как это работает

  1. Создать идентичностьЗаводят service account для конкретной нагрузки в нужном namespace.
  2. Выдать минимальные праваСвязывают с ограниченной ролью, не назначая права администратора по умолчанию.
  3. Назначить PodУказывают serviceAccountName; решают, нужен ли токен внутри контейнера.
  4. Проверить использованиеТестируют обращения к API, срок действия токена и отсутствие его в логах.

Продолжить изучение

Связанные термины

Частые вопросы

Service account сразу даёт права администратора?

Нет. Полномочия зависят от назначенных механизмов авторизации и bindings.

Что произойдёт без явного назначения?

Pod получает default service account своего namespace. Её права всё равно нужно контролировать.

Токен должен быть бессрочным?

Нет. Предпочтительны ограниченные по сроку и аудитории токены; старые постоянные секреты создают лишний риск.

Service Account Kubernetes — сервисная учётная запись в namespace, представляющая приложение или автоматизированный процесс. Она используется для аутентификации, в том числе при обращении к Kubernetes API. Разрешения назначаются отдельно средствами авторизации, например RBAC.