Kubernetes用户认证和证书

时间:2019-06-13 11:18:14

标签: kubernetes

我正在与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字段来自动绑定到角色在那个领域写的。

有人可以帮助我吗?

1 个答案:

答案 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”