У меня два кластера принадлежат одному проекту в движке google kubernetes. Как я могу разрешить некоторым моим партнерам получить доступ к одному кластеру и запретить им доступ к другому кластеру? Спасибо!
Если вы хотите предоставить пользователю доступ только к одному кластеру в проекте GKE, вы должны использовать Cloud IAM с участием RBAC.
Как упоминалось в GKE IAM:
Собственная система контроля доступа на основе ролей (RBAC) Kubernetes также управляет доступом к вашему кластеру. RBAC контролирует доступ на уровне кластера и пространства имен, а Cloud IAM работает на уровне проекта.
Cloud IAM и RBAC могут работать совместно, и объект должен иметь достаточные разрешения на любом уровне для работы с ресурсами в вашем кластере.
Более подробную информацию об управлении доступом в GKE можно найти Вот.
Kubernetes RBAC встроен в Kubernetes и предоставляет детальные разрешения для объектов в кластерах Kubernetes. Разрешения существуют как объекты ClusterRole или Role в кластере. Объекты RoleBinding предоставляют роли пользователям Kubernetes, пользователям Google Cloud, учетным записям службы Google Cloud или группам Google (бета).
Cloud IAM управляет ресурсами Google Cloud, включая кластеры, и типы объектов в кластерах. Разрешения назначаются участникам Cloud IAM, которые существуют в Google Cloud, G Suite или Cloud Identity.
Первый шаг к достижению этого - предоставить новому пользователю доступ к Project с ролью как минимум Viewer, как уже упоминалось. Вот (что вы уже сделали).
Хотя Kubernetes RBAC можно использовать вместо Cloud IAM почти во всех случаях, пользователям GKE требуется как минимум разрешение container.clusters.get Cloud IAM в проекте, содержащем кластер. Это разрешение предоставляется ролью container.clusterViewer, а также другими, более привилегированными ролями.
Следующим шагом является доступ к кластеру, для которого вы хотите предоставить разрешения другому пользователю. Если вы хотите предоставить доступ только к одному пространству имен, вам следует создать Role
, однако, если вы хотите предоставить доступ ко всем пространствам имен, вам необходимо создать ClusterRole
, как упоминалось Вот.
Вам также необходимо создать RoleBidning
/ ClusterRoleBinding
зависит от ваших потребностей.
Это хорошо описано в Документы Kubernetes.
Резюме:
Предоставьте новому пользователю доступ к проекту GKE (Cloud IAM).
Создайте Role/ClusterRole
(ресурсы, глаголы) и RoleBinding/ClusterRoleBinding
зависит от ваших потребностей.