VK Cloud logo

Аутентификация в Kubernetes

В кластерах Kubernetes версии 1.23 и выше на платформе VK Cloud используется технология единого входа (Single Sign-On, SSO). Пользователь аутентифицируется в кластере Kubernetes с теми же реквизитами, что и при входе в личный кабинет VK Cloud.

Функциональность SSO нельзя отключить.

Как устроен процесс аутентификации

При использовании kubectl за аутентификацию отвечает утилита keystone-auth.

Для работы kubectl используется файл конфигурации кластера (kubeconfig). Этот файл содержит все реквизиты пользователя, кроме пароля (он не указывается из соображений безопасности). Поэтому при использовании kubectl утилита keystone-auth потребует ввести пароль пользователя в интерактивном режиме, чтобы аутентифицироваться:

Please enter password:

После успешной аутентификации выпускается токен с коротким временем жизни, который дает временный доступ к кластеру. Когда время жизни токена истечет, keystone-auth потребует снова ввести пароль, чтобы обновить токен. Это будет происходить как при работе с kubectl, так и с другими инструментами, которые работают с такими токенами — например, kauthproxy использует их для аутентификации в веб-интерфейсах компонентов и аддонов кластера.

Такой процесс аутентификации неудобен при работе с автоматизированными инструментами, которым нужен доступ к кластеру. Чтобы предоставить доступ к кластеру для таких инструментов, создайте файл kubeconfig для сервисного аккаунта. Этот kubeconfig содержит реквизиты сервисного аккаунта (service account) и соответствующий аккаунту токен с бесконечным временем жизни, что позволяет аутентифицироваться без ввода пароля.