【问题标题】:Kubernetes user authentication with certificate带证书的 Kubernetes 用户身份验证
【发布时间】:2020-01-02 16:59:27
【问题描述】:

我正在玩 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 字段自动绑定到该字段中写入的角色。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    只要您在 Kubernetes API 中的 K8s Authentication strategies 之一中成功确认实体对象,典型请求可能包含一些 attribute 属性,这些属性定义了如何通过特定 @ 之一授权集群访问者的方式987654323@.

    根据官方 Kubernetes documentation:

    从 Kubernetes 1.4 开始,客户端证书还可以指示用户的 使用证书的组织字段的组成员身份。至 包括一个用户的多个组成员资格,包括多个 证书中的组织字段。

    例如,使用 openssl 命令行工具生成一个 证书签名请求:

    openssl req -new -key jbeda.pem -out jbeda-csr.pem -subj "/CN=jbeda/O=app1/O=app2"

    【讨论】:

    • 当然可以,但是我可以摆脱 RoleBinding 并让 kubernetes 使用 O-field 作为组并自动将用户绑定到该组吗?
    • 您可以使用分配给用户的特定组并在RoleBinding定义中声明该组。
    猜你喜欢
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 2011-04-09
    • 2013-10-07
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多