在k8s中,当客户端需要通过证书来与api server进行通讯的时候,就需要通过客户端证书的某些字段来表明这个证书所代表的用户、用户组什么,这样当api server收到来自这个证书的请求之后,就可以对这个用户的身份进行认证,进而进行鉴权,然后决定该用户可以做什么。

本文档就介绍下,如何在客户端的证书申请的CSR中指定所在的用户和用户组。

注意:客户端证书中,不需要指定hosts定义。


2、实现方法

2.1、openssl命令

如果使用openssl命令,使用类似如下的命令


即CN(Common Name)表示用户,O表示用户组,如果是多个用户组,那么就用多个O来指定。O代表Oraganization

2.2、cfssl命令

cfssl命令来创建证书的时候,就是要在csr-json文件中指定

{
    "CN": "kubernetes-admin",
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "O": "system:masters"
        }
    ]
}

这样通过这个CSR生成的证书就表示用户kubernetes-admin,所在的用户组system:masters

相关文章:

  • 2021-08-27
  • 2022-12-23
  • 2021-10-01
  • 2022-12-23
  • 2022-12-23
  • 2022-02-15
  • 2021-08-07
  • 2021-10-30
猜你喜欢
  • 2021-07-01
  • 2021-11-22
  • 2022-12-23
  • 2022-02-09
  • 2022-01-07
  • 2021-11-17
相关资源
相似解决方案