Управление доступом
Чтобы разграничить права для приглашенных участников проекта или сервисных учетных записей, в Cloud Containers используется единый сервис управления идентификацией и доступом — IAM. Управлять доступами можно централизованно из личного кабинета VK Cloud.
Список доступных участнику проекта действий в сервисе Cloud Containers определяет:
-
Присвоенная базовая роль — задает набор действий, доступных по умолчанию.
Базовые роли
Владелец проекта,СуперадминистраториАдминистратор проектаполучают полный доступ ко всем операциям во всех сервисах. -
Отдельная специализированная роль — назначается дополнительно, если прав, входящих в базовую роль, недостаточно. Настройка отдельных разрешений для Cloud Containers не поддерживается.
При выдаче ролей придерживайтесь принципа минимальных привилегий: пользователь должен иметь только те права, без которых невозможно выполнить его задачи.
Для сервиса Cloud Containers доступно несколько специализированных ролей, которые можно использовать дополнительно к базовым ролям Администратор пользователей (IAM) или Наблюдатель. По умолчанию доступ к Cloud Containers у этих базовых ролей ограничен:
Администратор пользователей (IAM): нет доступа.Наблюдатель: просмотр информации о кластере и группах узлов, получение секрета для доступа в Kubernetes Dashboard.
Название в личном кабинете: Аудитор Kubernetes.
Роль с разрешениями на просмотр сервиса Cloud Containers.
Пользователь с этой ролью может:
- просматривать информацию о кластере и группах узлов;
- получать файл
kubeconfig; - получать секрет для доступа в Kubernetes Dashboard.
Название в личном кабинете: Оператор Kubernetes.
Роль с разрешениями для работы в сервисе Cloud Containers. Некоторые действия доступны только в определенном состоянии кластера. Например, установка и удаление аддонов возможны, только если кластер запущен.
Пользователь с этой ролью может:
- запускать и останавливать кластеры;
- отображать информацию о кластере и группах узлов;
- получать файл
kubeconfig; - получать секрет для доступа в Kubernetes Dashboard;
- обновлять версию кластера;
- изменять тип виртуальной машины;
- изменять размер диска Prometheus;
- добавлять или удалять группу узлов;
- изменять настройки масштабирования групп узлов;
- изменять метки (labels) и ограничения (taints);
- устанавливать или удалять аддоны.
Название в личном кабинете: Администратор Kubernetes.
Роль с максимально широким набором разрешений для работы с сервисом Cloud Containers. Некоторые действия доступны только в определенном состоянии кластера. Например, установка и удаление аддонов возможны, только если кластер запущен.
Пользователь с этой ролью может:
-
создавать и удалять кластеры;
-
запускать и останавливать кластеры;
-
отображать информацию о кластере и группах узлов;
-
получать файл
kubeconfig; -
получать секрет для доступа в Kubernetes Dashboard;
-
обновлять версию кластера;
-
изменять тип виртуальной машины;
-
изменять размер диска Prometheus;
-
добавлять или удалять группу узлов;
-
изменять настройки масштабирования групп узлов;
-
изменять метки (labels) и ограничения (taints);
-
устанавливать или удалять аддоны.
Пользователь аутентифицируется в кластере Kubernetes с теми же реквизитами, что и при входе в личный кабинет VK Cloud, с помощью технологии единого входа (Single Sign-On, SSO). Каждая специализированная роль — администратора, оператора или аудитора Kubernetes — также определяет доступную пользователю внутреннюю роль Kubernetes. Роль Kubernetes отвечает за то, какие объекты кластера доступны пользователю, и какие действия разрешено выполнять над этими объектами.
Чтобы просмотреть список доступных ресурсов для роли, подключитесь к кластеру и выполните команду:
kubectl describe clusterrole <РОЛЬ_В_KUBERNETES>
Роль в Kubernetes: view.
Роль предоставляет доступ на чтение к большинству объектов в пространстве имен.
Роль не предоставляет:
-
Доступ на просмотр или изменение ролей и связывания ролей.
-
Доступ к секретам.
Пользователь с доступом к секретам может получить доступ к учетным данным любого сервисного аккаунта в пространстве имен. Это позволит получить доступ к API от имени любого сервисного аккаунта в пространстве имен. Для роли с правами «только чтение» это будет расцениваться как превышение привилегий (privilege escalation).