允许访问 kubernetes 集群上除获取节点之外的所有资源
allow access to all resources on kubernetes cluster except get nodes
团队,我在 kubernetes 上有以下集群角色,允许访问所有内容,但我不想限制节点级命令并允许所有休息。
下面要修改什么?
基本上,用户应该能够 运行
kubectl get all --all-namespaces
但节点信息不应显示
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:
- '*'
规则是纯粹的加法,意味着你不能限制规则。
因此,您需要列出所有可访问的 resources, but "nodes" with appropriate operations
例如:
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"]
此外,强烈不建议更改 cluster-admin 角色。
值得创建一个新角色并为其分配用户。
团队,我在 kubernetes 上有以下集群角色,允许访问所有内容,但我不想限制节点级命令并允许所有休息。
下面要修改什么? 基本上,用户应该能够 运行
kubectl get all --all-namespaces
但节点信息不应显示
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:
- '*'
规则是纯粹的加法,意味着你不能限制规则。
因此,您需要列出所有可访问的 resources, but "nodes" with appropriate operations
例如:
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"]
此外,强烈不建议更改 cluster-admin 角色。 值得创建一个新角色并为其分配用户。