如何查看集团类别的主题成员 [英] How to view members of subject with Group kind

查看:10
本文介绍了如何查看集团类别的主题成员的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

存在名为cluster-admin的默认ClusterRoleBinding
当我运行kubectl get clusterrolebindings cluster-admin -o yaml时得到:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
  creationTimestamp: 2018-06-13T12:19:26Z
  labels:
    kubernetes.io/bootstrapping: rbac-defaults
  name: cluster-admin
  resourceVersion: "98"
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/cluster-admin
  uid: 0361e9f2-6f04-11e8-b5dd-000c2904e34b
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:masters

subjects字段中:

- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:masters

如何查看组成员system:masters
我阅读了here关于组的内容,但我不明白如何才能像上面的system:masters示例那样看到组中的成员。

我注意到,当我使用 openssl x509 -in apiserver-kubelet-client.crt -text -noout命令解码/etc/kubernetes/pki/apiserver-kubelet-client.crt时,它包含主题system:masters,但我仍然不明白这个组中的用户是谁:

Issuer: CN=kubernetes
Validity
    Not Before: Jul 31 19:08:36 2018 GMT
    Not After : Jul 31 19:08:37 2019 GMT
Subject: O=system:masters, CN=kube-apiserver-kubelet-client
Subject Public Key Info:
    Public Key Algorithm: rsaEncryption
        Public-Key: (2048 bit)
        Modulus:

推荐答案

诚然,迟到了。

通读the Kubernetes 'Authenticating' docs。Kubernetes没有用于定义和控制用户的内置机制(与ServiceAccount不同,ServiceAccount用于为Pod提供集群身份,因此在Pod上运行服务)。

这意味着Kubernetes因此没有任何内部DB可供引用以确定和显示组成员身份。

在较小的集群中,x509证书通常用于对用户进行身份验证。为此,将API服务器配置为信任CA,然后向用户颁发由该CA签名的证书。正如您已经注意到的,如果主题包含‘Organization’字段,则该字段映射到Kubernetes组。如果希望用户是多个组的成员,则需要指定多个‘O’字段。(顺便说一句,在我看来,使用‘OU’字段会更有意义,但事实并非如此)

在回答您的问题时,似乎是在通过证书对用户进行身份验证的集群的情况下,您唯一的途径是能够访问颁发的证书,并检查主题中是否存在‘O’字段。我猜在更高级的情况下,Kubernetes将与诸如AD之类的集中式工具集成,该工具可以被本机查询以获得组成员资格。

这篇关于如何查看集团类别的主题成员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆