Access Control
Authentication
Аутентификация в Kubernetes – это процесс проверки подлинности идентификационных данных пользователя, который запрашивает доступ к ресурсам кластера. В Kubernetes есть несколько методов аутентификации, включая:
Файл сертификата клиента: при этом методе пользователь использует сертификат и закрытый ключ для аутентификации.
Использование токенов: при этом методе пользователь использует токен доступа для аутентификации.
Прокси аутентификация: при этом методе пользователь производит аутентификацию через прокси сервер, который добавляет информацию о пользователе в HTTP заголовки.
Аутентификацию в кластере можно пройти как обычный пользователь, либо как сервисный аккаунт, иначе запрос будет считаться анонимным.
Certificate
Аутентификация пользователей в Kubernetes с помощью сертификата - это один из способов подтверждения личности пользователя. При использовании этого метода, пользователь использует свой клиентский сертификат для подключения к Kubernetes API серверу.
Для того чтобы использовать этот метод аутентификации, необходимо создать сертификат и приватный ключ для каждого пользователя и добавить их в соответствующие места в кластере. Как правило, это делается следующим образом:
Создание сертификатов и ключей для пользователей.
Создание объекта CertificateSigningRequest (CSR) для каждого сертификата пользователя. CSR является запросом на подпись сертификата удостоверяющим центром (CA).
Утверждение CSR для каждого пользователя, чтобы получить сертификаты, которые затем могут использоваться для аутентификации.
При использовании сертификатов для аутентификации, можно использовать Role-Based Access Control (RBAC) для управления доступом пользователей к ресурсам Kubernetes в соответствии с определенными правилами.
Token
Другой способ аутентификации в кластере с использованием токена - уникальной строки, идентифицирующей пользователя, делающего запрос в API Kubernetes. В зависимости от конфигурации API токен может генерироваться различными способами: csv файл, jwt sa, jwt oidc.
При каждом запросе токен передается в HTTP заголовке, таким образом идентифицируя пользователя:
Authorization: Bearer 31ada4fd-adec-460c-809a-9e56ceb75269
Пример аутентификации с использованием OpenID Connect: