允许访问 kubernetes 集群上除 get 节点之外的所有资源

6 rbac kubernetes kubectl

团队,我在 kubernetes 上有以下集群角色,它允许访问所有内容,但我不想限制节点级别的命令并允许所有休息。

下面要修改什么?基本上,用户应该能够运行

kubectl get all --all-namespaces
Run Code Online (Sandbox Code Playgroud)

但不应该显示节点信息

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin-test
rules: 
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
- nonResourceURLs:
- '*'
verbs:
- '*'
Run Code Online (Sandbox Code Playgroud)

A_S*_*Suh 7

规则纯粹是附加的,意味着您不能限制规则。

因此,您将需要列出所有可访问的资源,但需要适当操作的“节点”

例如:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin
rules: 
- apiGroups: [""] 
  resources: ["pods","services","namespaces","deployments","jobs"] 
  verbs: ["get", "watch", "list"]
Run Code Online (Sandbox Code Playgroud)

此外,强烈不建议更改cluster-admin角色。值得创建一个新角色并将用户分配给它。