RBAC Kubernetes ограничивает пользователя, чтобы видеть только необходимые ресурсы на панели управления Kubernetes - PullRequest
0 голосов
/ 03 ноября 2018

Привет всем, Я хочу ограничить моих разработчиков возможностью видеть только необходимые ресурсы на панели управления kubernetes (например, только их пространство имен, а не все пространства имен). Это возможно сделать. Если да, может кто-то указать мне на правильные документы? Большое спасибо

Я использую приведенный ниже RBAC для пространства имен kube-system. Однако пользователь может видеть все пространства имен на панели инструментов, а не видеть только те пространства имен, к которым у него есть доступ.

kind: Role     
apiVersion: rbac.authorization.k8s.io/v1       
metadata:     
  namespace: kube-system      
  name: dashboard-reader-role     
rules:      
- apiGroups: [""]     
  resources: ["service/proxy"]     
  verbs: ["get"]       

---       
apiVersion: rbac.authorization.k8s.io/v1      
kind: RoleBinding     
metadata:     
 name: dashboard-reader-ad-group-rolebinding      
 namespace: kube-system     
roleRef:     
 apiGroup: rbac.authorization.k8s.io       
 kind: Role   
 name: dashboard-reader-role   
subjects:      
- apiGroup: rbac.authorization.k8s.io  
  kind: Group  
  name: "****************"  

1 Ответ

0 голосов
/ 03 ноября 2018

см. Документацию по k8s rbac:

Пример: создать роль разработчика в пространстве имен разработки:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  namespace: development
  name: developer
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["deployments", "replicasets", "pods"]
  verbs: ["list", "get", "watch"]
# You can use ["*"] for all verbs

затем свяжите это:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: developer-role-binding
  namespace: development
subjects:
- kind: User
  name: DevDan
  apiGroup: ""
roleRef:
  kind: Role
  name: developer
  apiGroup: ""

также существует встроенная роль только для просмотра, которую вы можете привязать к пользователю:

https://kubernetes.io/docs/reference/access-authn-authz/rbac/#default-roles-and-role-bindings

C02W84XMHTD5:~ iahmad$ kubectl get clusterroles --all-namespaces  | grep view
system:aggregate-to-view                                               17d
view                                                                   17d

но это роль представления всего кластера, если вы хотите, чтобы они видели только материал в определенном пространстве имен, а затем создайте роль представления в этом пространстве имен и свяжите ее, например, выше.

...