Kubernetes предлагает несколько методов аутентификации — от сертификатов до интеграции с внешними провайдерами. Разбираемся, какой вариант использовать в разных сценариях.
• X.509 сертификаты — основной способ для пользователей и kubelet. Генерируете приватный ключ, создаете Certificate Signing Request и подписываете его CA кластера. Три команды openssl — и у вас готовый сертификат для доступа.
• Static Token File — простой, но небезопасный метод. API-сервер читает CSV-файл с токенами. Подходит только для разработки, в проде лучше не использовать.
• Bootstrap Tokens — то, что использует kubeadm при развертывании кластера. Токены хранятся как Secrets в namespace kube-system. Команда
kubeadm token create выдаст готовую строку для присоединения нод.• Service Account Tokens — для подов, которым нужен доступ к API. Kubernetes автоматически создает JWT-токен и монтирует его внутрь контейнера. Просто указываете serviceAccountName в спеке пода.
• OIDC — интеграция с внешними провайдерами типа Google, Okta или Azure AD. Настраиваете API-сервер с параметрами
--oidc-issuer-url и --oidc-client-id, и получаете полноценный SSO для корпоративного окружения.• Webhook Authentication — когда нужна кастомная логика. API-сервер отправляет запросы на внешний endpoint, который решает, пускать пользователя или нет.
Отключите анонимную аутентификацию (
--anonymous-auth=false), не используйте дефолтный service account, регулярно ротируйте сертификаты и токены. 📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека devops'a
#арсенал_инженера