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 (внешнее изменение)