如何获取 Kubernetes 用户列表?

如何获取 Kubernetes 用户列表?

我们已经使用 Azure (AKS) 创建了一个 Kubernetes 集群,它使用“使用 Kubernetes RBAC 的本地帐户“身份验证模式。据我们了解,从访问角度来看,这与 Azure 中的 K8s-Vanilla 非常接近。

根据我对 K8s 中基于证书的 RBAC 的理解(来自K8s 文档的“身份验证”部分),这些是创建一个新的经过认证的用户/服务帐户的适当步骤,该帐户具有查看(获取、列出、监视)K8s集群中大多数元素的权限:

  1. viewers创建一个名为内置Cluster Role 的ClusterRoleBinding view,并添加(新)Groupviewers作为主题,以便该viewers组的成员都具有视图 Cluster Role:
    kubectl create clusterrolebinding viewers --clusterrole=view --group=viewers

  2. 为用户创建 SSL 证书,其中包括组(/O=viewers):
    openssl req -new -key user.key -out user.csr -subj "/CN=user/O=viewers)"

  3. 从中创建 YAML CSR 并使用以下方式将其应用于 K8s 集群kubectl

    apiVersion: certificates.k8s.io/v1
    kind: CertificateSigningRequest
    metadata:
      name: "user"
    spec:
      request: BASE64_CSR_CONTENT_HERE
      signerName: kubernetes.io/kube-apiserver-client
      usages:
      - client auth
    
  4. 同意:
    kubectl certificate approve user

  5. 下载签名的 CRT:
    kubectl get "csr/user" -o jsonpath='{.status.certificate}' | base64 -d > user.crt

现在可以使用该证书kubectl连接 K8s 并请求所有允许的资源。

现在回答我的问题:我如何列出、修改或删除这样创建的用户?假设有人丢失了证书密钥文件 ( user.key),如果不删除用户并完全重新创建,就无法再更新证书?或者作为管理员,如果您只想知道哪些用户存在?

相关内容