При управлении сущностями, семантически связанными с Kubernetes, имеет смысл позволить Kubernetes управлять ими. Kubernetes управляет ServiceAccount
как типом ресурса, но не имеет подобных видов для пользователей или групп.
Мне интересно, какое дизайнерское решение стоит за этим. Я знаю, что ServiceAccount
получает токен, сгенерированный при создании, который используется для дальнейшего доступа, а для доступа к кластеру в качестве пользователя-человека вам нужен файл конфигурации с открытым ключом, подписанным центром сертификации Kubernetes.
Это кажется непоследовательным, почему бы не создать похожие типы ресурсов, скажем, HumanAccount
или Account
, и предоставить открытый ключ при создании (открытый ключ безопасно хранить даже в простом тесте в манифесте yaml), чтобы Kubernetes подписал его и из этого укажите, принимает подключения от пользователя?
Я знаю, что запросы на подпись сертификата должны быть одобрены администратором. Может в этом причина?
Любые подсказки или идеи приветствуются!
На самом деле в RBAC есть объекты User
, но kubernetes делегирует их создание либо поле CN
аутентификации mTLS, либо sub
претензия OIDC, либо, в очень индивидуальной ситуации, можно предоставить это через заголовки HTTP.
Я просто потребитель k8s, а не один из первоначальных авторов. Возможно, бумага борга расскажет о ваших опасениях.
Не могли бы вы немного расширить свой ответ - почему это дизайнерское решение лучше, чем позволить реальному пользователю прозрачно управлять
User
файлами манифеста?