Содержание
- Пользователь генерит csr и передаёт администратору кластера
openssl req -new -newkey rsa:2048 -nodes -keyout i.ivanov.key.pem -out i.ivanov.csr -subj "/CN=i.ivanov /O=MY.ORG" - Администратор кластера создаёт манифест CSR в kubernetes, где сертификат закодирован в base64
cat <<EOF | kubectl apply -f - apiVersion: certificates.k8s.io/v1 kind: CertificateSigningRequest metadata: name: i.ivanov spec: request: <CSR_CONTENT> signerName: kubernetes.io/kube-apiserver-client usages: - client auth EOF - Администратор кластера выпускает сертификат, подписанный куберовским CA
kubectl certificate approve i.ivanov - Администратор кластера копирует полученный сертификат и пересылает его пользователю. Подтвержденный csr хранится в течение часа
kubectl get csr/i.ivanov -o json | jq -r '.status.certificate' | base64 -D > i.ivanov.crt.pem - Пользователь добавляет в свой локальный ~/.kube/config настройки для кластера. Администратор передаёт значения certificate-authority-data, server, client-certificate-data (п. 4) пользователю.
- Управление доступом пользователей осуществляется через RBAC
