Kubernetes RBAC限制用户仅在Kubernetes仪表板上查看所需资源

Kubernetes RBAC限制用户仅在Kubernetes仪表板上查看所需资源,kubernetes,authorization,kubectl,rbac,azure-aks,Kubernetes,Authorization,Kubectl,Rbac,Azure Aks,大家好,, 我想限制我的开发人员只能在kubernetes仪表板上查看所需的资源(例如,仅查看其名称空间,而不是所有名称空间)。这是可能的。如果是,有人能告诉我正确的文件吗?非常感谢 我将下面的RBAC用于kube系统名称空间。但是,用户可以看到仪表板上的所有名称空间,而不是只看到他有权访问的名称空间 kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: kube-s

大家好,, 我想限制我的开发人员只能在kubernetes仪表板上查看所需的资源(例如,仅查看其名称空间,而不是所有名称空间)。这是可能的。如果是,有人能告诉我正确的文件吗?非常感谢

我将下面的RBAC用于
kube系统
名称空间。但是,用户可以看到仪表板上的所有名称空间,而不是只看到他有权访问的名称空间

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: "****************"  

请参阅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: ""
此外,还有一个内置的仅查看的角色,您可以绑定到用户:


但这是集群范围内的视图角色,如果您希望他们只看到特定命名空间中的内容,请在该命名空间中创建一个视图角色并进行绑定,请参见上面的exmaple。

谢谢您的回复。但我说的是kube系统名称空间的权限。即使我只提到角色资源中的服务,但在你的问题中,仪表板上显示的每件事都是你问的:例如,只有它们的名称空间,而不是所有的名称空间)你可以对kube系统名称空间执行相同的操作,但是您需要创建一个角色和适当的角色绑定---种类:角色apiVersion:rbac.authorization.k8s.io/v1元数据:命名空间:kube系统名称:仪表板读取器角色规则:-apiGroups:[“”]资源:[“服务/代理”]谓词:[“获取”]---apiVersion:rbac.authorization.k8s.io/v1种类:角色绑定元数据:名称:仪表板读卡器ad组角色绑定命名空间:kube系统角色ref:apiGroup:rbac.authorization.k8s.io种类:角色名称:仪表板读卡器角色主题:-apiGroup:rbac.authorization.k8s.io种类:组名称:********我在上面为kubesystem创建了。但是当用户登录到仪表板时。他能够看到所有他无法访问的名称空间。
C02W84XMHTD5:~ iahmad$ kubectl get clusterroles --all-namespaces  | grep view
system:aggregate-to-view                                               17d
view                                                                   17d