Kubernetes 如何使k8s角色允许对命名空间中的角色和角色绑定进行所有操作?

Kubernetes 如何使k8s角色允许对命名空间中的角色和角色绑定进行所有操作?,kubernetes,rbac,Kubernetes,Rbac,我想创建一个角色,允许在命名空间级别对“角色”和“角色绑定”(但不是ClusterRoles或ClusterRoleBindings)执行任何操作 这是我设置的YAML角色,但在将其绑定到服务帐户时,它现在被应用。我做错了什么 apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: role-binder namespace: foo-namespace rules: - apiGroups: - rba

我想创建一个角色,允许在命名空间级别对“角色”和“角色绑定”(但不是ClusterRoles或ClusterRoleBindings)执行任何操作

这是我设置的YAML角色,但在将其绑定到服务帐户时,它现在被应用。我做错了什么

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: role-binder
  namespace: foo-namespace
rules:
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - Role
  - RoleBinding
  verbs:
  - '*'

您可以通过以下规则实现这一点:

apiVersion:rbac.authorization.k8s.io/v1 种类:ClusterRole 元数据: 名称:角色授予人 规则: -apiGroups:[“rbac.authorization.k8s.io”] 资源:[“角色索引”] 动词:[“获取”、“列表”、“监视”、“创建”、“更新”、“修补”、“删除”] -apiGroups:[“rbac.authorization.k8s.io”] 资源:[“角色”] 动词:[“获取”、“列表”、“监视”、“创建”、“更新”、“修补”、“删除”] --- apiVersion:rbac.authorization.k8s.io/v1 种类:RoleBinding 元数据: 名称:角色授予者绑定 名称空间:office roleRef: apiGroup:rbac.authorization.k8s.io 种类:ClusterRole 名称:角色授予人 学科: -apiGroup:rbac.authorization.k8s.io 种类:用户 姓名:雇员 我在实验室测试了它,它可以按照您的要求工作:

$ kubectl --context=employee-context get role 
NAME                 AGE
deployment-manager   15m
role-binder          12m

$ kubectl --context=employee-context get rolebindings
NAME                         AGE
deployment-manager-binding   15m
role-grantor-binding         3m37s

$ kubectl --context=employee-context get clusterrolebindings
Error from server (Forbidden): clusterrolebindings.rbac.authorization.k8s.io is forbidden: User "employee" cannot list resource "clusterrolebindings" in API group "rbac.authorization.k8s.io" at the cluster scope

您可以在中详细阅读。

动词
应该列出所有动词,它们是
-create-delete-deletecollection-get-list-patch-update-watch
。我的答案帮助您解决了问题?如果是的话,社区可以知道我的答案是有帮助的。StAR在动词中不使用,以防止SA在CRD或API将新的特权添加到集群时无意地忽略了它的特权。