как дать доступ к пространству имен пользователю в gke? - PullRequest
1 голос
/ 06 ноября 2019

У меня есть кластер google kubernetes engine с несколькими пространствами имен. Различные приложения развертываются в каждом из этих пространств имен. Можно ли предоставить пользователю полный доступ только к одному пространству имен?

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Да, Kubernetes имеет встроенную систему RBAC, которая интегрируется с Cloud IAM, так что вы можете контролировать доступ к отдельным кластерам и пространствам имен для пользователей GCP.

  1. Создание Kubernetes Role
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: YOUR_NAMESPACE
  name: ROLE_NAME
rules:
- apiGroups: [""] # "" indicates the core API group
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
Создание Kubernetes RoleBinding
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: ROLE_NAME-binding
  namespace: YOUR_NAMESPACE
subjects:
# GCP user account
- kind: User
  name: janedoe@example.com

Ссылка

0 голосов
/ 06 ноября 2019

Вы можете привязать пользователя к роли cluster-admin, используя Rolebinding в выбранном вами пространстве имен. Как указано в документации , cluster-admin:

Предоставляет доступ суперпользователю для выполнения любых действий с любым ресурсом. При использовании в ClusterRoleBinding он дает полный контроль над каждым ресурсом в кластере и во всех пространствах имен. При использовании в RoleBinding он дает полный контроль над каждым ресурсом в пространстве имен ролевой привязки, включая само пространство имен.

Например:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: example
  namespace: yournamespace
subjects:
- kind: User
  name: example-user
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
...