我正在与Minikube一起玩,并且创建了一个具有证书(mueller)的测试用户。他将证书的CN设置为mueller,将O设置为development。
这是我的角色:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: development
name: read-development-pods
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
和我的角色绑定:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-development-pods-rb
namespace: development
subjects:
- kind: User
name: mueller
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: read-development-pods
apiGroup: rbac.authorization.k8s.io
我也将证书设置为kubeconfig。规则很好用。
现在我的问题是,我可以摆脱角色绑定吗,因为为每个用户进行角色绑定不是很舒服,而且我认为我读到某个地方kubernetes能够使用用户证书的O字段来自动绑定到角色在那个领域写的。
有人可以帮助我吗?
答案 0 :(得分:1)
每当您成功在Kubernetes API的K8s身份验证strategies中确认实体对象时,典型请求可能包含一些attribute属性,这些属性定义了如何通过一个来授权集群访问者具体modules中的一个。
根据官方Kubernetes documentation:
从Kubernetes 1.4开始,客户端证书还可以指示用户的 使用证书的组织字段对成员资格进行分组。至 包括一个用户的多个组成员身份,包括多个 证书中的组织字段。
例如,使用openssl命令行工具生成一个 证书签名请求:
openssl req -new -key jbeda.pem -out jbeda-csr.pem -subj “ / CN = jbeda / O = app1 / O = app2”