Инструменты пользователя

Инструменты сайта


kubernetes:безопасность_в_кластере

Это старая версия документа!


20. Безопасность в кластере

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

В разрезе аутентификации Kubernetes оперирует не пользовательскими аккаунтами, а служебными УЗ Service Accounts.

kubectl create serviceaccount sa1
kubectl get serviceaccount

В качестве аутентификаторов могут выступать:

  • имя пользователя и статический пароль;
  • имя пользователя и токен;
  • сертификат;
  • сторонний сервис аутентификации (ldap, kerberos, etc).

Парольная аутентфиикация

Что бы указать kube-apiserver.service на необходимость использования статических паролей, необходимо передать в параметрах запуска ключ –basic-auth-file=user-details.csv с файлом, содержащим список вида password, username, userid, group*:

user-details.csv
P@ssw0rd1,user1,u0001,group1
P@ssw0rd2,user2,u0002,group2
P@ssw0rd3,user3,u0003,group3

Для аутентификации:

curl -v -k https://master-node-ip:6443/api/v1/pods -u "user1:P@ssw0rd1"

Аутентификация по токену

Аналогично для файла с токенами –token-auth-file=user-details.csv:

user-token-details.csv
9OSR4OYO6QwM7cfg6sKcerCyiVC6xnFZ,user1,u0001,group1
yDLmsJptxat04MUvuFdBw2CFWwv2ogcr,user2,u0002,group2
IonP8eYFUEfsZJDflyiRVSoMeDJSpBcq,user3,u0003,group3

Для аутентификации:

curl -v -k https://master-node-ip:6443/api/v1/pods --header "Authorization: Bearer 9OSR4OYO6QwM7cfg6sKcerCyiVC6xnFZ"

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

Для аутентификации по сертификату, необходимо наличие сертификата подписанного доверенным CA, а так же, что бы в Subject Name был указан аттрибут system:masters

openssl genrsa -out admin.key 2048
openssl req -new -key admin.key -subj "/CN=kube-admin/O=system:masters" -out admin.csr
openssl x509 -req -in admin.csr -CA ca.crt -CAkey ca.key -out admin.crt

Для аутентификации:

curl https://master-node-ip:6443/api/v1/pods --key admin.key --cert admin.crt --cacert ca.crt
kubernetes/безопасность_в_кластере.1644924966.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)