Как защитить панель управления Kubernetes с помощью пользователя/пароля от внешнего доступа?
Создайте кластер с использованием Minikubes в режиме vm-driver=none.
решение1
В Kubernetes запросы поступают как Аутентификация (учетные данные, которые определяют, кто общается с сервером API) и Авторизация (чтобы сервер API мог определить, может ли этот пользователь выполнить запрошенное действие). Однако в Kubernetes нет пользователей в традиционном смысле этого слова (пользователи Kubernetes — это просто строки, связанные с запросом через учетные данные). Стратегия учетных данных — это выбор, который вы делаете при установке кластера (вы можете выбрать x509, файлы паролей, токены Bearer и т. д.).
Поскольку вы добавили, что хотите создавать пользователей, используя --vm-driver=none, я предполагаю, что панель управления и сам кластер доступны в сети для всех. Minikube предназначен для локальной разработки и тестирования, похоже, что он создает роль от вашего имени. Вы можете попробовать установить обычный кластер Kubernetes, используякубеадмвместо использования упрощенной версии, развернутой с помощью Minikube. После того, как minikube start
minikube создаст роль кластера "kubernetes dashboard" и связанный с ним токен. Поэтому другим возможным решением будет удалить Kubernetes Dashboard и установить его с нуля, следуя инструкциямздесьс созданием пользователя, как описаноздесьвы также можете попробовать создать новые роли для пользователей, но у меня не было достаточно времени, чтобы протестировать это решение. Также я бы рекомендовал вам использовать другие инструменты для более сложных задач с Kubernetes - с kubeadm вы можете установить панель управления самостоятельно и настроить ее в соответствии со своими потребностями.
Дальшечтениео контроле доступа на панели управления Kubernetes. Создание учетной записи службы для панели управления и получение ее учетных данныхшаг 7:
- Эта команда создаст учетную запись службы для панели мониторинга в пространстве имен по умолчанию.
$ kubectl создать панель управления учетной записью службы -n по умолчанию
- Эта команда добавит правила привязки кластера в вашу учетную запись панели управления.
$ kubectl create clusterrolebinding dashboard-admin -n default \
--clusterrole=cluster-admin \ --serviceaccount=default:dashboard
- Эта команда предоставит вам токен, необходимый для входа в панель управления.
$ kubectl получить секрет $(kubectl получить serviceaccount dashboard -o jsonpath="{.secrets[0].name}") -o jsonpath="{.data.token}" | base64 --decode
Вы должны получить токен. 4. Скопируйте этот токен и вставьте его на страницу входа в панель управления, выбрав опцию токена.