Ограничить доступ к кластеру kubernetes на облачной платформе Google
Мы создали 2 разных кластера Kubernetes на облачной платформе Google, один для разработки, а другой для производства. Члены нашей команды имеют роль "редактора" (поэтому они могут создавать, обновлять, удалять и перечислять модули)
Мы хотим ограничить доступ к производственному кластеру с помощью авторизации RBAC, предоставленной Kubernetes. Я создал ClusterRole
и ClusterBindingRole
, следующим образом:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: prod-all
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: access-prod-all
subjects:
- kind: User
name: xxx@xxx.com
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: prod-all
apiGroup: rbac.authorization.k8s.io
Но пользователи уже имеют роль "редактора" (полный доступ ко всем кластерам). Так что я не знаю, следует ли нам назначить простую роль "зрителя", а не расширять ее, используя RBAC kubernetes.
Я также хочу знать, есть ли способ полностью скрыть производственный кластер от некоторых пользователей. (наши кластеры находятся в одном проекте)
1 ответ
Если вы находитесь на начальном этапе или вам удастся перенести кластер тестирования, я бы посоветовал вам настроить кластеры в двух разных проектах.
Это создаст две совершенно разные среды, и у вас не возникнет никаких проблем в будущем, и вы автоматически запретите доступ к половине ваших ресурсов, и вам не нужно опасаться, что что-то неправильно настроено, а ваша продукция все еще достижима. Когда вам нужно что-то предоставить, вы просто добавляете этого человека в проект с соответствующей ролью.
Потому что, может быть, вам удастся заблокировать доступ к кластеру с помощью IAM и RBAC, но тогда вам нужно будет обеспечить защиту доступа к сетевым компонентам, LoadBalacers, Firewalls, к Compute Engine ecc
Может быть, в начале это много работы, но в долгосрочной перспективе это избавит вас от многих проблем.
Это ссылка на официальную документацию Google Cloud о том, как настроить два кластера, один из которых находится в производстве.