Аутентификация в 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) и соответствующий аккаунту токен с бесконечным временем жизни, что позволяет аутентифицироваться без ввода пароля.