Ограничить доступ к кластеру 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 о том, как настроить два кластера, один из которых находится в производстве.