Сервисные аккаунты и идентичность рабочих нагрузок
Узнайте, как сервисные аккаунты предоставляют модулям Pod собственную идентичность, как работают их токены и как выдавать им доступ с минимальными привилегиями.
«Сервисные аккаунты и идентичность рабочих нагрузок» — бесплатный урок Kubernetes Basics на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kubernetes Basics, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kubernetes Basics содержит 4 уроков всего.
Идентификация рабочих нагрузок
Пользователи проходят аутентификацию в Kubernetes, но подам тоже нужна идентичность, чтобы безопасно обращаться к серверу API. Эту идентичность предоставляет учётная запись службы.
Что такое ServiceAccount
ServiceAccount — это объект в пространстве имён, представляющий идентичность рабочей нагрузки. Каждый под работает от имени одной такой учётной записи; если её не указать, используется default.
apiVersion: v1
kind: ServiceAccount
metadata:
name: report-generator
namespace: analyticsНазначение учётной записи службы поду
Укажите serviceAccountName в спецификации пода, чтобы он работал от имени определённой идентичности.
apiVersion: v1
kind: Pod
metadata:
name: reporter
spec:
serviceAccountName: report-generator
containers:
- name: app
image: reporter:1.0Монтируемый токен
Kubernetes монтирует в под краткоживущий токен JWT для учётной записи службы. Этот токен используется для аутентификации вызовов API.
# inside the Pod
cat /var/run/secrets/kubernetes.io/serviceaccount/tokenЧем опасна учётная запись по умолчанию
Учётная запись службы default используется всеми подами в пространстве имён. Если предоставить ей разрешения, это чрезмерно расширит доступ для всех подов. Предпочитайте отдельную учётную запись для каждой рабочей нагрузки.
Отключение автоматического монтирования токена
Если под никогда не обращается к API, отключите монтирование токена, чтобы уменьшить поверхность атаки.
apiVersion: v1
kind: Pod
metadata:
name: no-api-pod
spec:
automountServiceAccountToken: false
containers:
- name: app
image: myapp:1.0Предоставление разрешений с помощью RBAC
Учётная запись службы не имеет полномочий, пока Вы не свяжете её с ролью. В RoleBinding учётная запись службы указывается как субъект.
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: reporter-read
namespace: analytics
subjects:
- kind: ServiceAccount
name: report-generator
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioПринцип минимальных привилегий на практике
- Используйте одну учётную запись службы для каждой рабочей нагрузки
- Предоставляйте только действительно необходимые действия и ресурсы
- По возможности ограничивайте область пространством имён с помощью Role, а не ClusterRole
Связанные проецируемые токены
Современные токены являются проецируемыми и привязаны к сроку жизни пода; срок их действия невелик. Они автоматически обновляются, поэтому утёкший токен гораздо менее опасен, чем старые секреты с длительным сроком действия.
Идентичность рабочих нагрузок в облаке
Облачные платформы сопоставляют ServiceAccount Kubernetes с облачной идентичностью IAM, например IRSA в AWS или Workload Identity в GKE, поэтому поды получают доступ к облачным ресурсам без хранения статических учётных данных.
metadata:
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::123:role/report-roleПроверка разрешений
Используйте kubectl auth can-i от имени ServiceAccount, чтобы убедиться, что у него есть именно ожидаемый доступ.
kubectl auth can-i list pods \
--as=system:serviceaccount:analytics:report-generator \
-n analyticsБыстрая проверка
Проверьте, насколько хорошо Вы поняли тему учётных записей служб.
Итоги
Вы узнали, что ServiceAccount предоставляет поду собственную идентичность, подтверждаемую краткоживущими проецируемыми токенами. Применяйте принцип минимальных привилегий: создавайте отдельную учётную запись для каждой рабочей нагрузки, предоставляйте доступ через привязки RBAC, отключайте монтирование токенов, если оно не используется, и сопоставляйте учётные записи с облачным IAM для доступа без учётных данных.
Изучай Kubernetes Basics с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Сервисные аккаунты и идентичность рабочих нагрузок» бесплатный?
Да — полный текст урока «Сервисные аккаунты и идентичность рабочих нагрузок» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kubernetes Basics, подпишись на CoddyKit PRO. Курс Kubernetes Basics содержит 4 уроков всего.
Чему я научусь в уроке «Сервисные аккаунты и идентичность рабочих нагрузок»?
Узнайте, как сервисные аккаунты предоставляют модулям Pod собственную идентичность, как работают их токены и как выдавать им доступ с минимальными привилегиями. Ты практикуешь Kubernetes Basics с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kubernetes Basics?
Предыдущий опыт не требуется. Kubernetes Basics на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Сервисные аккаунты и идентичность рабочих нагрузок»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kubernetes Basics?
Да. Каждый урок Kubernetes Basics включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ролевое управление доступом (RBAC)
- Сетевые политики для изоляции
- Стандарты безопасности Pod
- Сервисные аккаунты и идентичность рабочих нагрузок